Saved in:
Bibliographic Details
Main Authors: Wang, Yunan, Guo, Tingyu, Huang, Zilong, Yuan, Yuan
Format: Preprint
Published: 2024
Subjects:
Online Access:https://arxiv.org/abs/2408.10486
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866916369278173184
author Wang, Yunan
Guo, Tingyu
Huang, Zilong
Yuan, Yuan
author_facet Wang, Yunan
Guo, Tingyu
Huang, Zilong
Yuan, Yuan
contents 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 multilocation bugs in Java projects. We also propose a context-aware prompt construction stratege, which enriches the prompt with additional information about accessible fields and methods for the CLM generating candidate statements. Our experiments on the Defects4J and APR-2024 competition benchmark demonstrate that ARJA-CLM surpasses many state-of-the-art repair systems, and performs well on multi-point bugs. The results also reveal that CLMs effectively utilize the provided field and method information within context-aware prompts to produce candidate statements.
format Preprint
id arxiv_https___arxiv_org_abs_2408_10486
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle Revisiting Evolutionary Program Repair via Code Language Model
Wang, Yunan
Guo, Tingyu
Huang, Zilong
Yuan, Yuan
Software Engineering
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 multilocation bugs in Java projects. We also propose a context-aware prompt construction stratege, which enriches the prompt with additional information about accessible fields and methods for the CLM generating candidate statements. Our experiments on the Defects4J and APR-2024 competition benchmark demonstrate that ARJA-CLM surpasses many state-of-the-art repair systems, and performs well on multi-point bugs. The results also reveal that CLMs effectively utilize the provided field and method information within context-aware prompts to produce candidate statements.
title Revisiting Evolutionary Program Repair via Code Language Model
topic Software Engineering
url https://arxiv.org/abs/2408.10486