Improving Patch Optimization with Buggy Block for Complex Program Repair

Research output: Contribution to journalArticlepeer-review

Abstract

Automated program repair (APR) identifies and repairs bugs automatically. However, previous studies have faced some limitations in terms of counting the number of repaired bug locations, generating and evaluating patches, etc. Therefore, to overcome these limitations, we propose the "MCRepair++"technique for APR that applies minimized repaired locations, revised patch filtering and ranking, and a proportional patch combination. First, the minimized repaired locations merge the divided cases and exclude overlapping cases to improve preprocessing for buggy blocks. Next, the revised patch filtering and ranking filter out unnecessary patches and favor patches, which have fewer expected actions, with a high score. Finally, the proportional patch combination yields high top k values to reasonably select patches while considering the size of each buggy chunk. We conducted several experiments and evaluated the proposed approach using six project modules of Defects4J. On Defects4J, MCRepair++ correctly fixed 79 bugs, including 31 multi-chunk bugs. It also showed better performance than the baselines. Moreover, it found many unique bugs, including multi-chunk bugs, compared to the baselines.

Original languageEnglish
Pages (from-to)30420-30443
Number of pages24
JournalIEEE Access
Volume13
DOIs
StatePublished - 2025

Keywords

  • Automated program repair
  • buggy block
  • deep learning
  • multi-chunk bugs
  • patch optimization

Fingerprint

Dive into the research topics of 'Improving Patch Optimization with Buggy Block for Complex Program Repair'. Together they form a unique fingerprint.

Cite this