论文标题

快速维修设施用于调试

A Quick Repair Facility for Debugging

论文作者

Reiss, Steven P., Xin, Qi

论文摘要

现代开发环境提供了广泛使用的自动纠正设施,用于快速修复句法错误。自动校正无法处理语义错误,这要难以修复得多。设计用于修复语义错误的自动化程序维修技术在调试时不适合交互式使用,因为他们通常假设存在高质量的测试套件并花费大量时间。为了弥合差距,我们开发了Rose,这是一种工具,可以提出调试过程中更快的语义错误维修。玫瑰不依靠测试套件。相反,它假设一个观察到问题的调试器停止点。它要求开发人员快速描述出什么问题,执行轻量级故障定位以识别潜在的负责位置,并使用生成和验证的策略来产生和验证维修。最后,它提出了结果,以便开发人员可以选择并进行适当的维修。为了评估其效用,我们实施了在Eclipse IDE中起作用的玫瑰的原型,并将其应用于两个基准测试,quixbugs和缺陷4J进行维修。罗斯能够在几秒钟内建议对17个Quixbugs和16个缺陷4J错误进行正确的维修。

Modern development environments provide a widely used auto-correction facility for quickly repairing syntactic errors. Auto-correction cannot deal with semantic errors, which are much more difficult to repair. Automated program repair techniques, designed for repairing semantic errors, are not well-suited for interactive use while debugging, as they typically assume the existence of a high-quality test suite and take considerable time. To bridge the gap, we developed ROSE, a tool to suggest quick-yet-effective repairs of semantic errors during debugging. ROSE does not rely on a test suite. Instead, it assumes a debugger stopping point where a problem is observed. It asks the developer to quickly describe what is wrong, performs a light-weight fault localization to identify potential responsible locations, and uses a generate-and-validate strategy to produce and validate repairs. Finally, it presents the results so the developer can choose and make the appropriate repair. To assess its utility, we implemented a prototype of ROSE that works in the Eclipse IDE and applied it to two benchmarks, QuixBugs and Defects4J, for repair. ROSE was able to suggest correct repairs for 17 QuixBugs and 16 Defects4J errors in seconds.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源