当前位置: 首页 > news >正文

软件测试 | 测试用例

测试用例(Test Case)是为了实施测试而向被测试的系统提供的一组集合,这组集合包含:测试环境,测试步骤,测试数据,预期结果等要素。 

设计测试用例原则⼀:

测试用例中⼀个必需部分是对预期输出或结果进行定义 。

在软件中,涉及到的特性太多了 仅仅通过头脑风暴是无法完成一次完整的测试。

通过编写测试用例,可以想到要测试哪些内容,通过一次又一次的更新修改将测试用例写到完成,功能覆盖率更高即可。

编写测试用例也有讲究(编写测试用例要素),但是这种讲究很早之前用得较多(通过excel表格来编写和管理测试用例),现在用的少(脑图/思维导图)。 

根据需求文档通过excel编写测试用例(涉及到测试用例的要素):

通过思维导图编写测试用例:

原则二:

1.测试用例的编写不仅应当根据有效和预料到的输⼊情况,而且也应该根据无效和未预料到的输入情况。

2.检查程序是否“未做其应该做的”仅是成功的⼀半,测试的另⼀半是检查程序是否“做了其不应该做的”。(是上⼀条原则的必然结果)

正确设计测试用例的思想:常规思维+逆向思维+发散性思维。

设计测试用例公式:功能测试+界面测试+性能测试+兼容性测试+易用性测试+安全测试

功能测试从产品功能角度出发,验证功能是否是正确的
界面测试肉眼可见的部分都成为界面,界面所有元素都需要测试
性能测试通常为一些极端情况
兼容性测试不同版本(软件,系统)浏览器的兼容性,不同的浏览器等
易用性测试具备简单易上手的属性(引导教程)
安全测试

是否具备危险材质,气味;

接口响应数据也需要考虑到用户数据的安全性;

登录场景需要将密码进行加密展示;

数据存储用户隐私数据是否加密;

SQL注入;

越权...

除了上述,还有一些特殊的测试场景~

弱网测试:目的就是为了覆盖更多的网络场景,尽可能保证用户体验。关键点包括:

  • 页面响应时间是否可以接受,关注包括热启动、冷启动时间、页面切换、前后台切换、首字时间, 首屏时间等。
  • 页面呈现是否完成⼀致
  •  超时文案是否符合定义,异常信息是否显示正常。
  • 是否有超时重连。
  • 安全角度:是否会发生dns劫持、登陆ip更换频繁、单点登陆异常等。
  • ⼤流量事件风险:是否会在弱网下进行更新apk包、下载文件等大流量动作。

可以借助抓包工具来模拟实现弱网测试:fiddler,Charles等

 使用fiddler演示:

 

安装卸载测试:针对需要进行部署的软件,除了软件功能外,我们还需要关注软件的能够成功安装和卸载。

  • 安装:安装包是否可以安装,卸载之后是否可以继续安装重复安装...软件更新后安装是否成功
  • 卸载:安装完成后卸载,安装一半后卸载,卸载一次后继续安装继续卸载,卸载一半停止后是否还可以继续卸载...

案例:水杯 的测试用例

以上就是根据需求文档设计初步的测试用例~


相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • SpringCloud Alibaba】(十三)学习 RocketMQ 消息队列
  • 003.精读《MapReduce: Simplified Data Processing on Large Clusters》
  • Npm install 原理
  • Dockerfile应用、私有仓库
  • 昇腾AI处理器的计算核心 - AI Core即DaVinci Core
  • 机器学习数学公式推导之高斯分布
  • 逆向工程核心原理 Chapter22 | 恶意键盘记录器
  • Jenkins安装使用详解,jenkins实现企业级CICD流程
  • 【解压即玩】PC极限竞速:地平线5 顶级豪华中文版 v1.656.386 全DLC 联机补丁810辆全车存档
  • HTML沙漏爱心
  • ansys apdl目标区域节点号提取,通过workbench设置节点集合
  • 安装python软件
  • UniApp 中页面跳转的方法及传值
  • 金融风控领域的15大顶级学术期刊
  • 2024年Java最新面试题总结(三年经验)
  • ES6, React, Redux, Webpack写的一个爬 GitHub 的网页
  • Javascript Math对象和Date对象常用方法详解
  • jQuery(一)
  • k8s 面向应用开发者的基础命令
  • php中curl和soap方式请求服务超时问题
  • spring + angular 实现导出excel
  • Spring Boot快速入门(一):Hello Spring Boot
  • 闭包--闭包之tab栏切换(四)
  • 编写符合Python风格的对象
  • 巧用 TypeScript (一)
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 数组大概知多少
  • 听说你叫Java(二)–Servlet请求
  • 学习JavaScript数据结构与算法 — 树
  • 学习笔记:对象,原型和继承(1)
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • 自定义函数
  • 3月7日云栖精选夜读 | RSA 2019安全大会:企业资产管理成行业新风向标,云上安全占绝对优势 ...
  • 阿里云API、SDK和CLI应用实践方案
  • #define与typedef区别
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • $.ajax()方法详解
  • (1)Hilt的基本概念和使用
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (MonoGame从入门到放弃-1) MonoGame环境搭建
  • (二十四)Flask之flask-session组件
  • (接口自动化)Python3操作MySQL数据库
  • (南京观海微电子)——示波器使用介绍
  • (一)模式识别——基于SVM的道路分割实验(附资源)
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (转)h264中avc和flv数据的解析
  • (转)用.Net的File控件上传文件的解决方案
  • ./configure,make,make install的作用(转)
  • .apk 成为历史!
  • .net core 外观者设计模式 实现,多种支付选择
  • .Net Core 中间件与过滤器
  • .net SqlSugarHelper
  • .net 打包工具_pyinstaller打包的exe太大?你需要站在巨人的肩膀上-VC++才是王道
  • .net 设置默认首页