一、应用场合

  有很多的控件,而且每个控件有多个取值的情况下,要考虑不同控件不同取值的组合

  ——如何使用最少、最优化的数据组合达到最大的测试覆盖。

二、和因果图法的区别:

  因果图:适用于控件组合较少的(20种以下),要比较全面的考虑所有情况(或主要情况)。

  正交排列法:适用于控件组合数量庞大,而从代码角度讲有没必要全部测试。

正交表

一种特制表,一般正交表记为:

正交测试用例生成 python 测试用例正交法举例_控件

  • n:表示的是行数,也就是测试组合的次数
  • t: 表示要测控件内包含的取值个数(各因素的水平数,即各因素的状态数)
  • q:表示列数,即控件的个数(因素的个数,或因子的个数)

 



4),表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”