Revisiting Evolutionary Program Repair via Code Language Model
Yunan Wang, Tingyu Guo, Zilong Huang, Yuan Yuan

TL;DR
This paper presents ARJA-CLM, a novel method combining evolutionary algorithms and code language models to repair multi-location bugs in Java, significantly improving repair scope and effectiveness over existing single-point fix approaches.
Contribution
The paper introduces ARJA-CLM, integrating multiobjective evolutionary algorithms with context-aware prompts for CLMs to handle multi-point bugs, advancing automated program repair capabilities.
Findings
ARJA-CLM outperforms state-of-the-art repair systems on benchmark datasets.
Context-aware prompts improve CLM's ability to generate accurate repair candidates.
The approach effectively repairs multi-location bugs in Java projects.
Abstract
Software defects are an inherent part of software development and maintenance. To address these defects, Automated Program Repair (APR) has been developed to fix bugs automatically. With the advent of Large Language Models, Code Language Models (CLMs) trained on code corpora excels in code generation, making them suitable for APR applications. Despite this progress, a significant limitation remains: many bugs necessitate multi-point edits for repair, yet current CLM-based APRs are restricted to single-point bug fixes, which severely narrows the scope of repairable bugs. Moreover, these tools typically only consider the direct context of the buggy line when building prompts for the CLM, leading to suboptimal repair outcomes due to the limited information provided. This paper introduces a novel approach, ARJA-CLM, which integrates the multiobjective evolutionary algorithm with CLM to fix…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Testing and Debugging Techniques · Software Engineering Research · Advanced Data Storage Technologies
