ITER: Iterative Neural Repair for Multi-Location Patches
arXiv:2304.12015 · doi:10.1145/3597503.3623337
Abstract
Automated program repair (APR) has achieved promising results, especially using neural networks. Yet, the overwhelming majority of patches produced by APR tools are confined to one single location. When looking at the patches produced with neural repair, most of them fail to compile, while a few uncompilable ones go in the right direction. In both cases, the fundamental problem is to ignore the potential of partial patches. In this paper, we propose an iterative program repair paradigm called ITER founded on the concept of improving partial patches until they become plausible and correct. First, ITER iteratively improves partial single-location patches by fixing compilation errors and further refining the previously generated code. Second, ITER iteratively improves partial patches to construct multi-location patches, with fault localization re-execution. ITER is implemented for Java based on battle-proven deep neural networks and code representation. ITER is evaluated on 476 bugs from 10 open-source projects in Defects4J 2.0. ITER succeeds in repairing 15.5% of them, including 9 uniquely repaired multi-location bugs.
References in corpus (11)
- SequenceR: Sequence-to-Sequence Learning for End-to-End Program Repair
- Practical Program Repair in the Era of Large Pre-trained Language Models
- Automatic Software Repair: a Bibliography
- TBar: Revisiting Template-based Automated Program Repair
- CURE: Code-Aware Neural Machine Translation for Automatic Program Repair
- Less Training, More Repairing Please: Revisiting Automated Program Repair via Zero-shot Learning
- Neural Program Repair with Execution-based Backpropagation
- On the Efficiency of Test Suite based Program Repair: A Systematic Assessment of 16 Automated Repair Systems for Java Programs
- CODIT: Code Editing with Tree-Based Neural Models
- Dynamic Patch Generation for Null Pointer Exceptions using Metaprogramming
- A Comprehensive Study of Automatic Program Repair on the QuixBugs Benchmark
Cited by in corpus (5)
- RepairLLaMA: Efficient Representations and Fine-Tuned Adapters for Program Repair
- Automated Test Case Repair Using Language Models
- T5APR: Empowering Automated Program Repair across Languages through Checkpoint Ensemble
- Seeing is Fixing: Cross-Modal Reasoning with Multimodal LLMs for Visual Software Issue Fixing
- MultiMend: Multilingual Program Repair with Context Augmentation and Multi-Hunk Patch Generation