软件测试中的组合策略
组合策略是一种测试用例的选取方法,该方法是采用将被测件的输入参数根据一些组合方式进行组合来生成测试用例。不同的组合策略,生成不同的测试用例生成技术。
软件测试用例的生成技术有如下两种形式:
- 对测试输入进行建模分析,按照测试目标将测试输入分成不同的子集,同一个子集中的软件行为都是相似的。这种测试用例生成方式叫做分区测试(partition testing),软件测试中常用的等价类划分,边界值分析等都属于该方式。
- 与分区测试相对应的是随机测试(random testing),这种测试忽略先前的测试用例以及规格说明中的信息,依照一些输入分布随机的抽取数据生成测试用例。
对于这两种测试形式的分析,学术界有较长时间的争论,最终Gutjahr1在Hamlet与Taylor研究的基础上从理论上表明了分区测试在现实中比随机测试更有效能。
分区测试中一个关键问题是如何识别分区以及如何从中选择值。在等价类划分和边界值分析等问题中,测试问题的参数是确定的,而后每一个参数被单独分析以确定该参数的适合分区方式。这种特性导致了该方式应用范围在实际中很有限。
Ostrand和Balcer提出了类别分区(Category Partition,CP)方法可以部分的解决该问题。该方法的核心是将所有独立的参数按照一定的相似判据进行组合,生成测试组件,其所构成的组合数量可以用乘法原理表示: