分享

正交试验法简介

 instl 2010-11-15
2010年3月29日 由 honglei 留言 »

 记得有两次被同学问,有很多个因子,每个因子又有多个值,这样的情况下,我们如何用最少的测试用例来满足最多的覆盖?当时我只是很含糊的说,试试正交试验法吧,但是没有具体的用例编写指导,因为我也没有实践过。

带着这个问题,又去找了些正交试验法的资料来看。

在说正交试验法前,先介绍两个概念:因子和水平。

因子:影响测试的元素,称为因子。

水平:每个元素的取值,称为水平。这里所说的取值,是对元素值进行等价类划分后的不同等价类。

所谓正交试验法,是指使用正交表来安排试验并进行数据分析的一种方法。按照正交表来安排试验,挑选的是有代表性的水平组合,所以试验点分布均匀,试验次数少,能反映全面的情况。

通常用 L行数(水平数因子数) 来表示。L表示正交表,行数表示采用该正交表的试验次数。

正交表的列为因子,行是试验次数,具备两个特点:

1.每列各个数字出现次数一样多。

2.任意两列组成的有序数对出现次数一样多。

正交表类型:

1.标准水平正交表“各个因子的水平相同。

2.混合水平正交表:各个因子的水平不相同

正交试验法,适用范围:

1.因子数大于等于3。

2.水平数大于等于2。

我们如何来正交试验法来设计测试用例呢?

1.分析因子数

2.分析因子的水平数

3.选择合适的正交表

4.根据正交表组合测试用例

5.补充正交表不包含,但又重要的用例

从上面的介绍可以看出采用正交试验法,需要注意的地方主要有两个:

1.因子和水平的确定。因子需要关注相互间的关系,水平则需要进行一个等价类分析。

2.正交表公式的选择。

其中,1又是正交表公式选择的一个基础。

那么我们如何来选择合适的正交表呢?

1.根据因子和水平数,计算出需要试验的次数;

2.从正交表公式中选择,取行数大于计算的次数,且行数最少的一个。

根据因子和水平数的不同,查找正交表公式时,可能碰到的情况:

  1. 因子数、水平数和正交表公式相同

直接采用匹配的正交表。

2.因子数不同

可以采用包含的方法,在正交表公式中找到包含该情况的公式,如果有N个符合条件的公式,那么选取行数最少的公式。

如5因子2水平的用例。正交表有L4(23)、L8(27)、L16(215),可以保证最小行数,可选择L8(27),多余的因子取值,在组成用例时,直接摒弃。

3.各因子水平数不同

可采用组合和包含的方式。

如一因子是4水平,3因子是3水平。可选用L16(45),水平数,取最大水平数,因子数包含总因子数。

下面我们来看个实例,用户登录,包括用户名、密码、校验码,各个元素的取值:

元素 元素取值
用户名 不填、填写错误信息、填写正确信息
密码 不填、填写错误信息、填写正确信息
校验码 不填、填写错误信息、填写正确信息

这是一个3因子3水平的例子,看看几种试验法的用例情况

全面试验法:试验次数为33=27,即取每个因子所有水平的组合。

简单试验法:试验次数为(3-1)*(3-1)+3 = 7。简单试验法的试验次数明显减少,但是缺点是次数数据分布不均匀,覆盖率不高。

正交试验法:试验次数要求不少于 3*(3-1)+1 = 7。

利用现有的正交表公式,可选用L9(34),试验次数为4*(3-1)+1 = 9。

所在列 1 2 3 4
因子 用户名 密码 校验码 D
1 不填 不填 不填 -
2 不填 填写错误信息 填写错误信息 -
3 不填 填写正确信息 填写正确信息 -
4 填写错误信息 不填 填写错误信息 -
5 填写错误信息 填写错误信息 填写正确信息 -
6 填写错误信息 填写正确信息 不填 -
7 填写正确信息 不填 填写正确信息 -
8 填写正确信息 填写错误信息 不填 -
9 填写正确信息 填写正确信息 填写错误信息 -

再补充一个用例:三个元素都填写正确的场景。

如果觉得当前的用例覆盖还是不够,则可以选择行数更多一点的正交表,如L18(37)。

所在列 1 2 3 4 5 6 7
因子 用户名 密码 校验码 D E F G
1 不填 不填 不填 - - - -
2 不填 填写错误 填写错误 - - - -
3 不填 填写正确 填写正确 - - - -
4 填写错误 不填 不填 - - - -
5 填写错误 填写错误 填写错误 - - - -
6 填写错误 填写正确 填写正确 - - - -
7 填写正确 不填 填写错误 - - - -
8 填写正确 填写错误 填写正确 - - - -
9 填写正确 填写正确 不填 - - - -
10 不填 不填 填写正确 - - - -
11 不填 填写错误 不填 - - - -
12 不填 填写正确 填写错误 - - - -
13 填写错误 不填 填写错误 - - - -
14 填写错误 填写错误 填写正确 - - - -
15 填写错误 填写正确 不填 - - - -
16 填写正确 不填 填写正确 - - - -
17 填写正确 填写错误 不填 - - - -
18 填写正确 填写正确 填写错误 - - - -

补充一个用例:三个元素都填写正确的场景。

L18(37)对比L9(34),多了因子间交互关系的用例。一般的测试,权衡用例数量和测试覆盖率,我们是不考虑因子间的交互的,这也正是误差产生的来源。

从上面的试验次数,可以看出,正交试验法的优势是很明显的:用例数可控,节省了时间,用例具备一定的覆盖率。

正交表生成工具

正交表的生成,还是比较复杂的,可以借助现成的小工具,如:正交设计助手。

VN:F [1.9.3_1094]
Rating: 0.0/10 (0 votes cast)
转载务必注明出处Taobao QA Team,原文地址:http://qa.taobao.com/?p=5874

2 条评论

天彤 说:

工具我这里尝试了一个微软的PICT,欢迎感兴趣的同学来我这参观.

生成TC的功能是实现了,要应用在实际工作里,还有一段路要走,不过不太远.


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多