用正交实验法设计测试用例
试验次数=(水平数-1)因素数次方+1
正交表的形式:
L行数(水平数因素数)
如:L8(27)
以上介绍了正交实验法的由来。怎么用正交实验法进行用例的设计呢?
一、用正交表设计测试用例的步骤
(1) 有哪些因素(变量)
(2) 每个因素有哪几个水平(变量的取值)
(3) 选择一个合适的正交表
(4) 把变量的值映射到表中
(5) 把每一行的各因素水平的组合做为一个测试用例
(6) 加上你认为可疑且没有在表中出现的组合
二、如何选择正交表
- 考虑因素(变量)的个数
- 考虑因素水平(变量的取值)的个数
- 考虑正交表的行数
- 取行数最少的一个
三、设计测试用例时的三种情况
(1)因素数(变量)、水平数(变量值)相符
(2)因素数不相同
(3)水平数不相同
四、我们来看看第一种情况:
(1)因素数与水平数刚好符合正交表
我们举个例子:
这是个人信息查询系统中的一个窗口。我们可以看到要测试的控件有3个:姓名、身份证号码、手机号码,也就是要考虑的因素有三个;而每个因素里的状态有两个:填与不填。
选择正交表时分析一下:
1、表中的因素数>=3;
2、表中至少有3个因素数的水平数>=2;
3、行数取最少的一个。
从正交表公式中开始查找,结果为:
L4(23)
变量映射:
测试用例如下:
1:填写姓名、填写身份证号、填写手机号
2:填写姓名、不填身份证号、不填手机号
3:不填姓名、填写身份证号、不填手机号
4:不填姓名、不填身份证号、填写手机号
增补测试用例
5:不填姓名、不填身份证号、不填手机号
从测试用例可以看出:如果按每个因素两个水平数来考虑的话,需要8个测试用例,而通过正交实验法进行的测试用例只有5个,大大减少了测试用例数。用最小的测试用例集合去获取最大的测试覆盖率。
(2)因素数不相同
如果因素数不同的话,可以采用包含的方法,在正交表公式中找到包含该情况的公式,如果有N个符合条件的公式,那么选取行数最少的公式。
(3)水平数不相同
采用包含和组合的方法选取合适的正交表公式。
正交实验法的又一个例子
上面就正交实验法进行了讲解,现在再拿PowerPoint软件打印功能作为例子,希望能为大家更好地理解给方法的具体应用
假设功能描述如下:
- 打印范围分:全部、当前幻灯片、给定范围 共三种情况;
- 打印内容分:幻灯片、讲义、备注页、大纲视图 共四种方式;
- 打印颜色/灰度分: 颜色、灰度、黑白 共三种设置;
- 打印效果分:幻灯片加框和幻灯片不加框两种方式。
因素状态表:
MILY: 宋体">状态/因素 | A打印范围 | B打印内容 | C打印颜色/灰度 | D打印效果 |
0 | 全部 | 幻灯片 | 颜色 | 幻灯片加框 |
1 | 当前幻灯片 | 讲义 | 灰度 | 幻灯片不加框 |
2 | 给定范围 | 备注页 | 黑白 |
|
3 |
| 大纲视图 |
|
|
我们先将中文字转换成字母,便于设计。得到:
因素状态表:
状态/因素 | A | B | C | D |
0 | A1 | B1 | C1 | D1 |
1 | A2 | B2 | C2 | D2 |
2 | A3 | B3 | C3 |
|
3 |
| B4 |
|
|
我们分析一下:
被测项目中一共有四个被测对象,每个被测对象的状态都不一样。
选择正交表:
1、表中的因素数>=4
2、表中至少有4个因素的水平数>=2
3、行数取最少的一个
最后选中正交表公式:
L16(45)
正交矩阵为:
1 | 2 | 3 | 4 | 5 | |
1 | 0 | 0 | 0 | 0 | 0 |
2 | 0 | 1 | 1 | 1 | 1 |
3 | 0 | 2 | 2 | 2 | 2 |
4 | 0 | 3 | 3 | 3 | 3 |
5 | 1 | 0 | 1 | 2 | 3 |
6 | 1 | 1 | 0 | 3 | 2 |
7 | 1 | 2 | 3 | 0 | 1 |
8 | 1 | 3 | 2 | 1 | 0 |
9 | 2 | 0 | 2 | 3 | 1 |
10 | 2 | 1 | 3 | 2 | 0 |
11 | 2 | 2 | 0 | 1 | 3 |
12 | 2 | 3 | 1 | 0 | 2 |
13 | 3 | 0 | 3 | 1 | 2 |
14 | 3 | 1 | 2 | 0 | 3 |
15 | 3 | 2 | 1 | 3 | 0 |
16 | 3 | 3 | 0 | 2 | 1 |
用字母替代正交矩阵:
1 | 2 | 3 | 4 | 5 | |
1 | A1 | B1 | C1 | D1 | 0 |
2 | A1 | B2 | C2 | D2 | 1 |
3 | A1 | B3 | C3 | 2 | 2 |
4 | A1 | B4 | 3 | 3 | 3 |
5 | A2 | B1 | C2 | 2 | 3 |
6 | A2 | B2 | C1 | 3 | 2 |
7 | A2 | B3 | 3 | D1 | 1 |
8 | A2 | B4 | C3 | D2 | 0 |
9 | A3 | B1 | C3 | 3 | 1 |
10 | A3 | B2 | 3 | 2 | 0 |
11 | A3 | B3 | C1 | D2 | 3 |
12 | A3 | B4 | C2 | D1 | 2 |
13 | 3 | B1 | 3 | D2 | 2 |
14 | 3 | B2 | C3 | D1 | 3 |
15 | 3 | B3 | C2 | 3 | 0 |
16 | 3 | B4 | C1 | 2 | 1 |