三、基于组合及其优化的方法
1.决策表(判定表)方法
(1)决策表是功能性测试方法中最严格的。
(2)基于决策表的测试是以等价类为基础的,但更具备测试的完备性和无冗余性。
(3)输入条件都是有效等价类,不是具体的数据,不考虑无效等价类。
(4)从整体输入域 拆分成 个体输入域时,若输入条件之间不存在相关性,就没必要使用决策表测试,因为此时等价类测试生成的测试用例之间本身不存在冗余;
(4)基本组成(相当于既有输入域,又有输出域):
(5)决策表的化简:如果有且仅有一项的输入取任何值对输出均无任何影响,则可合并。
2.例题:第二日问题
这里直接给出了最对最难的方法,直接就是把12月拆出来了,并且直接完成了合并操作。
(1)等价类划分:
(2)写出对应的的决策表:
(3)写出对应的测试用例:
3.因果图法
(1)是一种利用图解法分析输入的各种组合情况的测试方法。
(2)考虑了输入条件的各种组合及输入条件之间的相互制约关系,并考虑输出情况。
(3)适合测试组合数量少 (一般指 20 种以下,如果组合数量大选择使用正交排列法)。
(4)因果图的基本图形符号:
(5)强制约束符号:
E(Exclusive,互斥)
I(include,at least one,包含
O(one and only one,惟一)
R(Requires,要求)
M(Mask,强制),又称为屏蔽
4.例题:字符和数字
某个软件规格说明书中包含以下的要求:
a.第一个字符必须是A或B,第二个字符必须是一个数字,在此情况下进行文件的修改;
b.但如果第一列字符不正确,则输出信息L;
c.如果第二列字符不是数字,则给出信息M。
答:(1)因果关系表:
(2)由题目关系画出因果图:
(3)转换为决策表:
(4)化简合并决策表,并写出测试用例:
5.Pairwise方法(两两组合法)
(1)可大幅度降低组合的数量
(2)对于下列例子,完整走一遍要3*3*3=27种用例:
A:A1、A2、A3
B:B1、B2、B3
C:C1、C2、C3
(3)但使用了该方法,让A,B这俩组合,不考虑C,则只需要3*3=9。
(4)更变态的是,不管总共几种,都只选两种,忽视其他的。
6.正交实验法
(1)结果不可能全部都是0或1两种状态,也可能出现3种4种乃至更多的状态,这个时候就要用正交试验法了(例如操作系统因子就要分成ios,android,linux等3种状态)。
(2)结构(下面这个还是只有两种状态,但是其中的值可以是3,4,....等等,具体看题目要求):
(3)正交表的公式:
n:实际测试用例的个数,对应正交表的行数;
q:状态;
s:输入条件的总数,对应正交表的列数(也就是因子,其实也就是条件有几个);
(4)举例:上面那个图就是,
。