一、设计测试用例的万能公式
对于一个水杯设计测试用例,可能会想到:水杯是否漏水、水杯是否保温、水杯是否安全、水杯是否是玻璃的、水杯是否能装开水等等,
上述的测试都可以总结为:功能测试+界面测试+性能测试+安全性测试+易用性测试+兼容性测试。
所以,对于一个水杯的测试用例如下:
为一个登录页面也可以利用万能公式编写测试用例:
二、设计测试用例的方法
基于需求进行测试用例的设计
分析需求然后设计根据需求来设计测试用例。
假设在用户登录页面中提示用户名的长度为8~16位,于是就利用穷举法来设计测试用例,若测试用例能够全部通过就符合需求的要求,但是如果需求中的数据量大,例如用户名的长度是6~500位,利用穷举法就难以进行设计。
等价类
针对需求输入范围划分为若干个等价类,然后从等价类中取出一个用例来进行测试,如果该测试用例通过了,那么表示该测试用例所在的等价类也就全部测试通过了。
等价类又可以分为有效类和无效类:
有效类:针对需求有效而且是有意义的数据构成的集合;
无效类:针对需求无效并且无意义的数组构成的集合。
那么根据等价类来设计测试用例的步骤:
- 确定有效类和无效类;
- 设计测试用例。
那么对于登录页面中用户名的长度是6~500应如何根据等价类来设计测试用例?
1、确定有效类和无效类
有效类:长度在6~500范围的用户名。
无效类:长度小于6或者长度大于500的用户名。
2、设计测试用例
边界值
边界值通常是对等价类的补充,通常测试用例需要在等价类的基础上加上边界值和次边界值。
那么对于登录页面中用户名的长度是6~500应如何根据边界值来设计测试用例?
判定表法
是一种判断逻辑判断的工具。
利用判断表法设计测试用例的方法:
- 确定输入条件的输出条件;
- 分析输入条件和输出条件的关系;
- 画出判定表;
- 根据判定表编写测试用例。
例如有一个需求:订单提交之后,订单合计金额大于300或者订单使用了优惠券,就认为订单属于有优惠的订单否则就属于没有优惠的订单。
那么利用判定表法设计该需求的测试用例的步骤如下:
1、确定输入条件和输出条件
输入条件:订单金额大于300、使用优惠券、提交。
输出条件:订单属于有优惠的订单或订单属于没有优惠的订单。
2、分析输入条件和输出条件的关系
当输入为:订单金额大于300或者使用优惠券,并且订单提交了之后就输出:该订单是有优惠的订单,否则就输出该订单是没有优惠的订单。
3、画判定表
4、根据判定表来编写测试用例
正交法
正交法需要用到正交表。
正交表有如下特征:
- 每一列中,不同的数字出现的次数是相等的;
- 任意两列中数字的排列方式齐全且均衡。
生成正交表的工具:allparis
正交法需要用到以下概念:
因素数:输入的条件。
水平数:输入条件对应的结果(此处不是输出条件)
利用正交法设计测试用例的步骤:
- 确定因素数和水平数;
- 利用allparis工具来生成正交表;
- 根据正交表来编写测试用例;
- 补充测试用例。
例如有一个用户注册信息:姓名、电子邮箱、密码、验证码,为此设计测试用例。
1、确定因素数和水平数
因素数:姓名、电子邮箱、密码、验证码。
水平数:填写、不填写。
2、利用allparis工具来生成正交表
a、将因素数和水平数写入excel
b、在allparis目录下创建一个test.txt文档,将刚才excel中的东西复制粘贴,然后进行保存。
c、打开cmd命令行窗口,使用cd命令切换到allparis目录,然后使用appairs.exe test.txt > test2.txt命令执行,执行之后test2文件之中就会出现正交表。
3、根据正交表来编写测试用例。
4、补充测试用例。
场景测试法
场景测试法主要包含基本事件流和多个备用事件流。
例如取ATM机取钱的一个场景:
编写测试用例:
基本事件流:插卡->输入密码正确->选择取款业务->取款小于50万->出钱->出卡
备用事件流:
插卡->密码连续三次输入错误->出卡
插卡->输入密码正确->选择取款业务->取款小于50万->柜台办理
插卡->输入密码正确->选择取款业务->取款小于50万->出钱->机器故障->吞卡
……
错误猜测法
主要根据测试人员的测试经验来进行编写测试用例。