Automatic Program Repair (APR) techniques can promisingly help reducing the cost of debugging. Many relevant APR techniques follow the generate-and-validate approach, that is, the faulty program is iteratively modified with different change operators and then validated with a test suite until a plausible patch is generated. In particular, Kali is a generate-and-validate technique developed to investigate the possibility of generating plausible patches by only removing code. Former studies show that indeed Kali successfully addressed several faults. This paper addresses the case of code-removal patches in automated program repair investigating the reasons and the scenarios that make their creation possible, and the relationship with patches implemented by developers. Our study reveals that code-removal patches are often insufficient to fix bugs, and proposes a comprehensive taxonomy of code-removal patches that provides evidence of the problems that may affect test suites, opening new opportunities for researchers in the field of automatic program repair.
翻译:自动程序修补( APR) 技术可以大有希望地帮助降低调试成本。 许多相关的 APR 技术都遵循生成和验证方法, 也就是说, 错误程序会与不同的变更操作员一起迭代修改, 然后用一个测试套件验证, 直到产生一个可信的补丁。 特别是, Kali 是一种生成和验证技术, 用来调查仅仅通过删除代码产生合理补丁的可能性。 以前的研究表明, Kali 确实成功地解决了几个错误。 本文涉及自动程序修补中代码解码补丁的情况, 调查导致其产生的原因和情景, 以及开发者执行的补丁关系。 我们的研究显示, 代码清除补丁往往不足以修补错误, 并提议对代码解补补补补补补丁进行全面分类, 以证明可能影响测试套件的问题, 为研究人员在自动程序修补领域开辟了新的机会 。