组合测试方法PK正交分析方法

来源:互联网 发布:局域网文件加密软件 编辑:程序博客网 时间:2024/05/19 05:06

测试过程中,我们经常遇到需要覆盖多个变化参数的测试场景,如我们测试BS配置控制客户端组织资源远程配置一个设备时,进行一个设备通道视频参数设置的各种组合测试,如下图:

多数情况下,类似于这种多组合测试时,老员工则是依靠经验去进行有针对性的测试,而我们新员工会随机的乱点一通看能否正常保存成功,看看相应的视频文件是否符合设置,幸运的话,能发现几个bug。这种方式不但不科学,而且测试覆盖面也很窄,这里可以使用常见的两种方法进行测试用例的分析和设计:组合分析方法和正交实验设计方法。(均以上图为例)

1.用组合分析方法进行测试用例设计:

关于组合分析方法,依据的是多因素组合测试可以生成测试用例集,以覆盖任意N个因素的所有取值组合,在理论上可以发现由N个因素共同作用引发的缺陷。简单的理解就是每一个参数的每一个值只需要和其他参数至少配对一次就够了。

上面的因子及各因子状态如下:

码流类别:主码流,子码流,事件参数

码流类型:复合流,视频流

分辨率:DCIFCIFQCIF2CIF4CIF,保留,VGAUXGA, HD720P

        #这个设置要根据前段设备的型号,有的设备不支持较大的分辨率

图像质量:最好,较好,次好,一般,较差,差

码率类型:定码率,变码率

视频码率:32Kbps320Kbps2048Kbps   #对于这个设置可以随机选择几个进行测试

视频帧率:全帧率,1/161/411020   #对于这个设置可以随机选择几个进行测试

帧类型:单P帧,BBP帧,BP

I帧间隔:0200,400                #由于I帧间隔的范围0—400,我们随机选择三个

按照传统思路,这些参数的排列组合有:3*2*9*6*2*3*6*3*3=104976,也就是说我们要进行104976次测试的执行,这个在现实测试中是不可能实现的。我们用组合分析方法可以裁剪测试用例的数量,达到我们可接受的范围。

这里要用到一个工具:PICT。具体操作步骤如下:

1. 先安装好PICT

2. 建一个模型文件,文件是.txt格式,如:modelfiles.txt。针对上图文件内容如下:

注意:文本文件中的“,”“:”都是英文字符

3. DOS窗口进入到PICT安装目录下,运行:Pict modelfiles.txt

注:若将测试因子的优化组合保存到安装目录下,且以*.txt格式显示,可输入命令C:\Program Files\PICT>pict modelfiles.txt > output.txt;也可以*.xls格式显示,可输入命令C:\Program Files\PICT>pict modelfiles.txt > output.xls

测试因子的优化组合如下:(由于.xls格式中输入1/16显示116日,也即1/16不能在.xls中显示,这里以1\16代替1/16,其他类似)

通过导出的.xls,我们知道,只需要执行60次测试用例即可达到104976次同样的效果。在测试中,我们可以在模型文件中加入一些条件语句限制一些特殊的情况,比如当视屏码率选择自定义时,自定义码率输入框不能为空等。对于有经验的人员可以在上面组合的基础上适当的加入一些容易出现问题的测试用例,增加测试的覆盖面。最近读《微软的软件测试之道》,里面也有关于组合测试的介绍,书中建议组合分析从两因素组合测试开始,逐渐提高组合维度,直至6因素组合测试,因为有研究表明6因素组合测试可以发现绝大多数的程序缺陷。关于这段话的描述现在还不是太明白,还有待继续深入学习。

2.用正交分析方法设计测试用例

所谓正交试验法,就是从大量的试验点中挑选出适量的,有代表性的点,合理的安排试验。

如果我们直接在上例中运用正交试验法,可能仍然达不到我们可以接受的范围,即测试用例还是很多。这时我们可以计算各因子和状态的权值,删去一部分权值较小,即重要性较小的因子或者状态,使最后生成的测试用例集缩减到我们可以接受的范围。

 针对上例中,我们做如下修改(这里只是指出怎么应用正交试验法,所选修改以简便为主,实际中可根据需要删减):

码流类别:主码流=0,子码流=1

码流类型:复合流=0,视频流=1

分辨率:DCIF=0,CIF=1,QCIF=2,4CIF=3,保留=4       

图像质量:最好=0,较好=1,次好=2,一般=3,=4

视频帧率:全帧率=0,1/16=1,1/4=2,1=3,10=4,20=5  

帧类型:P=0,BBP=1,BP=2          

根据上面分析情况,我们在常用正交矩阵表中,选择在保证因素数、水平数最接近但略大于实际值的基础上,选择行数最小的矩阵表。我们选择5^6的矩阵表:如下

      

  

1

2

3

4

1

0

0

0

0

0

0

2

0

1

2

3

4

1

3

0

2

4

1

3

2

4

0

3

1

4

2

3

5

0

4

3

2

1

4

6

1

0

4

3

2

4

7

1

1

1

1

1

0

8

1

2

3

4

0

1

9

1

3

0

2

4

2

10

1

4

2

0

3

3

11

2

0

3

1

4

3

12

2

1

0

4

3

4

13

2

2

2

2

2

0

14

2

3

4

0

1

1

15

2

4

1

3

0

2

16

3

0

2

4

1

2

17

3

1

4

2

0

3

18

3

2

1

0

4

4

19

3

3

3

3

3

0

20

3

4

0

1

2

1

21

4

0

1

2

3

1

22

4

1

3

0

2

2

23

4

2

0

3

1

3

24

4

3

2

1

0

4

25

4

4

4

4

4

0

对于有些因子实际上所含的状态数小于5个,可以用确定的状态数去间隔性的填充范围外的状态。最后把因子实际的状态按照上面的规则填到正交试验表中,即可得到可接受的测试用例。

这里对这两种方法做个比较小结:

1. 正交分析方法是对任意多个因素取值组合实施“等概率”覆盖,以便我们得到的实验样本均匀的分布在样本空间。“等概率覆盖有助于在正交试验中确定各个因素对实验结果的贡献,但是对于组合测试提高错误检测能力并没有帮助。组合分析是随机生成的,它的原则是覆盖即可,不会去考虑“等概率”覆盖的问题。

2. 通过上面的例子我们知道使用正交表构造测试用例,要寻找正确的正交表、对其进行剪裁、替换参数,方能获得测试用例集。但是对其裁剪,会降低测试的覆盖率;不裁剪,生成的测试用例数超出了我们可以接受的范围。而组合分析运用PICT可以很方便的获取一组测试数据,在回归测试中,可以很方便的运用另一组组合分析数据,提高测试覆盖率。

运用正交试验分析需要对要测试的因子及因子状态有清楚的了解,并对其加权,哪些权值较重,哪些较轻,很适合测试小生用, 可以加深对测试对象的理解,对业务流程的熟悉。组合分析利于快速的生成测试用例,不需要对测试对象有深刻的了解。具体运用哪种方法,要看具体测试对象,也要看测试人员自己的喜好。

写于2011/10/29

原创粉丝点击