国内刊号:11-2560/TP
国际刊号:1000-9825
发布日期:
作者:娄一翎,张令明,郝丹,张皓天,张路
单位:娄一翎,高可信软件技术教育部重点实验室(北京大学), 北京 100871;北京大学信息科学技术学院, 北京 10087111,张令明,Department of Computer Science, University of Illinois at Urbana-Champaign, Illinois 61822, USA02,郝丹,高可信软件技术教育部重点实验室(北京大学), 北京 100871;北京大学信息科学技术学院, 北京 10087103,张皓天,蚂蚁金融服务集团, 浙江 杭州 31009904,张路,高可信软件技术教育部重点实验室(北京大学), 北京 100871;北京大学信息科学技术学院, 北京 10087105
关键词:软件质量保障;软件测试;软件调试;缺陷定位;缺陷修复
基金:国家重点研发计划(2017YFB1001803); 国家自然科学基金(61872008)
在传统调试过程中, 缺陷定位通常作为程序修复的前置步骤. 最近, 一种新型调试框架(统一化调试)被提出. 不同于传统调试中缺陷定位和程序修复的单向连接方式, 统一化调试首次建立了定位与修复之间的双向连接机制, 从而达到同时提升两个领域的效果. 作为首个统一化调试技术, ProFL利用程序修复过程中伴随产生的大量补丁执行信息逆向地提升已有缺陷定位技术的效果. 统一化调试技术不仅修复了可被修复的缺陷, 而且也为不能被自动修复技术修复的缺陷提供了有效的调试线索. 虽然统一化调试是一个很有前景的研究方向, 但其在补丁验证过程中涉及到了大量的测试用例执行(比如百万量级的测试执行), 因此时间开销问题严重. 提出一种针对于统一化调试框架的加速技术(AUDE), 该技术通过减少对缺陷定位效果无提升的测试执行, 以提升统一化调试的效率. 具体来说, AUDE首先通过马尔可夫链蒙特卡洛采样方法构建补丁执行的初始序列, 随后在补丁执行过程中将已执行的补丁信息作为反馈信息, 自适应性地估计每一个未执行补丁可能提供有效反馈信息的概率. 在广泛使用的数据集Defects4J上对该技术进行了验证, 发现AUDE在显著加速ProFL的同时, 并没有降低其在缺陷定位和程序修复的效果. 例如: 在减少了ProFL中70.29%的测试执行的同时, AUDE仍在Top-1/Top-3/Top-5指标上与ProFL保持了相同的定位效果.
来源:2022年第2期
《软件学报》期刊编辑部