arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 2004.08746cs.SE
收藏

交互式补丁过滤作为辅助工具

Interactive Patch Filtering as Debugging Aid

Jingjing Liang, Ruyi Ji, Jiajun Jiang, Yiling Lou, Yingfei Xiong, Gang Huang

摘要:

广泛认识到程序修复工具需要具有高精度才能有用,即,所生成的补片需要具有高的正确概率。然而,从根本上难以确保补丁的正确性,并且许多工具在修复性能的其他方面(例如召回率)妥协以获得可接受的精度。在本文中,我们提出了一个问题:一个低精度的修复工具仍然有用吗?为了探讨这个问题,我们提出了一个互动的过滤方法来补丁审查,过滤出不正确的补丁,问问题的开发人员。我们的直觉是,不正确的补丁仍然可以帮助理解错误。有了适当的工具支持,即使有许多不正确的补丁,好处也超过了成本。我们实现的方法作为一个Eclipse插件工具,InPaFer,并与30名开发人员的模拟实验和用户研究进行评估。结果表明,我们的方法提高了修复性能的开发人员,62.5%以上的成功修复错误和25.3%的平均调试时间减少。特别地,即使生成的补丁都是不正确的,开发人员的性能也不会显著降低,并且当一些补丁提供用于修复的有用信息(诸如故障位置和部分修复)时,可以提高开发人员的性能。

英文摘要:

It is widely recognized that program repair tools need to have a high precision to be useful, i.e., the generated patches need to have a high probability to be correct. However, it is fundamentally difficult to ensure the correctness of the patches, and many tools compromise other aspects of repair performance such as recall for an acceptable precision. In this paper we ask a question: can a repair tool with a low precision be still useful? To explore this question, we propose an interactive filtering approach to patch review, which filters out incorrect patches by asking questions to the developers. Our intuition is that incorrect patches can still help understand the bug. With proper tool support, the benefit outweighs the cost even if there are many incorrect patches. We implemented the approach as an Eclipse plugin tool, InPaFer, and evaluated it with a simulated experiment and a user study with 30 developers. The results show that our approach improve the repair performance of developers, with 62.5% more successfully repaired bugs and 25.3% less debugging time in average. In particular, even if the generated patches are all incorrect, the performance of the developers would not be significantly reduced, and could be improved when some patches provide useful information for repairing, such as the faulty location and a partial fix.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑