2023年7月16日发(作者:)
软件测试中的组合策略软件测试中的组合策略组合策略是⼀种测试⽤例的选取⽅法,该⽅法是采⽤将被测件的输⼊参数根据⼀些组合⽅式进⾏组合来⽣成测试⽤例。不同的组合策略,⽣成不同的测试⽤例⽣成技术。
软件测试⽤例的⽣成技术有如下两种形式:1. 对测试输⼊进⾏建模分析,按照测试⽬标将测试输⼊分成不同的⼦集,同⼀个⼦集中的软件⾏为都是相似的。这种测试⽤例⽣成⽅式叫做分区测试(partition testing),软件测试中常⽤的等价类划分,边界值分析等都属于该⽅式。2. 与分区测试相对应的是随机测试(random testing),这种测试忽略先前的测试⽤例以及规格说明中的信息,依照⼀些输⼊分布随机的抽取数据⽣成测试⽤例。对于这两种测试形式的分析,学术界有较长时间的争论,最终Gutjahr在Hamlet与Taylor研究的基础上从理论上表明了分区测试在现实中⽐随机测试更有效能。分区测试中⼀个关键问题是如何识别分区以及如何从中选择值。在等价类划分和边界值分析等问题中,测试问题的参数是确定的,⽽后每⼀个参数被单独分析以确定该参数的适合分区⽅式。这种特性导致了该⽅式应⽤范围在实际中很有限。Ostrand和Balcer提出了类别分区(Category Partition,CP)⽅法可以部分的解决该问题。该⽅法的核⼼是将所有独⽴的参数按照⼀定的相似判据进⾏组合,⽣成测试组件,其所构成的组合数量可以⽤乘法原理表⽰:其中N为参数的个数, 为每⼀个参数的值的个数。
其算法步骤如下:1. Identify funcitonal units that may be tested separately For each funcional unit, identify parameters and environment variables that affect the behavior of the functional unit.2. Indentify choices for each parameter and environment individually.3. Determine constraints among the choices.4. Generate all combinations, so called test frames, of parameters choices that satisfy the constraints.5. Transform the test frames into test cases by instantiating the choices.从公式(1)可以看出,如果遍历所有组合,则稍微复杂⼀点的程序的测试⽤例数量将远远超出测试的资源。为了减少类别分区的测试⽤例,业内主要采⽤不同的组合策略来减少⽤例的数量。
下图是组合策略的分类:
组合策略可以分成确定性的和不确定性的两⼤类。⾮确定的可以分成启发式的(Heuristic)与基于⼈⼯⽣命的(AL-based)。启发式的有模拟退⽕(SA)和⾃动⾼效测试⽣成器(AETG),基于⼈⼯⽣命的分成遗传算法(GA)和蚁群算法(ACA);此外还有最简单的完全随机(Rand)。
确定性的策略⽣成的结果是确定的。他可以分成即时与迭代两种,即时策略主要有正交阵列(OA)与覆盖阵列(CA)直接⽣成完整的测试套件。迭代组合策略逐步构建测试套件。主要有基于参数的组合策略(IPO),基于⽤例的组合策略:每⼀个选择(Each Choice,简称EC),部分成对(PPW),基本选择(BC),所有组合(AC),反随机(AR),CATS, K-perim, k-bound.1. r. Partition Testing vs. Random Testing: The Influence of Uncertainty.
发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1689457416a251422.html
评论列表(0条)