目录
1. 测试用例
1.1 测试用例的基本要素
1.2 测试用例的设计方法
1.2.1 基于需求设计测试用例
2. 具体设计测试用例方法
2.1 等价类
2.2 边界值
2.3 判定表法
2.4 正交表
2.5 场景法设计测试用例
3. 针对一个需求如何设计测试用例
1. 测试用例
1.1 测试用例的基本要素
基本要素:测试环境、测试数据、操作步骤、预期结果
测试用例优点:
- 测试用例可以提高测试效率(可以减少测试工作的重复性)
- 测试用例是自动化基础
评价测试用例的标准:对比好坏用例的评价标准
- 用例表达清楚,无二义性
- 用例可操作性强
- 用例的输入和输出明确,一个用例只有一个预期结果
- 用例的可维护性好
- 用例对需求的覆盖率高
1.2 测试用例的设计方法
1.2.1 基于需求设计测试用例
示例:微信发红包测试点设计
基于需求设计测试用例的问题?
只是大概的测试用例,并不全面。
2. 具体设计测试用例方法
2.1 等价类
(1)什么是等价类?
依据需求将输入(特殊情况下会考虑输出)划分为若干个等价类,从等价类中选出一个测试用例,如果这个测试用例测试通过,则认为所代表的的等价类测试通过,这样就可以用较少的测试用例达到尽量多的功能覆盖,解决了不能穷举测试的问题。
- 有效等价类:对于程序的规格说明书是合理的、有意义的输入数据构成的集合,利用有效等价类验证程序是否实现了规格说明书所规定的功能和性能(满足用户需求的数据集合)。
- 无效等价类:根据需求说明书,不满足需求的集合(不满足用户需求的数据集合)。
(2)如何设计测试用例?
- 充分理解需求
- 划分有效等价类、无效等价类
- 覆盖有效等价类设计测试用例
- 覆盖无效等价类设计测试用例
举例:
需求:注册名长度6~15,类型必须是字母才能注册成功。
注意:
覆盖有效等价类的时候,一个测试用例,覆盖所有的有效等价类。
覆盖无效等价类的时候,一个测试用例,只能覆盖一个无效等价类。(便于出错时进行查错)
(3)存在问题?
问题在于对边界值没有进行测试。
2.2 边界值
(1)概念
边界值分析法就是对输入输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,其测试用例来自于等价类的边界。
(2)边界值重要的几个点
上点:边界上的点
内点:边界内的点
离点:距离上点最近的一个点,如果闭区间,区间外距离上点最近的点;如果是开区间,区间内距离上点最近的点。
举例:
输入框长度为[1,11],取边界值为1,11,12,0
上点:1,11
内点:3,5,7,9
离点:0,12
输入框长度为[1,11)
上点:1,11
内点:3,5,7,9
离点:0(闭区间),10(开区间)
(3)如何设计测试用例
- 充分理解需求
- 找出边界点(上点、内点、离点)
- 针对边界设计测试用例
等价类+边界值设计测试用例:
2.3 判定表法
(1)输入的数据之间往往有一定的逻辑关系。
(2)什么是判定表?
判定表是一个数据表,这个数据表表示的是输入条件和输出结果之间的关系。
恒等、与、或、非
- 与:条件全为真,输出结果为真;条件其中一个为假,结果为假。
- 或:条件其中一个为真,输出结果为真;条件全部为假,输出结果为假。
- 非:条件为真,结果为假;条件为假,结果为真。
- 恒等:条件为真,输出结果真;条件为假,输出结果为假。
(3)如何通过这个方法来设计测试用例?
- 充分了解需求
- 确定需求所有可能输入和输出
- 分析输入和输出之间关系
- 画判定表
- 将判定表转化为测试用例
举例:假设业务单据的处理规则为:淘宝618活动,订单已提交,订单合计金额大于300元或有红包,则进优惠
输入:订单已提交,订单金额>300,有红包
输出:优惠、不优惠
三个条件,两个输出,因此判定表的列数为=8列
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
订单已提交 | Y | Y | Y | Y | N | N | N | N |
订单金额>300 | Y | Y | N | N | Y | N | Y | N |
有红包 | Y | N | Y | N | Y | Y | N | N |
优惠 | Y | Y | Y | N | N | N | N | N |
不优惠 | N | N | N | Y | Y | Y | Y | Y |
测试用例设计
2.4 正交表
(1)什么是正交表
(2)水平、因素
因素:需求中涉及到的变量
水平:变量取值
(3)正交的特性
每一列中各数字出现的次数都一样多。
任何两列中的各有序数对出现的次数都一样多。
(4)如何设计测试用例
- 充分理解需求
- 分析需求因素和水平
- 画正交表
- 将正交表转换为测试用例
举例:姓名、邮箱、密码、确认密码、验证码必须全部输入,才能进行注册
因素:姓名、邮箱、密码、确认密码、验证码
水平:填写、不填写
画正交表(借助工具进行生成)
case | 姓名 | 邮箱 | 密码 | 确认密码 | 验证码 |
1 | 填写 | 填写 | 填写 | 填写 | 填写 |
2 | 填写 | 不填写 | 不填写 | 不填写 | 不填写 |
3 | 不填写 | 填写 | 不填写 | 不填写 | 不填写 |
4 | 不填写 | 不填写 | 填写 | 不填写 | 填写 |
5 | --填写 | 填写 | 填写 | 不填写 | 不填写 |
6 | --填写 | 不填写 | 不填写 | 填写 | 填写 |
测试用例:
姓名、邮箱、密码、确认密码、验证码全部填写,注册成功
姓名填写、邮箱、密码、确认密码、验证码全部不填写,注册失败
...
用例补充:
姓名、邮箱、密码、确认密码、验证码全部不填写,注册失败
如何借助工具allpairs画正交表
①填写excel表格
②将表格内容写到记事本中
③进入allpairs文件路径 cd 文件路径
④执行 allpairs.exe XXX.txt > XXX_result.txt 命令,生成正交表
2.5 场景法设计测试用例
备用事件流:
- 插入的卡不是银行卡/插入的卡不是本银行的卡/卡失效....
- 密码输入错误/密码正确/密码输入次数超过上限(3次)....
- 选择查询余额/直接选择取款....
- 输入金额是100的倍数/输入金额为不是100的倍数/输入金额超过ATM取款金额上限.....
- ATM断电/ATM断网....
- 长时间不取卡/吞卡....
设计测试用例:
①插入正常的卡,密码正确,选择取款,输入取款金额,出钞,取卡
②插卡非本银行的卡,不能取款,吐卡
.......
3. 针对一个需求如何设计测试用例
3.1 针对物品(水杯)设计测试用例
测试用例设计万能公式:功能、兼容、性能、安全、易用性、界面
3.2 针对一个软件设计测试用例
微信发送朋友圈设计测试用例
功能:
界面(字体大小、类型、颜色、页面布局...):
兼容性:
性能、安全、易用性、网络、中断:
3.3 针对一个代码片段设计测试用例
3.4 针对一个接口设计测试用例