自适应推导下的统一化调试加速技术
作者:
作者单位:

作者简介:

娄一翎(1993-), 女, 博士, CCF学生会员, 主要研究领域为软件工程;
张令明(1986-), 男, 博士, 助理教授, 博士生导师, 主要研究领域为软件工程, 程序语言;
郝丹(1979-), 女, 博士, 长聘副教授, 博士生导师, CCF杰出会员, 主要研究领域为软件工程, 软件测试与排错;
张皓天(1981-), 男, 硕士, CCF专业会员, 主要研究领域为软件工程, 程序分析, 机器学习;
张路(1973-), 男, 博士, 教授, 博士生导师, CCF杰出会员, 主要研究领域为软件分析, 软件测试, 软件维护与演化

通讯作者:

郝丹,haodan@pku.edu.cn

中图分类号:

基金项目:

国家重点研发计划(2017YFB1001803); 国家自然科学基金(61872008)


Accelerating Unified Debugging via Adaptive Inference
Author:
Affiliation:

Fund Project:

National Key Research and Development Program of China "Research on Data-Driven Methods for Automatic Software Construction and Evolution" (2017YFB1001803); National Natural Science Foundation of China "Research on the Application of Data Driven Test Case Prioritization" (61872008)

  • 摘要
  • |
  • 图/表
  • |
  • 访问统计
  • |
  • 参考文献
  • |
  • 相似文献
  • |
  • 引证文献
  • |
  • 资源附件
  • |
  • 文章评论
    摘要:

    在传统调试过程中, 缺陷定位通常作为程序修复的前置步骤. 最近, 一种新型调试框架(统一化调试)被提出. 不同于传统调试中缺陷定位和程序修复的单向连接方式, 统一化调试首次建立了定位与修复之间的双向连接机制, 从而达到同时提升两个领域的效果. 作为首个统一化调试技术, ProFL利用程序修复过程中伴随产生的大量补丁执行信息逆向地提升已有缺陷定位技术的效果. 统一化调试技术不仅修复了可被修复的缺陷, 而且也为不能被自动修复技术修复的缺陷提供了有效的调试线索. 虽然统一化调试是一个很有前景的研究方向, 但其在补丁验证过程中涉及到了大量的测试用例执行(比如百万量级的测试执行), 因此时间开销问题严重. 提出一种针对于统一化调试框架的加速技术(AUDE), 该技术通过减少对缺陷定位效果无提升的测试执行, 以提升统一化调试的效率. 具体来说, AUDE首先通过马尔可夫链蒙特卡洛采样方法构建补丁执行的初始序列, 随后在补丁执行过程中将已执行的补丁信息作为反馈信息, 自适应性地估计每一个未执行补丁可能提供有效反馈信息的概率. 在广泛使用的数据集Defects4J上对该技术进行了验证, 发现AUDE在显著加速ProFL的同时, 并没有降低其在缺陷定位和程序修复的效果. 例如: 在减少了ProFL中70.29%的测试执行的同时, AUDE仍在Top-1/Top-3/Top-5指标上与ProFL保持了相同的定位效果.

    Abstract:

    Fault localization and program repair techniques have been extensively studied for over decades; their only connection is that fault localization serves as a supplier diagnosing potential buggy code for automated program repair. Recently, unified debugging has been proposed to unify fault localization and program repair in the other direction for the first time to boost both areas. ProFL, the first work on unified debugging, opens a new dimension that the large volume of patch execution information during program repair in turn can help boost state-of-the-art fault localization. Note that even state-of-the-art program repair techniques can only fix a small ratio of real bugs (e.g., < 20% for Defects4J) and simply abort for the vast majority of unfixed bugs. In contrast, unified debugging not only directly fixes bugs when possible, but also provides debugging hints for bugs that cannot be automatically fixed (e.g., the patch execution information from such unsuccessful repair can still help boost fault localization for manual repair). Although demonstrated to be a promising direction, unified debugging relies on massive test executions (i.e., million test executions) and can cost hours for execution. This work proposes AUDE to accelerate unified debugging by reducing test executions that provide little helpful feedback for improving fault localization. Specifically, AUDE first constructs an initial execution order of patches guided by Markov chain Monte Carlo sampling strategy, and then adaptively estimates the likelihood of each patch being informative during patch execution on-the-fly. The results on the widely-used Defejcts4J benchmark show that AUDE significantly accelerates ProFL by reducing 70.29% of test executions with negligible effectiveness drop in both fault localization and program repair, e.g., AUDE can localize the same number of bug methods at Top-1/Top-3/Top-5 as ProFL.

    参考文献
    相似文献
    引证文献
引用本文

娄一翎,张令明,郝丹,张皓天,张路.自适应推导下的统一化调试加速技术.软件学报,2022,33(2):377-396

复制
分享
文章指标
  • 点击次数:
  • 下载次数:
  • HTML阅读次数:
  • 引用次数:
历史
  • 收稿日期:2020-10-14
  • 最后修改日期:2021-01-14
  • 录用日期:
  • 在线发布日期: 2021-05-21
  • 出版日期: 2022-02-06
文章二维码
您是第位访问者
版权所有:中国科学院软件研究所 京ICP备05046678号-3
地址:北京市海淀区中关村南四街4号,邮政编码:100190
电话:010-62562563 传真:010-62562533 Email:jos@iscas.ac.cn
技术支持:北京勤云科技发展有限公司

京公网安备 11040202500063号