等价类法
将被测试模块的输入划分为有效等价类和无效等价类,从等价类中选出一个测试用例,如果这个测试用例测试通过,则认为所代表的等价类测试通过,这样就可以用较少的测试用例达到尽量多的功能覆盖,解决了不能穷举测试的问题。
有效等价类:满足用户需求的数据集合
无效等价类:不满足用户需求的数据集合
例:手机号由11位数字组成
有效等价类:11位数字
无效等价类:0-10位数字 大于11位数字
根据等价类法编写测试用例步骤:
- 根据需求,确定输入输出类型
- 划分有效等价类和无效等价类
- 设计测试用例,覆盖有效等价类(一条测试用例尽量覆盖多的有效等价类)
- 设计测试用例,覆盖无效等价类(一条测试用例只能覆盖一条无效等价类)
案例
用户名输入为6-15位字母
边界值法
在测试过程中,大量的错误是发生在输入或者输入范围的边界上,而不是输入范围的内部。边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。
例:查询面页面有999行,每50行为一页
边界值取:0行、1行、50行、51行、999行
边界值的一些概念需要掌握:
上点:区间边界上的点
内点:区间内部的点
离点:边界左右的一个点,对于闭区间是范围外的一个点,对于开区间,是范围内的一个点
根据边界值法编写测试用例步骤:
- 根据需求,确定输入输出类型
- 确定上点、内点、离点
- 针对这三点设计测试用例
案例
输入框需要6-15位字母+数字的输入
场景分析法
软件几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流。该方法可以比较生动地描绘出事件触发时的情景,有利于测试设计者设计测试用例,是测试用例更容易理解和执行。(根据业务流程将功能串行化,模拟事件发生过程)
根据场景法编写测试用例步骤:
- 根据需求,确定基本流和备选流
- 基于这两者生成场景
- 针对场景设计测试用例
注册案例(参考)
验证用户名需求:第一项要求输入手机号或者电子邮箱作为账户名,第二项要求正确输入验证码,两项都验证成功后填写账户信息;但如果第一项校验不正确,则报错L(输入手机号或电子邮箱格式错误);如果第二项验证不成功,则报错M(验证码输入错误)。
判定表法
使用等价类方法时对于输入域及输入域存在关联时无法覆盖,这个时候就需要用到判定表法理清关系。
在学习该方法之前,需要先了解一下因果图:
因果图是从需求中找出因(输入条件)和果(输出或程序状态的改变),通过分析输入条件之间的关系(组合关系、约束关系等)及输入和输出之间的关系绘制出因果图,再转化成判定表,从而设计出测试用例的方法。
-
条件与结果之间的关系
-
条件与条件之间的关系
在复杂的情况下,我们会先选择将输入条件和结果之间的关系转化为因果图,再画出判定表。也可以直接画判定表。
例:假设业务单据的处理规则为:“淘宝618活动,订单已提交,订单合计金额大于300元或有红包,则有优惠”。
分析:
决定结果的输入条件有三个:订单提交?、合计金额>300?、有红包?
三种输入,每个输入都有两种结果(是/否)共计2^3条测试用例
正交排列法
因果法设计用例太多怎么办?
正交实验设计方法:是由数理统计学科中正交实验方法进化出的一种测试多条件多输入的用例设计方法,从大量的(实验)数据(测试例)中挑选适量的,有代表性的点(例),从而合理地安排实验(测试)的一种科学实验设计方法。正交法的目的是为了减少用例数目。用尽量少的用例覆盖输入的两两组合。
因素(Factor):在一项试验中,凡欲考察的变量称为因素(变量)
水平(位级)(Level):在试验范围内,因素被考察的值称为水平(变量的取值)
正交表的两条性质:
每一列中各数字出现的次数都一样多。
任何两列中的各有序数对出现的次数都一样多。
正交法设计测试用例的步骤:
1、有哪些因素(变量)
2、每个因素有哪几个水平(变量的取值)
3、选择一个合适的正交表
4、把变量的值映射到表中
5、把每一行的各因素水平的组合作为一个测试用例
6、加上你认为可疑且没有在表中出现的用例组合
例:以注册为例(类似工具可以使用微软的PICT工具):
1、因素:姓名、邮箱、密码、确认密码、验证码
2、水平:填写、不填写
使用allpairs.exe等软件自动正交化
结合自动生成的测试用例,再人工增补额外测试用例