当前位置: 代码迷 >> 综合 >> OATS PK Pairwise Testing
  详细解决方案

OATS PK Pairwise Testing

热度:21   发布时间:2023-12-16 21:46:50.0

对于多输入参数组合类的测试方法目前业界流行两种方法,一种是OATSOrthogonal Array Testing Strategy),即正交表法;另一种是Pairwise/All-Pairs Testing,即配对测试法。对于两种方法,虽然业内已经存在比较成熟的设计工具,但是秉着知其然,知其所以然的目标,还是先熟悉一下两者的原理,然后再进行区分和比较,从而在实际运用中将其灵活运用。

 

第一部分:正交表,OATSOrthogonal Array Testing Strategy

关于正交表一直困扰我的有以下几个问题:

1.          正交表可以自己设计吗?

2.          对于全组合(笛卡尔积)而言,正交表的结果是怎么筛选出来的?

3.          在不查询正交表的前提下,怎样才能快速确定组合测试数呢?

4.          对于一个多因子、多水平的组合,且没有现成的正交表可以对应,怎样采用变通的方式套用现成的正交表呢?

5.          如果觉得正交表的设计的测试组合不够充分,怎样确定需要新增的用例中的水平组合呢?

 

问题1:正交表可以自己设计吗?

解答:正交表的构造需要用到组合数学和概率学知识,而且如果正交表类型不同,则构造方法差异很大,甚至有些正交表其构造方法到目前还未解决。虽然简单的正交表可以自行推导出来,但是还是建议采用现成的生成工具或参照先已公开的正交表模板进行设计以提高效率。

 

问题2:对于全组合(笛卡尔积)而言,正交表的结果是怎么筛选出来的?

解答:回答这个问题之前,必须了解正交表两个重要特性:

1.        每列中不同数字出现的次数相等。这一特点表明每个因素的每个水平与其它因素的每个水平参与试验的几率是完全相同的,从而保证了在各个水平中最大限度地排除了其它因素水平的干扰,能有效地比较试验结果并找出最优的试验条件。

2.        在任意两列其横向组成的数字对中,每种数字对出现的次数相等。这个特点保证了试验点均匀地分散在因素与水平的完全组合之中,因此具有很强的代表性.

以上两点充分的体现了正交表的两大优越性,即“均匀分散,整齐可比”。特性中有任意一条不满足,就不是正交表。

有一个简单的例子可以形象的说明上述两大特性。现在有一个组合有三因子,每个因子是三水平,权且用如下方式进行表示A(A1,A2,A3)B(B1,B2,B3)C(C1,C2,C3),在左图的正方体中每个因子的每个水平代表的是一个面,共九个面,任意两个因子的水平之间都存在交点,共273x3x3)个,这就是笛卡尔积。按照两大特性设计出的正交表如右图所示,试验点用⊙表示。我们看到,在9个平面中每个平面上都恰好有三个点而每个平面的每行每列都有一个点,而且只有一个点,总共九个点。这样的试验方案,试验点的分布很均匀,试验次数也不多。

 

  

 

 

 

        问题3:在不查询正交表的前提下,怎样才能快速确定组合测试数呢?

解答:回答这个问题需要引入正交表中的一个重要概念,强度Strength,以下简称S。正交表的核心性质就是最后S个因素的每个水平值要相互组合一次且只组合一次。设有5因子,每个因子的水平数分别2,2,2,3,3时,不同强度S的生成正交表分别为:

s=2时,结果是 L9(23×32)记录数为最后两个变量的水平数乘积3x3=9

s=3时,结果是 L18(23×32)记录数为最后三个变量的水平数乘积2x3x3=18

快速判断组合测试数的经验法则:对每个因子的水平数进行从小到大的排列,那么强度为n的正交表组合测试数等于最后的n个水平数的乘积。

说明:在普通使用中的正交表都是强度为2的,原因是根据错误模型发现,绝大多数缺陷都来自于结对的参数组合。由三个或者多个参与的组合而导致的缺陷的情况不占多数。

 

问题4:对于一个多因子、多水平的组合,且没有现成的正交表模板可以参照,怎样采用变通的方式套用现成的正交表呢?

解答:先给出一个确定正交表模板的准则:必须选择因子数等于大于组合的因子数,且测试组合数尽可能逼近“快速判断组合测试数的经验法则”中给出的组合数值的正交表模板。

 

情况一:4因子,不同水平数,A12),B12),C123),D1234

解决方案:

步骤1:采用4因子3水平的正交表比较合适,先将D因子中的34水平可先合并成一个水平3

 

因子A

因子B

因子C

因子D

实验1

1

1

1

1

实验2

  相关解决方案