论文标题

Devreplay:使用可编辑的修复图案自动维修

DevReplay: Automatic Repair with Editable Fix Pattern

论文作者

Ueda, Yuki, Ishio, Takashi, Ihara, Akinori, Matsumoto, Kenichi

论文摘要

静态分析工具或衬里,检测违反源代码约定以维持项目可读性。这些工具在开发人员编辑源代码时会自动修复特定的违规行为。但是,现有工具是为编程语言的一般惯例而设计的。这些工具未检查项目/API特定的约定。我们提出了一个新颖的静态分析工具,通过挖掘代码更改历史记录来生成代码更改模式,我们建议使用匹配的模式进行更改。使用DevReplay,开发人员可以在代码编辑器和代码审核中自动检测和修复项目/API特定问题。此外,我们使用自动程序维修工具基准和真实软件评估了Devreplay的准确性。我们发现,DevReplay可以解决比最先进的APR工具的错误。最后,我们向最受欢迎的开源项目提交了补丁程序,这些项目由不同的语言实施,项目审阅者接受了80%(中的8个)补丁。 DevReplay可在https://devreplay.github.io上找到。

Static analysis tools, or linters, detect violation of source code conventions to maintain project readability. Those tools automatically fix specific violations while developers edit the source code. However, existing tools are designed for the general conventions of programming languages. These tools do not check the project/API-specific conventions. We propose a novel static analysis tool DevReplay that generates code change patterns by mining the code change history, and we recommend changes using the matched patterns. Using DevReplay, developers can automatically detect and fix project/API-specific problems in the code editor and code review. Also, we evaluate the accuracy of DevReplay using automatic program repair tool benchmarks and real software. We found that DevReplay resolves more bugs than state-of-the-art APR tools. Finally, we submitted patches to the most popular open-source projects that are implemented by different languages, and project reviewers accepted 80% (8 of 10) patches. DevReplay is available on https://devreplay.github.io.

扫码加入交流群

加入微信交流群

微信交流群二维码

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