论文部分内容阅读
组合测试旨在解决待测软件系统中因庞大组合空间引起的测试用例规模爆炸问题。通过系统有效的方法能够减少测试用例的数量,然而测试时依然无法提供充足的资源用于执行测试用例集中全部的测试用例。为此在组合测试中引入优先级排序技术,从而优先执行贡献程度较高的测试用例。本文系统回顾和总结了组合测试中优先级排序方法的现有成果,发现已有研究中多采用组合覆盖率作为排序标准,这些方法能够尽快达到组合覆盖目标。但排序因素选取单一,造成排序结果差异性较大。并且组合测试用例优先级排序方法通常为静态过程,可变力度组合测试在进行优先级排序时仍面临组合力度选取困难的问题。为改善现有研究中存在的不足,本文结合One-test-at-a-time(OTT)策略提出了一种组合测试用例优先级排序的方法,主要研究工作和贡献概括如下: (1)针对组合测试中影响因子间存在复杂多变的交互关系,分别从固定力度和可变力度组合测试的角度,提出了相应优先级排序方法。并且可变力度的组合测试用例优先级排序方法中避免了组合力度选取上存在的难题。 (2)为避免当前研究中优先级排序因素选取单一问题,对固定力度和可变力度组合测试用例优先级排序方法分别引入三个优先级排序因素,提出了使用权重因子权衡三个优先级排序因素的测试用例优先级计算方法。其中,固定力度的组合测试优先级排序因素为:多重待覆盖率、测试用例失效率和测试用例重要程度;可变力度的组合测试优先级排序因素为:局部组合覆盖率、测试用例局部失效率和测试用例局部重要程度。 (3)组合测试用例优先级排序方法中存在静态排序的现象,本文结合OTT策略扩展优先级排序算法,每次排序后执行优先级最高的测试用例;以测试用例的测试结果为基准,充分利用测试过程中的执行信息,提出了适用于优先级排序因素在线调整的策略,以达到测试用例动态排序的目的。 为充分体现本文提出的组合测试用例优先级排序方法的可行性,通过编程进行模拟实验,将本文提出组合测试用例优先级排序方法与原有组合测试优先级排序方法进行对比,实验结果表明本文的优先级排序方法能够提高组合测试用例集的缺陷检测能力、降低检测单位缺陷所需的测试用例个数。