Nowhere Blog

PICT 轻松编写组合测试用例

PICT 介绍

来自官网:

PICT generates test cases and test configurations. With PICT, you can generate tests that are more effective than manually generated tests and in a fraction of the time required by hands-on test case design.

PICT 是一个帮你自动生成测试用例的小工具,只需要你输入规则,它会帮你生成用例。

使用

第一步,准备 model.txt

#
# This is a sample model for testing volume create/delete functions
#

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
```
第二步,在命令行上运行 "pict.exe model.txt > test_cases.txt"。 所生成的文件 test_cases.txt 是两因素组合测试用例集,其内容如下。
```
PLATFORM	CPUS	RAM	HDD	OS	IE
amd64	Single	4GB	SCSI	Win2K	4.0
amd64	Dual	128MB	IDE	Win2K3	6.0
x86	Quad	64GB	SCSI	Win2K3	5.0
...

定义约束关系

在 model.txt 文件底部加入以下脚本:

IF [PLATFORM] = "x86" THEN [RAM] <> "64GB";
IF [OS] = "Win2K3" THEN [IE] >= 6.0;

第一条约束是,当CPU是x86时,内存不能是64GB。第二条约束是,当操作系统是Windows 2003时,IE的版本号要大于6.0。当PICT读取模型文件时,它会解析约束规则,并将其应用于测试用例生成过程。生成的测试用例集既满足对有效取值组合的覆盖,又不包含无效取值组合。

多因素组合测试

「微软的软件测试之道」建议从两因素组合测试开始,逐渐提高组合维度,直至6因素组合测试,因为有研究表明6因素组合测试可以发现绝大多数的程序缺陷。 在测试实践中,3因素组合测试可能是比较实际的选择。

PLATFORM:  x86, ia64, amd64
CPUS:      Single, Dual, Quad
RAM:       128MB, 1GB, 4GB, 64GB
HDD:       SCSI, IDE
OS:        NT4, Win2K, WinXP, Win2K3
IE:        4.0, 5.0, 5.5, 6.0
APP:       SQLServer, Exchange, Office

{ PLATFORM, CPUS, RAM, HDD } @ 3
{ OS, IE } @ 2

根据该模型文件,PICT将对PLATFORM, CPUS, RAM, HDD实施3因素组合覆盖,具体的生成策略可参加下图。PICT在两因素组合覆盖的基础上,对某些因素实施多因素组合覆盖,这有助于实现更灵活的测试策略。

更多命令行操作

【选项】

/o:N   组合数,默认值为2

默认生成二元组的测试用例,即pict生成的测试用例集中最多有两个值与其他测试集是相同的;改为3,则覆盖率会增大,但同时也会生成更多的测试用例;但缺陷大部分发生在参数两两组合的情况下,三个参数组合导致的缺陷并不多见。

/d:C   值与值之间的分隔符,默认为逗号(,

例如一个参数操作系统  winxp,win7,win8 之间会用逗号隔开;

/a:C   别名间的分隔符,默认是管道符(|

例如一个参数(用户名不区分大小写,但为了保证测试的可信度,可以用大小写轮换的方式进行测试)用户名  admin|ADMIN

/n:C   无效数值或者是非法数值的前缀,默认值为(~

例如一个参数(只能取12,为了测试非法值的输入,取0,但又不希望0和其他参数的每隔值都配一次对,为了减少测试集的数量,在0前面加一个~)即参数  ~0,1,2

/e:file  定义种子文件,作用是可以指定组合方式

例如在种子文件seed.txt中指定一个组合方式,在执行1.txt时,命令:pict 1.txt /e:seed.txt  生成的测试集中会包含seed中指定的组合集(当然指定的组合集有一定条件)。(此参数目前的理解可能会有误区);

/r[:N]   随机生成,N -种子

通过/r参数,可以使每次生成的测试集不同;

/c        参数的值完全区分大小写

/s        显示模型统计数据

PICT 官网