正交实验设计法
介绍
正交试验法是研究多因素、多水平的一种试验法,它是利用正交表来对试验进行设计,通过少数的试验替代全面试验,根据正交表的正交性从全面试验中挑选适量的、有代表性的点进行试验,这些有代表性的点具备了“均匀分散,整齐可比”的特点。
本规范只讨论各因素是相互独立的正交试验法,各因素相互影响的正交试验法在我们设计测试用例的时候用不到,所以不提。
正交表是一种特制的表格,一般用$L_n(m^k)$表示,L 代表是正交表,n 代表试验次数或正交表的行数,k 代表最多可安排影响指标因素的个数或正交表的列数,
m 表示每个因素水平数,且有 n = k*(m-1) + 1.
为什么要使用正交试验法
对于单因素或两因素试验,因其因素少,试验的设计、实施与分析都比较简单。
但在实际工作中,常常需要同时考察3个或3个以上的试验因素,若进行全面试验,试验的规模很大,由于时间和成本的限制我们不可能进行全面试验,但是具体挑其中的哪些测试用例进行测试我们心里拿不准,总担心不做不挑选的那些测试用例会遗漏一些严重缺陷。
为了有效的、合理地减少测试的工时与费用,我们利用正交试验法来设计测试用例。
正交试验法就是安排多因素试验、寻求最优水平组合的一种高效率的试验设计方法。
案例1
某所大学通信系共2个班级,刚考完某一门课程,想通过“性别”、“班级”和“成绩”这三个查询条件对通信系这门课程的成绩分布,男女比例或班级比例进行人员查询:
根据“性别”=“男,女”进行查询
根据“班级”=“1班,2班”查询
根据“成绩”=“及格,不及格”查询
按照传统设计——全部测试
分析上述测试需求,有3个被测元素,被测元素我们称为因素,每个因素有两个取值,我们称之为水平值,所以全部测试用例个数是 $222=8$,参见下表
序号 | 性别 | 班级 | 成绩 |
---|---|---|---|
1 | 女 | 1班 | 及格 |
2 | 女 | 1班 | 不及格 |
3 | 女 | 2班 | 及格 |
4 | 女 | 2班 | 不及格 |
5 | 男 | 1班 | 及格 |
6 | 男 | 1班 | 不及格 |
7 | 男 | 2班 | 及格 |
8 | 男 | 2班 | 不及格 |
利用正交表设计测试用例,我们得到的测试用例个数是 $n= 3 * (2-1)+1=4$,对于三因素两水平的刚好有 $L_4(2^3)$的正交表可以套用,于是用正交表试验法得出4个测试用例如下:
序号 | 性别 | 班级 | 成绩 |
---|---|---|---|
1 | 女 | 1班 | 及格 |
2 | 女 | 2班 | 不及格 |
3 | 男 | 1班 | 不及格 |
4 | 男 | 2班 | 及格 |
根据实际需要可以在用正交试验法设计用例的基础上补充一些测试用例。
4个测试用例与8个测试用例相比测试用例个数是减少了。
因素数和水平数越大越能体现用正交表的好处。
例如:对于一个四因素且每个因素均为三水平的试验,如果按照全面试验需要进行$333*3 = 81$ 次。
但是如果用正交试验法选择 $L_9(3^4)$正交表,$n=4*(3-1)+1=9$次试验就可以覆盖。从这点可以说明用正交试验法能有效地、合理地减少测试用例和工时,节约测试成本。
优点:根据正交性从全面试验中挑选出部分有代表性的点进行试验,这些有代表性的特点具备了“均匀分散,整齐可比”的特点。通过使用正交试验法减少了测试用例,合理地减少测试的工时与费用,提高测试用例的有效性。是一种高效率、快速、经济的实验设计方法。
缺点:对每个状态点同等对待,重点不突出,容易造成在用户不常用的功能或场景中,花费不少时间进行测试设计与执行,而在重要路径的使用上反而没有重点测试。