用正交实验法设计测试用例

试验次数=(水平数-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