测试用例设计方法--正交试验法详解
正交试验法介绍
正交试验法是研究多因素、多水平的一种试验法,它是利用正交表来对试验进行设计,通过
少数的试验替代全面试验,根据正交表的正交性从全面试验中挑选适量的、有代表性的点进
行试验,这些有代表性的点具备了“均匀分散,整齐可比”的特点。
正交表是一种特制的表格,一般用 Ln(mk)表示,L 代表是正交表,n 代表试验次数或正交表的行数,k
代表最多可安排影响指标因素的个数或正交表的列数,m 表示每个因素水平数,且有 n=k*(m-1)+1。
正交表的特点
正交表具有以下两个特点。正交表必须满足这两个特点,有一条不满足,就不是正交表。
每列中不同数字出现的次数相等。这一特点表明每个因素的每个水平与其它因素的每个水平
参与试验的几率是完全相同的,从而保证了在各个水平中最大限度地排除了其它因素水
平的干扰,能有效地比较试验结果并找出最优的试验条件。
在任意2列其横向组成的数字对中,每种数字对出现的次数相等。这个特点保证了试验
点均匀地分散在因素与水平的完全组合之中,因此具有很强的代表性。
使用正交试验法的原因
对于单因素或两因素试验,因其因素少,试验的设计、实施与分析都比较简单。但在实际工
作中,常常需要同时考察3个或3个以上的试验因素,若进行全面试验,试验的规模很大,
由于时间和成本的限制我们不可能进行全面试验,但是具体挑其中的哪些测试用例进行测试
我们心里拿不准,总担心不做不挑选的那些测试用例会遗漏一些严重缺陷。为了有效的、合
理地减少测试的工时与费用,我们利用正交试验法来设计测试用例。正交试验法就是安排多
因素试验、寻求最优水平组合的一种高效率的试验设计方法。
我们用测试实例来进行说明使用正交试验法设计测试用例的好处。
测试需求:
某所大学通信系共2个班级,刚考完某一门课程,想通过“性别”、“班级”和“成绩”这三个查
询条件对通信系这门课程的成绩分布,男女比例或班级比例进行人员查询:
根据“性别”=“男,女”进行查询
根据“班级”=“1班,2班”查询
根据“成绩”=“及格,不及格”查询
按照传统设计——全部测试
分析上述测试需求,有3个被测元素,被测元素我们称为因素,每个因素有两个取值,
我们称之为水平值,所以全部测试用例个数是2*2*2=8,参见下表
序号
性别
班级
成绩
1
2
3
4
5
6
7
8
女
女
女
女
男
男
男
男
1班
1班
2班
2班
1班
1班
2班
2班
及格
不及格
及格
不及格
及格
不及格
及格
不及格
利用正交表设计测试用例,我们得到的测试用例个数是 n=3*(2-1)+1=4,对于三因素两水平的刚好有
L4(23)的正交表可以套用,于是用正交表试验法得出4个测试用例如下:
序号
性别
班级
成绩
1
2
3
4
女
女
男
男
1班
2班
1班
2班
及格
不及格
不及格
及格
根据实际需要可以在用正交试验法设计用例的基础上补充一些测试用例。
4个测试用例与8个测试用例相比测试用例个数是减少了。因素数和水平数越大越能体现用
正交表的好处。例如:对于一个四因素且每个因素均为三水平的试验,如果按照全面试验需
要进行3*3*3*3=81次。但是如果用正交试验法选择 L9(34)正交表,n=4*(3-1)+1=9次试验就
可以覆盖。从这点可以说明用正交试验法能有效地、合理地减少测试用例和工时,节约测试
成本。
正交表的类别及如何查找正交表
1.1. 正交表的类别
1. 单一水平正交表
各列水平数相同的正交表称为等水平正交表。如 L4(23)、L8(27)、L12(211)等各列中的
水平为2,称为2水平正交表;L9(34)、L27(313)等各列水平为3,称为3水平正交表。表
示为:Ln(mk)。
2. 混合水平正交表
各列水平数不完全相同的正交表称为混合水平正交表。如 L8(4124)表中有一列的水平为4,
有4列水平数为2。也就是说该表可以安排一个4水平因素和4个2水平因素。再如 L16(4423),
L16(41212)等都是混合水平正交表。表示为:Ln(m1k1m2k2)。
2.2. 如何查找正交表
查 Dr. Genichi Taguchi 设计的正交表
http://www.york.ac.uk/depts/maths/tables/orthogonal.htm
Technical Support ( support.sas.com ) com
http://support.sas.com/techsup/technote/ts723_Designs.txt
正交表的一个实例:
L4(23)
2-水平数
3-因素数
n=4-最少试验次数
确定因素数和水平数
因素数:确定测试中有多少个相互独立的考察变量。
水平数:确定任何一个因素在试验中能够取得的最多个值
根据因素数和水平数确定 n 值
对于单一水平正交表 Ln(mk),用 n=k*(m-1)+1公式计算
对于混合水平正交表 Ln(m1
k1m2
k2..mx
kx),用 n=k1*(m1-1)+k2*(m2-1)+…kx*(mx-1)+1公式计算
选择合适的正交表
单一水平正交表:
如果存在试验次数等于 n,并且水平数大于等于 m、因素数大于等于 k 的正交表,我们把这个正交表拿过来
套用。
如果不存在试验次数等于 n 的正交表,我们就得找出满足试验次数大于 n 的正交表并且水平数大于等于 m、
因素数大于等于 k。
混合水平正交表:
如果存在试验次数等于 n,并且水平数大于等于 max(m1,m2,m3,…)、因素数大于等于(k1+k2+k3+…)
的正交表,我们把这个正交表拿过来套用。
如果不存在试验次数等于 n 的正交表,我们就得找出满足试验次数大于 n 的正交表并且水平数大于等于 m
ax(m1,m2,m3,…)、因素数大于等于(k1+k2+k3+…)。
当有2个或2个以上正交表可以被选择时,选取原则是选试验次数最少的那个正交表。
根据正交表把变量的值映射到表中,设计测试用例
把变量的值映射到正交表中,每一行的各因素的取值组合作为一个测试用例。
用正交表设计测试用例的两种情况:
存在试验次数等于 n(n=k*(m-1)+1)的正交表
案例1:假设一个网页有3个不同的部分(Top、Middle、Bottom),并且每个部分都可以单独显示及隐藏。
要测试这三个不同部分的交互。按照前面给出的正交表测试用例设计步骤,用正交试验法设计测试用例。
确定因素数和水平数
确定有3个独立变量且每个变量2个取值:Top(Hidden, Visible), Middle(Hidden,
Visible), Bottom(Hidden, Bottom)
根据因素数和水平数确定 n 值
水平数:m=2
因素数:k=3
Ln(23)
n=k*(m-1)+1=3*(2-1)+1=4
选择合适的正交表
先看看正交表里有没有试验次数=4的正交表,如果有我们再看看因素数和水平数是不
是符合。
选择正交表 L4(23)——变量为三因素,值为二水平,恰好相符。
把变量的值映射到表中,并设计测试用例 Hidden=0,Visible=1
列数
Top
Middle
Bottom
1
2
3
4
Hidden
Hidden
Hidden
Hidden
Visible
Visible
Visible
Hidden
Visible
Visible
Visible
Hidden
把表中每一行转换成测试用例,可以得到4个测试用例如下:
1. 隐藏 Top,Middle,Bottom 这三部分
2.显示除 Top 外的其它部分
3.显示出 Middle 部分外的其它部分
4. 显示除 Bottom 部分外的其它部分
不存在试验次数等于 n(n=k*(m-1)+1)的正交表
案例2:手机照相机的拍摄模式是普通模式,针对对比度(正常,极低,低,高,极高)、色彩效果(无,
黑白,棕褐色,负片,水绿色)、感光度(自动,100,200,300,400,800)、白平衡(自动,白炽光,日
光,荧光,阴光)、照片大小(5M, 3M, 2M, 1M, VGA)、闪光模式(关,开)各个值用正交试验法设计测试
用例。
1.
确定因素数和水平数
因素数:对比度,色彩效果,感光度,白平衡,照片大小,闪光模式
水平数:
对比度:正常、极低、低、高、极高
色彩效果:无、黑白、棕褐色、负片、水绿色
感光度:自动、100、200、400、800
白平衡:自动、白炽光、日光、荧光、阴光
照片大小:5M、3M、2M、1M、VGA
闪光模式:开、关
2. 根据因素数和水平数确定 n 值
m1=5, k1=5
m2=2, k2=1
Ln(5521)
n=k1*(m1-1)+k2* (m2-1)+1=5*(5-1)+1*(2-1)+1=20+1+1=22
3.选择合适的正交表
根据计算得出 n=22,我们先看看有没有试验次数等于22的正交表,实际上不存在
n=22的正交表,这个时候我们就得找 n 大于22并且满足
m>=max(m1=5,m2=2),k>=k1+k2=5+1=6的正交表。查到 L25(56),L49(78)都满足
当有2个或2个以上正交表可以被选择时,选取原则是选试验次数最少的那个正交
表,所以我们选 L25(56)正交表。
1
2
3
4
5
6
1
2
3
4
5
6
1
1
1
1
1
2
1
2
3
4
5
1
1
2
3
4
5
2
1
2
3
4
5
3
1
2
3
4
5
4
1
2
3
4
5
5
7
8
9
10
11
12
13
14
2
2
2
2
3
3
3
2
3
4
5
1
2
3
3
4
5
1
3
4
5
4
5
1
2
5
1
2
5
1
2
3
2
3
4
1
2
3
4
4
5
1
3
正交试验法的优缺点
正交试验法作为设计测试用例的方法之一,也有其优缺点。
优点:根据正交性从全面试验中挑选出部分有代表性的点进行试验,这些有代表性的特点具备了“均匀
分散,整齐可比”的特点。通过使用正交试验法减少了测试用例,合理地减少测试的工时与费用,提高测试
用例的有效性。是一种高效率、快速、经济的实验设计方法。
缺点:对每个状态点同等对待,重点不突出,容易造成在用户不常用的功能或场景中,花费不少时间进行
测试设计与执行,而在重要路径的使用上反而没有重点测试。
虽然正交试验设计有上述不足,但它能通过部分试验找到最优水平组合,因而很受实际工作
者的青睐。
4 因子 3 状态
)1 确定 正 交表的行和列。
每个因素有3个水平,共需安排9次试验
)2 确 定正 交表的内容.
按照水平数3进行分组,即每三个试验为一组。
对每 个 因 素的水平进行编号,分别为1、2、3,并将试验
对于 第 一 列:第一组试验中,全部使用因素1的第1个水平;第二组试验中,全部使用因素1
的第2个水平;第三组试验中,全部使用因素1的第3个水平。
对于 第 二 列:每一组试验中,都分别使用因素2的三个水平1、2、3:
对于 第 三 列:每一项试验中,每一个水平编号的确定方法见公式3.1。
)3 生 成正 交表。
将每 个 因 素的水平编号填入表中可得正交表如表3.2所示.