arXivDaily arXiv每日学术速递 周一至周五更新
arXiv周末暂无论文更新,休息一下吧,周末愉快~~
arXiv 2202.05577cs.SE
收藏

一种快速维修设备

A Quick Repair Facility for Debugging

Steven P. Reiss, Qi Xin

摘要:

现代开发环境提供了广泛使用的自动更正工具,用于快速修复语法错误。自动更正不能处理语义错误,这是更难以修复。设计用于修复语义错误的自动程序修复技术并不适合在调试时交互使用,因为它们通常假设存在高质量的测试套件并且花费相当长的时间。为了弥补这一差距,我们开发了ROSE,这是一种在调试过程中建议快速有效修复语义错误的工具。ROSE不依赖于测试套件。相反,它假定在观察到问题的地方有一个调试器停止点。它要求开发人员快速描述错误,执行轻量级故障定位以确定潜在的责任位置,并使用生成和验证策略来生成和验证修复。最后,它会显示结果,以便开发人员可以选择并进行适当的修复。为了评估它的实用性,我们实现了一个在Eclipse IDE中工作的ROSE原型,并将其应用于两个基准测试,菜Bugs和Defects4J,以进行修复。ROSE能够在几秒钟内为17个菜错误和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.

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

↑