组合覆盖与PICT的使用

时间:2023-03-08 21:13:48

组合覆盖法是一种有效减少测试用例个数的测试用例设计方法。根据覆盖程度的不同,可以分为单因素覆盖、成对组合覆盖、三三组合覆盖等。其中又以成对组合覆盖最常用。

关于组合覆盖的更多内容,参考:http://www.pairwise.org/

成对组合覆盖要求任意两个因素(输入条件)的所有水平组合至少要被覆盖1次。组合覆盖的算法已经被很多工具实现,测试人员可以直接利用这些工具,例如,TConfig、微软的PICT等。下面简单介绍一下使用PICT(Pairwise Independent Combinatorial Testing tool)设计测试用例的过程。

下载:http://www.pairwise.org/tools.asp (除了PICT,还有很多类似的小工具,均可以从此处找到)

下载后双击安装。

PICT接收一个纯文本的Model文件作为输入,然后输出测试用例集合。Model文件的格式如下:

<ParamName> : <Value1>, <Value2>, <Value3>, ...
 用冒号隔开输入条件和参数,每行一个输入条件,参数之间用逗号隔开。
下面是设计一个测试磁盘分区创建功能的Model文件的例子。输入条件有分区类型、大小、格式化方式、文件系统类型、簇大小、是否压缩。各项输入条件分别有不同的参数选择:
Type:          Primary, Logical, Single, Span, Stripe, Mirror, RAID-
Size: , , , , , ,
Format method: quick, slow
File system: FAT, FAT32, NTFS
Cluster size: , , , , , , ,
Compression: on, off

把上面的内容存为Model.txt文件。存储在某个目录,例如D盘根目录。然后在命令行中输入以下命令:

C:\Users\Administrator>PICT "D:\Model.txt"

则可产生下面的测试用例:

Type    Size    Format Method   File system     Cluster size    Compression
Mirror quick FAT off
RAID- slow FAT32 on
Stripe quick NTFS off
Span slow NTFS on
Primary quick FAT32 off
Single slow FAT off
Primary slow FAT on
RAID- quick NTFS on
Logical slow NTFS on
Span quick FAT off
Mirror slow FAT32 on
Logical quick FAT32 off
Logical slow FAT off
Single quick NTFS on
Stripe slow FAT32 on
Mirror quick NTFS off
Span slow FAT32 off
Single quick FAT32 off
RAID- quick FAT off
Stripe slow FAT32 on
Primary quick NTFS off
Span slow FAT on
Primary slow FAT32 on
Single quick FAT32 off
RAID- slow FAT on
Single slow NTFS off
Mirror quick FAT on
Stripe quick FAT on
Primary quick FAT32 off
Single quick NTFS on
Logical slow NTFS off
Stripe slow FAT off
Primary slow NTFS off
Mirror quick FAT on
Stripe quick FAT off
Mirror slow FAT32 on
Span quick NTFS off
Logical slow NTFS off
Span quick FAT on
Logical slow FAT32 on
RAID- quick NTFS on
Stripe slow NTFS off
Mirror slow NTFS off
Span quick FAT off
Span slow NTFS on
Stripe quick FAT32 off
Primary quick FAT off
RAID- slow NTFS on
Primary quick NTFS on
RAID- quick FAT32 on
Primary quick FAT off
Mirror slow FAT32 on
Single slow NTFS off
Logical quick FAT32 off
Single slow NTFS on
Mirror quick FAT32 off
Span slow FAT on
RAID- slow FAT off
Logical quick FAT off
Single slow FAT32 on

如果想把产生的测试用例存储到某个文件,则可输入以下命令:

C:\Users\Administrator>PICT "D:\Model.txt" > "D:\OutPut.txt" #生成文本文档
C:\Users\Administrator>PICT "D:\Model.txt" > "D:\OutPut.xls" #生成表格

上面产生的测试用例一共有60条,而如果完全覆盖,则需要执行7*7*2*3*8*2=4704项测试,这说明成对组合覆盖法可以有效减少测试次数。实验证明,成对组合覆盖法的测试覆盖率高达90%以上。

当然,仔细检查产生的测试用例之后,我们可能会发现,有些组合是不合理的,需要我们自己修改一下,而且有些常用的组合可能没出现在这个表里,还需要我们自己添加。总的来说,任何工具都有一定的局限性,结果可以为作为参考,实际还是离不开人力。

更多关于PICT的使用方法请参考PICT的帮助文档。

PS:实际上,我没弄清楚成对组合覆盖和正交表具体有什么样的区别,总感觉差不多,如果有小伙伴清楚的话,欢迎留言解惑,不胜感激!