DevReplay:基于可编辑修复模式的自动修复
软件工程
2020-05-25 v1
摘要
静态分析工具(或称 linter)检测源代码规范的违反以维护项目可读性。这些工具在开发者编辑源代码时自动修复特定违反。然而,现有工具是为编程语言的通用规范设计的,不检查项目/API 特定的规范。我们提出了一种新颖的静态分析工具 DevReplay,它通过挖掘代码变更历史生成代码变更模式,并利用匹配模式推荐变更。使用 DevReplay,开发者可在代码编辑器和代码审查中自动检测并修复项目/API 特定问题。此外,我们使用自动程序修复工具基准和真实软件评估了 DevReplay 的准确性。我们发现 DevReplay 比最先进的 APR 工具解决了更多缺陷。最后,我们向由不同语言实现的最流行开源项目提交补丁,项目审查者接受了 80%(10 个中的 8 个)补丁。DevReplay 可在 https://devreplay.github.io 获取。
引用
@article{arxiv.2005.11040,
title = {DevReplay: Automatic Repair with Editable Fix Pattern},
author = {Yuki Ueda and Takashi Ishio and Akinori Ihara and Kenichi Matsumoto},
journal= {arXiv preprint arXiv:2005.11040},
year = {2020}
}