A Comprehensive Study of Code-removal Patches in Automated Program Repair
arXiv:2012.06264 · doi:10.1007/s10664-021-10100-7
Abstract
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.
arXiv commentNew version of the manuscript
References in corpus (16)
- Nopol: Automatic Repair of Conditional Statement Bugs in Java Programs
- Automatic Software Repair: a Bibliography
- TBar: Revisiting Template-based Automated Program Repair
- Automatic Repair of Real Bugs in Java: A Large-Scale Experiment on the Defects4J Dataset
- Elixir: Effective object-oriented program repair
- Mining Software Repair Models for Reasoning on the Search Space of Automated Program Fixing
- On the Efficiency of Test Suite based Program Repair: A Systematic Assessment of 16 Automated Repair Systems for Java Programs
- Bears: An Extensible Java Bug Benchmark for Automatic Program Repair Studies
- A Comprehensive Study of Bloated Dependencies in the Maven Ecosystem
- How to Design a Program Repair Bot? Insights from the Repairnator Project
- Automated Patch Assessment for Program Repair at Scale
- A Comprehensive Study of Automatic Program Repair on the QuixBugs Benchmark
- Empirical Study of Restarted and Flaky Builds on Travis CI
- Repairnator patches programs automatically
- Test Case Generation for Program Repair: A Study of Feasibility and Effectiveness
- CARVE: Practical Security-Focused Software Debloating Using Simple Feature Set Mappings