1. 概念
测试用例是为了实施测试而向被测试的系统提供的一组集合,这组集合包括:版本、测试环境、操作步骤、测试数据、预期结果等要素。
好处
测试执行者的依据
使得工作可重复,自动化测试的基础
评估需求覆盖率
用例的复用
积累测试的方法思路以供后续借鉴
不足
设计测试用例花费时间较长
测试的覆盖率无法衡量
不知道是否较全面的测试了所有功能
对新版本的重复测试很难实施
存在大量冗余测试影响测试效率
测试用例的设计方法
基于需求(用户需求或软件需求)的设计
关注两个关键点:
1.验证需求是否正确、完整、无二义性,并且逻辑一致
2.从“黑盒”的角度,设计出充分且必要的测试集,以保证设计和代码都能完全符合需求。
等价类
依据需求将输入划分为若干个等价类,从等价类选出一个测试用例,如果这个测试用例通过,则认为所代表的等价类测试通过。
可以用较少的测试用例达到尽量多的功能覆盖。
- 有效等价类:对于程序的程序规格说明书是合理的、有意义的输入数据构成的集合,利用有效等价类验证程序是否实现了规格说明中所规定的的功能和性能。
- 无效等价类:根据需求说明书,不满足需求的集合。
例:检测中国人的健康状况
有效等价类:将中国人划分为婴儿、青年、壮年、老年等等价类,从各等价类中选取一些进行检测。
无效等价类:外国人。
例:用户登录,用户名由6-15位的字符串组成
有效等价类:A-Z,a-z
无效等价类:数字:0,1... 特殊字符:@,#,$...
边界值
对输入或输出的边界值进行测试的一种黑盒测试方法。
- 输入框长度为1-5,取边界值:0、1、5、6
- 运动员的参赛项目由1-3项,取边界值:0项、1项、3项、4项
- [1,20],边界值:0、1、20、21
- (1,20),边界值:1、2、19、20
注意:
在边界值中,要注意开区间、闭区间。
实际在测试设计中,会将等价类和边界值结合起来使用。
因果图
- 恒等:如果原因为真,结果必定为真。
- 与:两个原因都为真,结果才为真
- 或:2个原因中有一个为真时,结果就为真。
- 非:原因为假时,结果为真。
正交排列
在试验因素的全部水平组合中挑选部分有代表性的点进行试验,通过这部分实验结果的分析了解全面实验的情况,找出最优的水平组合。
序号 | 1 | 2 | 3 | 4 | 5 |
因素名称 | 用户名 | 密码 | 确认密码 | 验证码 | |
水平1 | 填写 | 填写 | 填写 | 填写 | 填写 |
水平2 | 不填写 | 不填写 | 不填写 | 不填写 | 不填写 |
场景设计法
通过事件触发来控制流程,事件触发时的情景便形成了场景,同一事件不同的触发顺序和处理结果就形成了事件流。
典型的应用就是用业务把各个孤立的功能点串起来。
例:处理邮件
例:用户注册
想象注册的场景来设计用例,想象各种业务流来设计用例。例如:
- 用户激活后注册不成功
- 已注册用户再次注册
错误猜测法
基于经验和直觉,找出程序中认为可能会出现的错误,有针对性地设计用例。
例:注册
- 密码校验中的大小写
- 密码发送是否明文
- 特殊字符的处理
测试用例的有效性
- 测试用例对应的功能已删除,不可操作了
- 执行一条测试用例未发现BUG,实际该处有BUG
手机微信小程序扫码共享汽车,扫码不能开锁,只能使用APP开锁。测试用例未涉及手机微信小程序扫码开锁。
- 执行一条测试用例发现了BUG
测试用例涉及手机微信小程序扫码开锁,但不能开锁,发现问题。
- 执行一条测试用例未发现BUG,实际该处BUG已修改
手机微信小程序添加了扫码开锁,正常开锁。
测试用例的粒度和评价
粒度:测试用例编写的详细程度
评价:
- 同行评审
- 用户检查
- 项目组评审