测试用例(Test Case)是为了实施测试而向被测试的系统提供的一组集合,这组集合包含:测试环境,测试步骤,测试数据,预期结果等要素。
设计测试用例原则⼀:
测试用例中⼀个必需部分是对预期输出或结果进行定义 。
在软件中,涉及到的特性太多了 仅仅通过头脑风暴是无法完成一次完整的测试。
通过编写测试用例,可以想到要测试哪些内容,通过一次又一次的更新修改将测试用例写到完成,功能覆盖率更高即可。
编写测试用例也有讲究(编写测试用例要素),但是这种讲究很早之前用得较多(通过excel表格来编写和管理测试用例),现在用的少(脑图/思维导图)。
根据需求文档通过excel编写测试用例(涉及到测试用例的要素):
通过思维导图编写测试用例:
原则二:
1.测试用例的编写不仅应当根据有效和预料到的输⼊情况,而且也应该根据无效和未预料到的输入情况。
2.检查程序是否“未做其应该做的”仅是成功的⼀半,测试的另⼀半是检查程序是否“做了其不应该做的”。(是上⼀条原则的必然结果)
正确设计测试用例的思想:常规思维+逆向思维+发散性思维。
设计测试用例公式:功能测试+界面测试+性能测试+兼容性测试+易用性测试+安全测试
功能测试 | 从产品功能角度出发,验证功能是否是正确的 |
界面测试 | 肉眼可见的部分都成为界面,界面所有元素都需要测试 |
性能测试 | 通常为一些极端情况 |
兼容性测试 | 不同版本(软件,系统)浏览器的兼容性,不同的浏览器等 |
易用性测试 | 具备简单易上手的属性(引导教程) |
安全测试 | 是否具备危险材质,气味; 接口响应数据也需要考虑到用户数据的安全性; 登录场景需要将密码进行加密展示; 数据存储用户隐私数据是否加密; SQL注入; 越权... |
除了上述,还有一些特殊的测试场景~
弱网测试:目的就是为了覆盖更多的网络场景,尽可能保证用户体验。关键点包括:
- 页面响应时间是否可以接受,关注包括热启动、冷启动时间、页面切换、前后台切换、首字时间, 首屏时间等。
- 页面呈现是否完成⼀致。
- 超时文案是否符合定义,异常信息是否显示正常。
- 是否有超时重连。
- 安全角度:是否会发生dns劫持、登陆ip更换频繁、单点登陆异常等。
- ⼤流量事件风险:是否会在弱网下进行更新apk包、下载文件等大流量动作。
可以借助抓包工具来模拟实现弱网测试:fiddler,Charles等
使用fiddler演示:
安装卸载测试:针对需要进行部署的软件,除了软件功能外,我们还需要关注软件的能够成功安装和卸载。
- 安装:安装包是否可以安装,卸载之后是否可以继续安装重复安装...软件更新后安装是否成功
- 卸载:安装完成后卸载,安装一半后卸载,卸载一次后继续安装继续卸载,卸载一半停止后是否还可以继续卸载...
案例:水杯 的测试用例
以上就是根据需求文档设计初步的测试用例~