一、应用场合
有很多的控件,而且每个控件有多个取值的情况下,要考虑不同控件不同取值的组合
——如何使用最少、最优化的数据组合达到最大的测试覆盖。
二、和因果图法的区别:
因果图:适用于控件组合较少的(20种以下),要比较全面的考虑所有情况(或主要情况)。
正交排列法:适用于控件组合数量庞大,而从代码角度讲有没必要全部测试。
正交表
一种特制表,一般正交表记为:
- n:表示的是行数,也就是测试组合的次数
- t: 表示要测控件内包含的取值个数(各因素的水平数,即各因素的状态数)
- q:表示列数,即控件的个数(因素的个数,或因子的个数)
正交表例如L9(34),表1-1, 它表示需作9次实验,最多可观察4个因素,每个因素均为3水平。一个正交表中也可以各列的水平数不相等,我们称它为混合型正交表,如L8(41×24),表2-1 ,此表的5列中,有1列为4水平,4列为2水平。根据正交表的数据结构看出,正交表是一个n行c列的表,其中第j列由数码1,2,… Sj 组成,这些数码均各出现n/Sj 次,例如表1-1中,第二列的数码个数为3,S=3 ,即由1、2、3组成,各数码均出现3次。
表1-1
列号 |
1 |
2 |
3 |
4 |
试验号 |
||||
1 |
1 |
1 |
1 |
1 |
2 |
1 |
2 |
2 |
2 |
3 |
1 |
3 |
3 |
3 |
4 |
2 |
1 |
2 |
3 |
5 |
2 |
2 |
3 |
1 |
6 |
2 |
3 |
1 |
2 |
7 |
3 |
1 |
3 |
2 |
8 |
3 |
2 |
1 |
3 |
9 |
3 |
3 |
2 |
1 |
表2-1
列号 |
1 |
2 |
3 |
4 |
5 |
实验号 |
|||||
1 |
1 |
1 |
1 |
1 |
1 |
2 |
1 |
2 |
2 |
2 |
2 |
3 |
2 |
1 |
1 |
2 |
2 |
4 |
2 |
2 |
2 |
1 |
1 |
5 |
3 |
1 |
2 |
1 |
2 |
6 |
3 |
2 |
1 |
2 |
1 |
7 |
4 |
1 |
2 |
2 |
1 |
8 |
4 |
2 |
1 |
1 |
2 |
正交表具有以下两项性质:
⑴每一列中,不同的数字出现的次数相等。例如在两水平正交表中,任何一列都有数码“1”与“2”,
且任何一列中它们出现的次数是相等的;如在三水平正交表中,任何一列都有“1”、“2”、“3”,且在任一列的出现数均相等。
⑵任意两列中数字的排列方式齐全而且均衡。例如在两水平正交表中,任何两列(同一横行内)有序对子共有4种:
(1,1)、(1,2)、(2,1)、(2,2)。每种对数出现次数相等。在三水平情况下,任何两列(同一横行内)有序对共有9种,
1.1、1.2、1.3、2.1、2.2、2.3、3.1、3.2、3.3,且每对出现数也均相等。
以上两点充分的体现了正交表的两大优越性,即“均匀分散性,整齐可比”。通俗的说,每个因素的每个水平与另一个因素各水平各碰一次,这就是正交性。
三、如何使用
1、分析需求——列出所有的控件和取值。——列出表格
2、根据控件的个数和控件的取值,选择一个合适的正交表:
(1)根据控件的个数,决定正交表的“次幂”(正交表的列数)例:4个控件——4次幂(4列)
(2)根据每个控件的取值个数,决定正交表的“底”(正交表中允许出现的最大值)例:每个控件有 3 个取值——底为3
3、把正交表中的列名和取值(1、2、3…)用控件名称和控件的真正取值替代
(1)把列名用控件名称替代
(2)把每列中的取值(1、2…)使用对应的控件真正的取值替代
4、根据正交表编写用例
把正交表的每一行转换成一条用例
说明:
这些组合是经过数学推理出来的最少、最优化的用例
如果时间允许,最好再补充一些用例
正交表的局限性:(不一样的取值叫做混合正交表)
正交表个数有限,并基本要求控件取值个数相等
四、正交表的测试思想
1、公平原则:使每个控件的每个取值参与组合的次数尽量相同
2、均匀原则:在所有的组合中挑选数据时,应该均匀零星的选取,而不要只从某个局部选
五、案例
每个控件的取值不相同
1、控件的个数决定次幂,如果没有,找一个最接近的(一般选大一点的) 4个控件——4次幂
2、如何选“底”
方案1:少数服从多数原则——有更多的控件取值相同的有 2 个控件取值为 3 ——选底为“3”
方案2:取值个数最多原则——看哪个控件取值最多,最多有 4 个 值——底为“4”
原文地址:https://www.cnblogs.com/eric88/p/10848163.html