论文部分内容阅读
本文以提高回归测试成本效益为目标,对黑盒测试集优先化技术展开研究。成功软件在整个生命周期中会经历持续变更,造成回归测试频繁发生且开销巨大。提高回归测试成本效益一直是测试领域关注的问题。研究测试集优先化技术,提高回归测试有效性和效率,降低回归测试成本,具有现实经济效益。
工业实践中,系统级回归测试通常是防止缺陷流出的最后一道防线,其测试集通常使用黑盒方法设计和生成。学术界对黑盒测试集回归测试问题一直未有深入研究。测试集优先化是一种高实用性技术,适应具有时间资源约束的回归测试场景,且能够提高回归测试反馈速率。因黑盒测试目标、需求以及测试集设计思路方面的特殊性,现有大量基于代码覆盖的测试集优先化方法不适合黑盒测试场景。
针对黑盒测试集优先化场景,本文以提高有效测试用例执行效率为优先化目标,提出基于分类挖掘的新启发式方法。其中有效测试用例是指回归测试中能够发现缺陷的测试用例,尽早执行这些测试用例可以提高回归测试反馈速率。从概率论角度出发,定义回归测试随机试验,并在假定程序模块及测试集未经历大规模变更前提下,将软件演化过程中收集的不同版本回归测试历史数据视为独立重复试验结果。在此基础上提出新启发式:新版本代码变更条件下测试用例检测到缺陷的条件概率。新启发式估计新版本程序回归测试中测试用例检测到缺陷可能性大小,进而将测试用例按照检测缺陷可能性从大到小顺序排列,使更可能检测到缺陷的测试用例尽早执行,从而满足“提高有效测试用例执行效率”的优先化目标。
为计算测试用例在新变更条件下检测到缺陷的条件概率,新方法采用分类挖掘技术根据历史数据建立代码变更度量与测试用例执行结果的概率关系模型,并结合新版本变更情况预测测试用例在新版本下执行结果。新方法基于高效数据挖掘技术,理论上可以获得良好执行效率;因采用容易获得的度量,理论上还具有广泛适用性。本文实证研究部分通过3组实验验证新方法有效性、执行效率,并探索适宜此方法的分类器实现及其对不同数据集的适用性。
新方法易于扩展,理论上也可应用于白盒测试场景。除代码变更以外,新方法理论上还可使用二进制码、规约变更、需求变更等变更度量。这些扩展进一步提高新方法适用性。
本文主要贡献有:
1、总结前人工作,综述回归测试领域,尤其是测试集优先化领域已有成果。
2、从概率统计角度定义回归测试,给出回归测试随机试验定义。
3、提出新启发式“新版本代码变更条件下测试用例检测到缺陷的条件概率”。新启发式基于易采集的度量,理论上能够获得良好适用性及效率。
4、提出基于分类挖掘的测试集优先化方法。利用分类挖掘方法的高效性能够带来良好执行效率。
5、进行实证研究验证新方法有效性、性能,探索新方法适用分类器及数据集。实验结果表明新启发式方法具有良好有效性及效率。