在黑盒测试过程中,有9种常用的方法:
1.等价类划分
2.边界值分析
3.判定表法
4.正交实验法
5.流程图分析
6.因果图法
7.输入域覆盖法
8.输出域覆盖法
9.猜错法
前面我们已经讲解过了等价类划分、边界值、判定表。
可以参考我之前的文章:
黑盒测试过程中【测试方法】讲解1-等价类,边界值,判定表_朝一爱学习的博客-CSDN博客
4.正交实验法
正交实验法和判定表法都是生成一个表,根据表格来写测试用例。那么这两个表到底有什么却别呢?
前面讲了判定表就是把所有可能的情况一一列举出来,对于变量不多的情况,这个方法非常好,可以更全面地进行测试。但是当我们变量很多的时候,再去用判定表的话就会非常繁琐了。
此时,我们选择正交表。其实,正交表就是在判定表内用数学公式选择一些测试用例。
先上公式:
L:正交表代号
n:测试用例个数
p:变量的取值的个数(p1,p2同理)
q:变量个数(q1,q2同理)
其中,变量个数也叫因素数(正交表里比较专业的说法),变量取值的个数也叫因素的水平数。
正交表: n=(p-1)q+1
混合正交表: n=(p1-1)q1+(p2-1)q2+1
正交实验法设计测试用例步骤:
1.找到变量个数
2.找到各个变量取值个数
3.套公式,得到一个正交表
4.百度查常用正交表,选择合适正交表
列举几个常用正交表网页:
https://support.sas.com/techsup/technote/ts723_Designs.txt
实例1(正交表):
“性别”=“男,女”
“班级”=“1班,2班”
“成绩”=“及格,不及格”
如果是全部测试的话,需要设计8个测试用例
如果是采用正交表的话,只需要设计4个测试用例
1.找变量个数-3个:性别,班级,成绩,q=3
2.各个变量取值个数:2,p=2
3.套公式:n=(p-1)q+1=(2-1)*3+1=4得到正交表
4.查常用正交表,刚好有
直接套用这个正交表得到测试用例:
性别 | 班级 | 成绩 | |
1 | 男 | 1 | 及格 |
2 | 男 | 2 | 不及格 |
3 | 女 | 1 | 不及格 |
4 | 女 | 2 | 及格 |
特别地:如果得到一个正交表公式之后,在常用正交表里不存在的话,那就选测试用例更多的。
比如:
我们选择
实例2(混合正交表):
“性别”=“男,女”
“班级”=“1班,2班,3班”
“成绩”=“及格,不及格”
1.找变量个数-3个:性别,班级,成绩
2.各个变量取值个数:2,3,2,p1=2,p2=3
从变量和取值个数可以看出:取值为2的有2个变量,取值为3的有1个变量
所以我们的q1=2,p1=2,q2=1,p2=3
3.套公式:n=(p1-1)q1+(p2-1)q2+1=(2-1)=(2-1)*2+(3-1)*1+1=5
发现常用正交表中没有这个正交表。我们的规则是:p>max(p1,p2),N>n,选择满足条件内n小的
也就是我们本例选的p>max(2,3)------p>3,n>5
我们也可以使用正交表生成器:allpairs
1.新建表格,把我们的变量和取值输进去
2.新建txt文件,把表格里的内容复制到txt文件里
3.打开dos命令窗口,进入allpairs.exe目录,输入命令
allpairs.exe test.txt>case.txt
就能看到生成了case.txt,里面就是生成的测试用例啦~
生成的测试用例如下图:
case中出现~,则表示该处的数据代表无关数据,可以任意取值。
pairings不知道代表什么意思,找了好半天找到一个解释:
在allpairs中,pairings是从各个属性值中选择并组合而成的,以尽可能覆盖不同的情况,并生成最少的测试用例集
(但是还是没看懂,有清楚的朋友们麻烦私信我交流一下啊,万分感谢)
其中pairing details表示用例的细节。比如最后一个,表示,性别为女,成绩为不及格的用例出现了2次,分别是用例2和6。
未完待续~