测试用例设计方法(等价类划分、边界值、因果图)
1、等价类划分
(1)等价类划分方法:把所有可能的输入数据,即程序的输入域划分成若干部分,然后从每一部分中选取少数有代表性的数据做为测试用例,代表性数据作用等价于该类中的其他值。使用这一方法设计测试用例,首先必须在分析需求规格说明书的基础上划分等价类,列出等价类表。等价类实际上就是某个输入域的子集和,在该子集和中,各个输入数据对于揭露程序中的错误都是等效的。
有效等价类:对于程序规格说明来说,是合理的,有意义的输入数据构成的集合
无效等价类:对于程序规格说明来说,是不合理的,无意义的输入数据构成的集合
设计测试用例时,要同时考虑有效等价类和无效等价类设计
(2)划分等价类的经验原则:
1) 规定输入条件的取值范围,可以划分出一个有效等价类和两个无效等价类
2) 如果输入条件规定了输入值的集合,或者是规定了“必须如何”的条件,这时可确立一个有效等价类和一个无效等价类
3) 如果输入条件是一个布尔值,则可以确定一个有效等价类和一个无效等价类。
4) 如果规定了输入数据的一组值(假设N个),而且程序要对每个输入值分别进行处理。
5) 如果规定了输入数据必须遵守的规则,则可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)
6) 在确知已划分的等价类中,各元素在程序处理中的方式不同的情况下(字母要区分大小写),则应再将该等价类进一步地划分为更小的等价类
(3)构建测试案例
1) 为每一个等价类规定一个唯一编号。
2) 使用测试案例尽可能多的覆盖有效等价类。
3) 使用单独的一个测试案例覆盖单独的一个无效等价类。
4) 最后,直到所有的有效等价类和无效等价类均被覆盖。
2、边界值分析法
(1)边界值分析法:对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。从测试工作经验得知,大量的错误是发生在输入或输出范围的边界上,而不是在输入范围的内部。等价分类法的测试数据是在各个等价类允许的值域内任意选取的;边界值分析法的测试数据必须在等价类的边界值附近选取;边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况。
(2)边界值分析原则:
1) 如果输入条件或输出条件规定了值的范围并且有效条件包括了值的边界,可分别对边界和略超出边界取值
2) 如果输入条件或输出条件规定了值的范围并且有效条件不包括了值的边界,可分别对边界和略处于边界内取值
3) 如果输入或输出域是个有序的集合(如顺序文件、表格等),应注意选取有序集的第一个和最后一个元素以及集合外但靠近集合的元素作为边界
(3)边界值分析测试的基本思想:
故障往往出现在输入变量的边界值附近。因此,边界值分析法利用输入变量的最小值(min)、略大于最小值(min+)、输入值域内的任意值(nom)、略小于最大值(max-)和最大值(max)来设计测试用例。
健壮性测试是作为边界值分析的一个简单的扩充,它除了对变量的5个边界值分析取值外,还需要增加一个略大于最大值(max+)以及略小于最小值(min-)的取值,检查超过极限值时系统的情况。因此,对于有n个变量的函数采用健壮性测试需要6n+1个测试用例。
3、因果图
(1)因果图法
是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。
(2)判定表的组成:
条件桩—列出问题的所有条件
条件项—针对条件桩给出的条件列出所有可能的取值
动作桩—列出问题规定的可能采取的操作
动作项—指出在条件项的各组取值情况下应采取的动作
(3)、因果图法生成测试用例的基本步骤:
1) 分析软件规格说明描述中的因果关系(输入与输出的因果关系)
2) 找出原因与结果、原因与原因之间的对应关系,画出因果图
3) 在因果图上标记约束或限制条件
4) 把因果图转化为判定表
5) 将判定表中的每一列拿出来设计测试用例
(4)、因果关系
因果图中使用4种因果关系符号来表达因果关系:
在因果图的基本符号中,图中的左结点ci表示输入状态(或称原因),右结点ei表示输出状态(或称结果)。ci 与 ei 取值0或1,0表示某状态不出现,1则表示某状态出现。
恒等:若 c1 是1,则 e1 也为1,否则 e1 为0。
非:若 c1 是1,则 e1 为0,否则e1为1。
或:若 c1 或 c2 或 c3 是1,则 e1 为1,否则 e1 为0。
与:若 c1 和 c2 都是1,则 e1 为1,否则 e1 为0。
(5)、因果图中的约束
在实际问题中输入状态相互之间、输出状态相互之间可能存在某些依赖关系,称为“约束”。对于输入条件之间的约束有E(Exclusive or)、I(In)、O(Only)、R(Request)四种约束,对于输出条件的约束只有M(Mandate)约束。
1) 原因与原因之间的约束
E约束(异):输入a和b中最多有一个可能为1,即a和b不能同时 为1。
I 约束(或):输入a、b、c中至少有一个必须为1,即 a、b、c不能同时为0。
O约束(唯一):输入a和b必须有一个且仅有一个为1。
R约束(要求):输入a是1时,输入b必须是1,即a为1时,b不能为0。
2) 结果与结果之间的约束
M约束(强制):若结果a为1,则结果b强制为0。
3) 总结:因果图方法是一个非常有效的黑盒测试方法它能够生成没有重复性的且发现错误能力强的测试用例而且对输入、输出同时进行了分析