测试用例的设计方法
1、等价类划分法
-
定义:
等价类测试方法是把所有可能的输入数据,即程序的输入域划分成若干部分,然后从每一部分中选取少数有代表性的数据作为测试用例。使用等价类划分方法设计测试用例要经过划分等价类(列出等价类表)和选取测试用例两步。它将不能穷举的测试过程进行合理分类,从而保证设计出来的测试用例具有完整性和代表性。 -
类型划分:
有效等价类
有效等价类是指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。
无效等价类
无效等价类是指对于程序的规格说明来说是不理的、无意义的输入数据构成的集合。对于具体的问题,无效等价类至少应该有一个,也可能有多个。利用无效等价类可校验程序对于无效数据的处理能力,检测程序的健壮性、容错能力。 -
等价类:
等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,具有等价特性。 -
注意:
设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接收合理的数据,也要能经受住意外的考验,这样的测试才能确保软件具有更高的可靠性。 -
设计测试用例的步骤:
(1)确定需求
(2)确定有效等价类和无效等价类
(3)对每条等价类设计测试用例 -
案例:
QQ登录
QQ号 6-10位(包括6位和10位)、必须是整数数字、不能以0开头
有效等价类:6位数字、7位数字、8位数字、9位数字、10位数字(不以0开头)
无效等价类:6位数字、7位数字、8位数字、9位数字、10位数字(以0开头)
小数、字母、特殊字符、汉字、组合
2、边界值法
-
定义:
边界值分析法就是对输入或输出边界值进行测试,也是一种黑盒测试。边界值分析法通常作为等价类划分法的补充,其测试用例来自等价类的边界。长期的经验得知,大量的错误是发现在输入或输出范围的边界上,而不是发生在输入输出范围的内部,因此针对各种边界情况设计测试用例,可以查出更多错误。 -
与等价类划分法的区别:
等价类划分法可以挑选等价范围内任意一个数据作为代表,边界值分析法要求每个边界值都要作为测试条件
边界值分析法不仅考虑输入条件,同样考虑输出产生的测试情况 -
设计测试用例的步骤:
(1)确定需求
(2)确定有效和无效等价类
(3)明确输入条件中的边界值
(4)编写测试用例
3、因果图法
- 定义:
因果图法是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。 - 特点:
(1)考虑输入条件的相互制约及组合关系
(2)考虑输出条件对输入条件的依赖关系 - 核心:
因果图比较适合于输入条件比较多的情况,测试所有的输入条件的排列组合,所谓的原因就是输入,所谓的结果就是输出。“因”=输入条件,“果”=输出条件。
-
对比:
等价类划分法和边界值都是着重考虑输入条件,但没有考虑输入条件的各种组合。 -
因果图中的符号:
基本符号
通常在因果图中用Ci表示原因,用Ei表示结果,各结点表示状态,可取值“0’或‘1’。‘0’表示某状态不出现,‘1’表示某状态出现。约束条件
E(exclude)约束:a和b中至多有一个为1
I(include)包含:a、b和c中至少有一个必须是1
M(mandatory)强制:若结果a是1.结果b强制为0
O(only)唯一:a和b必须有一个,且仅有1个为1
R(required)要求:a是1时,b必须是1 -
因果图法基本步骤:
(1)找出所有的原因,原因即输入条件或输入条件的等价类。
(2)找出所有的结果,结果即输出条件。
(3)明确所有输入条件之间的制约关系以及组合关系。哪些条件不能组合到一起,哪些条件可以组合到一起
(4)明确所有输出条件之间的制约关系以及组合关系。 哪些输出结果不能同时输出,哪些输出结果可以同时输出
(5)找出什么样的输入条件组合会产生哪种输出结果。
(6)把因果图转换成判定表/决策表。
(7)为判定表/决策表中的每一列表示的情况设计测试用例。 -
案例:
交通一卡通自动充值软件
系统需求如下:
系统只接收50或100元纸币,一次只能使用一张纸币,一次充值金额只能为50元或100元;
若输入50元纸币,并选择充值50元,完成充值后退卡,提示充值成功;
若输入50元纸币,并选择充值100元,提示输入金额不足,并退回50元;
若输入100元纸币,并选择充值50元,完成充值后退卡,提示充值成功,找零50元;
若输入100元纸币,并选择充值100元,完成充值后退卡,提示充值成功;
若输入纸币后在规定时间内不选择充值按钮,退回输入的纸币,并提示错误;
若选择充值按钮后不输入纸币,提示错误
输入分析:
1、输入50元
2、输入100元
3、选择充值50元
4、选择充值100元
条件1和条件2不能组合
条件3和条件4不能组合
条件1和条件3可以组合
条件1和条件4可以组合
条件2和条件3可以组合
条件2和条件4可以组合
条件1234可以单独出现
输出分析:
a.完成充值,退卡
b.提示充值成功
c.找零
d.提示错误
结果a和结果d不能组合
结果b和结果d不能组合
结果a和结果b必须组合
结果abc可以组合
结果c和结果d可以组合
结果d可以单独出现
判定表
测试用例
4、判定表法
-
定义:
判定表也称决策表,是分析和表达多逻辑条件下执行不同操作的工具。它能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。因此,利用判定表能够设计出完整的测试用例集合。在一些数据处理问题当中,某些操作的实施依赖于多个逻辑条件的组合,即:针对不同逻辑条件的组合值,分别执行不同的操作。判定表适合于处理这类问题。 -
使用场景:
适合于有多个输入和多个输出,输入和输出之间有相互的组合关系,输入输出之间有相互的制约和依赖关系 -
组成:
判定表是由条件桩、动作桩、条件项、动作项四部分组成
条件桩(Condition Stub):列出了问题得所有条件。通常认为列出的条件的次序无关紧要。
动作桩(Action Stub):列出了问题规定可能采取的操作。这些操作的排列顺序没有约束。
条件项(Condition Entry):列出针对它左列条件的取值。在所有可能情况下的真假值。
动作项(Action Entry):列出在条件项的各种取值情况下应该采取的动作。 -
规则:
任何一个条件组合的特定取值及其相应要执行的操作称为规则。在判定表中贯穿条件项和动作项的一列就是一条规则。显然判定表中列出多少组条件取值,也就有多少条规则,既条件项和动作项有多少列。 -
化简:
规则合并有两条或多条规则具有相同动作,并且其条件项之间存在着极为相似的关系。 -
步骤:
(1)明确规则个数
(2)列出所有条件桩和动作桩
(3)填入条件项
(4)填入动作项到初始判定表
(5) 简化合并相似规则 -
案例:
同上公交卡充值
5、正交表法
- 定义
正交法,也叫正交实验法或者正交排列法,就是使用最小的测试过程集合获得最大的测试覆盖率。"正交实验”是研究多因素、多水平的一种实验方法,它利用正交表来对实验进行设计,通过少数实验代替全面的实验。在一项实验中,把影响试验结果的量称为试验因素(因子),简称因素。因素可以理解为试验过程中的自变量,试验结果可以看成因素的函数。在试验过程中,每一个因素可以处于不同的状态或状况,把因素所处的状态或状况,称为因素的水平,简称水平。
- 正交表的构成
- 正交表的设计:
可以使用正交表设计助手软件、allpairs工具
allpairs工具的使用步骤
(1)利用Excel准备一个表格
(2)将表格内容复制到txt文本中并保存,如命名为正交.txt
(3)cmd到allpairs所在目录,命令allpairs.exe 正交.txt > result.txt
(4)result.txt即为生成的正交表文件
- 案例:
实现"字符属性设置"程序需求的测试用例编写
窗体中有多个控件(字体、字符样式、颜色、字号),每个控件有多个取值
字体:宋、楷体、华文彩云
字符样式:粗体、斜体、下划线
颜色:红色、绿色、蓝色
字号:20号、30号、40号
- 使用场景:
需求条件的组合量比较大的时候
6、场景法
-
定义:
从起点,通过一系列操作步骤(事件),达成某一结果,到终点的过程测试。场景法主要用于冒烟测试。在通过了场景测试后,再通过其他方法进行更为细腻的测试。现在的软件几乎都是由事件触发来亚制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果形成事件流。 -
要素:
下图中经过用例的每条不同路径都反映了基本流和备选流,都用箭头来表示。基本流用直黑线来表示,是经过用例的最简单的路径。每个备选流自基本流开始,之后,备选流会在某个特定条件下执行。备选流可能会重新加入基本流中(备选流1和3),还可能起源于另一个备选流(备选流2),或者终止用例而不再重新加入到某个流(如2和4)。
-
案例:
挑选商品后用支付宝购物
(1)流程分析:
A基本流:输入支付宝账号 -> 输入密码 -> 确认登录 -> 确认购物 -> 购物完成
B备选流1:支付宝账号无效,结束
C备选流2:密码错误,3次机会重输,否则结束
D备选流3:账号余额不足,结束
E备选流4:用户取消
(2)场景设计:
场景1:基本流 —— A(正常支付)
场景2:基本流+备选流1 —— A+B(账号无效退出)
场景3:基本流+备选流2 —— A+C(密码错误退出)
场景4:基本流+备选流3 —— A+D(余额不足退出)
场景5 :基本流+备选流2+备选流3 —— A+C+D(密码错误后再次输入正确,余额不足退出)
场景6:基本流+备选流4 —— A+E(用户取消退出)
7、流程分析法
-
定义:
流程分析法主要是针对测试场景类型属于流程测试场景的测试项下的测试子项进行设计,是从白盒测试设计方法中的路径覆盖分析法借鉴过来的一种方法。在白盒测试中,路径就是指函数代码的某个分支组合,路径覆盖法需要构造足够的用例覆盖函数的所有代码路径(路径覆盖法:把所有测试条件写成测试用例,白盒是根据代码分支分析写测试用例)。在黑盒测试中,若将软件系统的某个流程看成路径的话,则可以针对该路径使用路径分析的方法设计测试用例。黑盒测试是看文档来写测试用例,不需要看代码 -
步骤:
1.详细了解需求;
2.根据需求说明或界面原型,找出业务流程的各个页面以及各页面之间的流转关系;
3.画出业务流程;
4.编写用例,覆盖所有的路径分支。 -
案例:
使用ATM机取款 -
使用场景:
适用于有先后顺序的测试,常用于业务流程测试、安装流程测试等,一般用于测试如ATM机、医疗设备等非常重要的系统。
8、错误推断法
- 定义:
错误推测法是基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法。 - 使用场景:
适用于项目时间比较短促,任务比较繁重的情况下,而且测试经验较多。