实施组合测试
作者:软件测试工程师 发布时间:[ 2010/7/29 15:41:07 ] 推荐标签:
PICT会保证所有有效值的取值组合都会被覆盖,此外任意非法值与有效值的组合也会被覆盖。以上模型将生成如下测试用例集。
A B C
1 1 -1
1 0 1
10 -1 -1
1 -1 0
10 0 -1
10 -1 1
10 0 0
10 1 0
1 1 1
~0 0 -1
~0 -1 0
~0 1 1
如果很清楚被测试对象的实现逻辑,使用第一种方法可以生成规模较小的测试用例集,因为它几乎不考虑非法值与有效值的组合。如果只是从规格说明中了解到程序可能存在卫哨语句,那么用第二种方法可以生成更“安全”的测试用例集。
4. 考虑采用多因素组合测试
在软件测试过程中,先找到的缺陷往往处于程序的“主干”上,程序执行很容易覆盖相应的语句或状态;被遗漏的缺陷常常位于程序的“末枝”,程序执行需要满足特殊条件才能覆盖相应的语句或状态。这是软件测试的经验之谈,也提示两因素组合测试也许不能发现隐藏在“末枝”中的缺陷。一些路径需要多个因素满足一定取值组合才能被覆盖,然而两因素组合测试不能保证测试用例集可以覆盖这些组合。因此,在测试资源允许的情况下,引入多因素组合覆盖有可能进一步提高错误发现率。
《微软的软件测试之道》建议从两因素组合测试开始,逐渐提高组合维度,直至6因素组合测试,因为有研究表明6因素组合测试可以发现绝大多数的程序缺陷。但是,随着组合维度的提高,测试用例数呈爆炸式增长。除非测试用例是由测试先知(Test Oracle)自动化执行,否则几乎没有团队能够完成6因素组合测试。在测试实践中,3因素组合测试可能是比较实际的选择。
在PICT中,有两种方法引入多因素组合测试。第一种方法是在命令行上使用参数"/o:N"。例如,在命令行上执行"pict.exe model.txt /o:3",可以生成三因素组合测试用例集。另一种更加实用的方法是在模型文件中定义“子模型”(Sub-Models)。在PICT的帮助文件中有如下的模型文件定义。
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在两因素组合覆盖的基础上,对某些因素实施多因素组合覆盖,这有助于实现更灵活的测试策略。

sales@spasvo.com