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

作者简介:

通讯作者:

基金项目:

国家重点研发计划课题《数据驱动的软件自动构造与演进方法研究》(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:

    While 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. In this work, we propose 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. Our 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.

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

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

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

京公网安备 11040202500063号