学位专题

<
DOI:10.7666/d.Y3389794

基于变异的错误定位优化技术研究

刘勇
北京化工大学
引用
识别软件系统中存在错误的代码位置是软件调试过程中最为困难和耗时的环节之一。最近提出的基于变异的错误定位(Mutation Based Fault Localization,MBFL)技术是目前定位精度最好的一种自动化错误定位技术,能有效减少开发人员查找错误所需要的时间消耗。MBFL技术源于变异测试,需要对被测程序生成变异体,执行测试用例,并利用执行信息来进行错误定位。通常变异体和测试用例数量都随程序规模增加而增大,而MBFL技术需要在每个变异体上执行所有测试用例,因此执行开销很大。以软件回归测试领域经典的基准被测程序space为例,该程序可执行的代码行数为5K~6K,程序自带1万多个测试用例,可生成的变异体接近4万个。如果使用MBFL技术定位该程序中的错误,需要执行约5亿次变异测试(Mutant-Test Pair,MTP),时间花费巨大。MBFL技术具有很高的错误定位精度,约减变异执行是改进MBFL技术的有效手段。所以在保证错误定位精度前提下,如何优化变异体执行,减少执行开销,是在实际中应用MBFL技术的关键研究问题。  本文从多个角度研究MBFL优化问题,在保持原始MBFL技术错误定位高精度的前提下,提出变异测试执行的优化方法,进而降低MBFL执行开销,为MBFL技术从理论研究走向实际应用奠定基础。  本文具体研究内容如下:  (1)面向MBFL的变异体静态采样方法:  变异体采样是一种约减变异执行的有效方法,但不可避免的带来定位精度损失的问题。为减少MBFL错误定位精度由于变异体约减带来的损耗,本文首先针对变异体采样研究相关因素与错误定位精度之间的关系,具体包括采样粒度、采样前后的变异体集合的语句分布、变异算子分布、错误分布等。在此基础上,提出了基于语句层面的细粒度变异体采样和面向错误分布的变异体采样两种策略。相比原始MBFL,这两种技术可以有效提高变异体的变异算子完整性和语句分布多样性。实验表明,应用这两种策略可以在错误定位精度损失很小的前提下,平均减少约80%的变异体,有效提高了MBFL执行效率。  (2)MBFL变异体执行动态优化方法:  在MBFL变异体执行过程中,通过研究语句怀疑度、变异体怀疑度计算和变异体执行测试用例结果之间的相互关系,提出了面向变异体和面向测试用例的两种动态优化策略,在变异执行过程中,动态约减变异体和测试用例的执行。实验结果显示应用这两种动态优化策略的MBFL技术能在保留原始MBFL错误定位精度不变的前提下,平均减少约53.9%的变异体执行开销;  (3)静态与动态相结合的MBFL优化技术:  通过整合前面两个方面的研究成果,提出了一种结合变异体静态采样和变异体执行动态优化方法的MBFL整体优化技术框架。实验结果表明,应用该优化技术能在保留原始MBFL错误定位高精度的前提下,平均减少约87.9%的变异体执行开销,显著提升了MBFL技术的执行效率。  综上所述,本文针对MBFL变异体执行时间开销太大的问题,在变异体运行测试用例之前,研究两种变异体采样策略形成了一种能有效降低变异体规模同时保持原始MBFL错误定位高精度的变异体采样方法;在变异体执行测试用例过程中,提出了面向变异体约减和测试用例约减两种动态优化策略,形成了一种MBFL变异体执行动态优化技术,并通过理论分析了该方法可以保证不损失原MBFL技术的错误定位精度;最后,实现了静态与动态优化相结合的完整MBFL优化技术,在保留原始MBFL技术错误定位高精度的前提下,减少了约87.9%的变异体执行开销,大幅度提升了MBFL的执行效率,为MBFL技术从理论研究走向实际应用奠定了基础。

软件测试;错误定位;变异体;动态优化

北京化工大学

博士

控制科学与工程

李征

2018

中文

TP311.52

115

2018-09-10(万方平台首次上网日期,不代表论文的发表时间)

相关文献
评论
相关作者
相关机构
打开万方数据APP,体验更流畅