成对组合覆盖这一概念是Mandl于1985年在测试Aad编译程序时提出来的。Cohen等人应用成对组合覆盖测试技术对Unix中的“Sort”命令进行了测试。测试结果表明覆盖率高达90%以上。可见成对组合覆盖是一种非常有效的测试用例设计方法。
成对组合覆盖要求任意两个因素(输入条件)的所有水平组合至少要被覆盖1次。组合覆盖的算法已经被很多工具实现,测试人员可以直接利用这些工具,例如:TConfig、微软的PICT等。下面介绍一下使用PICT设计测试用例的过程。
PICT,全称是Pairwise Independent Combinatorial Testing tool,是一个免费的小工具,读者可以到微软的网站下载并安装。PICT接收一个纯文本的Model文件作为输入,然后输出测试用例集合。Model文件的格式如下:
<ParamName> : <Value1>, <Value2>, <Value3>, ...
用冒号隔开输入条件和参数,每行一个输入条件,参数之间用逗号隔开。下面是设计一个测试磁盘分区创建功能的Model文件的例子。输入条件有分区类型、大小、格式化方式、文件系统类型、簇大小、是否压缩。各项输入条件分别有不同的参数选择。
Type: Primary, Logical, Single, Span, Stripe, Mirror, RAID-5
Size: 10, 100, 500, 1000, 5000, 10000, 40000
Format method: quick, slow
File system: FAT, FAT32, NTFS
Cluster size: 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536
Compression: on, off
把上面的内容存为Model.txt文件。存储在某个目录,例如C:\Program Files\PICT\,然后在命令行中输入以下命令:
C:\Program Files\PICT>PICT "C:\Program Files\PICT\Model.txt"
则可产生下面的测试用例:
TypeSize Format method File system Cluster size Compression
Mirror 10 quick FAT 32768 off
RAID-5 10 slowFAT32 512 on
Stripe 500 quick NTFS 512 off
Span 1000 slowNTFS 1024 on
Primary 100 quick FAT32 16384 off
Single 1000 slowFAT 8192 off
Primary 5000 slowFAT 2048 on
RAID-5 40000 quick NTFS 8192 on
Logical 10 slowNTFS 65536 on
Span 100 quick FAT 65536 off
Mirror 10000 slowFAT32 65536 on
Logical 1000 quick FAT32 512 off
Logical 40000 slowFAT 4096 off
Single 1000 quick NTFS 4096 on
Stripe 500 slowFAT32 32768 on
Mirror 100 quick NTFS 2048 off
Span 10 slowFAT32 4096 off
Single 40000 quick FAT32 65536 off
RAID-5 5000 quick FAT 65536 off
Stripe 1000 slowFAT32 2048 on
Primary 10000 quick NTFS 8192 off
Span 10000 slowFAT 16384 on
Primary 1000 slowFAT32 65536 on
Single 5000 quick FAT32 1024 off
RAID-5 100 slowFAT 1024 on
Single 500 slowNTFS 2048 off
Mirror 500 quick FAT 1024 on
Stripe 100 quick FAT 4096 on
Primary 40000 quick FAT32 1024 off
Single 10 quick NTFS 16384 on
Logical 5000 slowNTFS 32768 off
Stripe 10 slowFAT 1024 off
Primary 500 slowNTFS 4096 off
Mirror 1000 quick FAT 16384 on
Stripe 40000 quick FAT 16384 off
Mirror 10 slowFAT32 8192 on
Span 40000 quick NTFS 32768 off
Logical 10000 slowNTFS 1024 off
Span 5000 quick FAT 512 on
Logical 100 slowFAT32 8192 on
RAID-5 500 quick NTFS 16384 on
Stripe 5000 slowNTFS 8192 off
Mirror 5000 slowNTFS 4096 off
Span 500 quick FAT 65536 off
Span 10000 slowNTFS 2048 on
Stripe 10000 quick FAT32 65536 off
Primary 10 quick FAT 2048 off
RAID-5 10000 slowNTFS 4096 on
Primary 10000 quick NTFS 32768 on
RAID-5 1000 quick FAT32 32768 on
Primary 10000 quick FAT 512 off
Mirror 40000 slowFAT32 512 on
Single 100 slowNTFS 512 off
Logical 500 quick FAT32 16384 off
Single 100 slowNTFS 32768 on
Mirror 5000 quick FAT32 16384 off
Span 500 slowFAT 8192 on
RAID-5 40000 slowFAT 2048 off
Logical 10 quick FAT 2048 off
Single 10000 slowFAT32 65536 on
技巧:如果想把产生的测试用例存储到某个文件,则可输入以下命令:
C:\Program Files\PICT>PICT "C:\Program Files\PICT\Model.txt" > "C:\Program Files\PICT\OutPut.txt"
这样,处理Model.txt文件中的输入所产生的测试用例就会存储到“C:\Program Files\PICT\”目录下一个名为OutPut.txt文件。