论文部分内容阅读
回归测试是软件演化过程中一项频繁进行且开销巨大的任务。研究表明,回归测试阶段的耗费甚至会占到软件维护总费用的三分之一以上。为了降低这部分工作的开销,提高回归测试中测试用例的使用效率,研究者们围绕测试用例集的选择和优化使用等问题进行了大量研究,相关的成果包括测试用例的选择性复用技术、测试用例集约简技术以及测试用例优先级技术等。
回归测试中测试用例的选择和优化使用方法认为,不同测试用例对于测试目标的完成有着不同的贡献程度,为了能够更快地达成测试目标,有必要将测试用例进行选择和优先级排序后使用。本文深入研究了影响测试用例选择使用的因素以及不同应用环境下的优化使用技术等问题。主要工作包括:(1)在影响测试用例选择和使用因素方面,研究与已有测试用例优化使用技术不同的方法;(2)在不同的应用环境下,研究具有更高适应性的测试用例优化使用方法;(3)在优先级技术模型方面,研究现有对测试用例目标描述的改进方式;(4)在度量方面,对现有度量的物理意义进行了解释,并对其进行了相应的改进。
论文工作的主要成果表现在以下几个方面:
·基于测试用例的设计信息,提出了新的测试用例优先级方法。作为已有技术的有益补充,这种方法利用测试用例设计信息作为指导,将待复用的测试用例集进行排序和使用,可以避免由于收集运行时测试用例覆盖率等相关信息带来的额外开销。与已有方法相比,新方法具有一些优良特性,例如算法时间复杂度与待测程序的规模无关等。相关实验表明这种新方法适用于大规模程序的回归测试。
·为了解决现有技术不能很好地应用于黑盒测试情况这一问题,提出了适用于黑盒环境下的测试用例优先级技术及相应的算法。这种方法通过研究测试用例检测出错误种类之间的关系,充分利用回归测试过程中的实时反馈信息,对测试用例进行比较和排序使用,从而提高测试用例集的使用效率。此外,为了对测试结果进行评估,还对已有的度量方法进行了修改,提出了针对黑盒测试的检错效率度量标准。
·在对已有的测试用例优先级技术模型改进的基础上,结合测试用例的选择和使用过程,对测试用例的优先级排序问题做出了新的描述,提出了测试用例动态优先级的概念和模型。以此为基础,本文还提出了测试用例动态优先级的基本过程和通用算法,以及各种相关度量方法的改进。
·针对现有测试用例优先级技术只能输出一个测试用例使用序列的问题,研究并提出了并行环境下的测试用例选择和优先级技术,着重考虑了存在临界资源情况下,多处理队列的测试用例优化使用问题,并分别就存在调度进程和不存在调度进程这两种情况,讨论了相应的测试用例选择分配和优先级排序算法,并通过实例研究比较并验证了这种方法的有效性。