SELGApr 24, 2023

ITER: Iterative Neural Repair for Multi-Location Patches

arXiv:2304.12015v273 citationsh-index: 51Has Code
Originality Incremental advance
AI Analysis

This addresses the limitation of existing neural APR tools that often produce single-location or uncompilable patches, offering a more effective solution for software developers and maintainers, though it is incremental as it builds on existing neural methods.

The paper tackles the problem of automated program repair (APR) by proposing an iterative paradigm to improve partial patches, enabling multi-location fixes, and achieves a repair success rate of 15.5% on 476 bugs from Defects4J 2.0, including 9 uniquely repaired multi-location bugs.

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.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes