Enhancing Automated Program Repair via Faulty Token Localization and Quality-Aware Patch Refinement
By: Jiaolong Kong , Xiaofei Xie , Yiheng Xiong and more
Potential Business Impact:
Fixes computer code errors more accurately.
Large language models (LLMs) have recently demonstrated strong potential for automated program repair (APR). However, existing LLM-based techniques primarily rely on coarse-grained external feedback (e.g.,test results) to guide iterative patch generation, while lacking fine-grained internal signals that reveal why a patch fails or which parts of the generated code are likely incorrect. This limitation often leads to inefficient refinement, error propagation, and suboptimal repair performance. In this work, we propose TokenRepair, a novel two-level refinement framework that enhances APR by integrating internal reflection for localizing potentially faulty tokens with external feedback for quality-aware patch refinement. Specifically, TokenRepair first performs internal reflection by analyzing context-aware token-level uncertainty fluctuations to identify suspicious or low-confidence tokens within a patch. It then applies Chain-of-Thought guided rewriting to refine only these localized tokens, enabling targeted and fine-grained correction. To further stabilize the iterative repair loop, TokenRepair incorporates a quality-aware external feedback mechanism that evaluates patch quality and filters out low-quality candidates before refinement. Experimental results show that TokenRepair achieves new state-of-the-art repair performance, correctly fixing 88 bugs on Defects4J 1.2 and 139 bugs on HumanEval-Java, demonstrating substantial improvements ranging from 8.2% to 34.9% across all models on Defects4J 1.2 and from 3.3% to 16.1% on HumanEval-Java.
Similar Papers
REFINE: Enhancing Program Repair Agents through Context-Aware Patch Refinement
Software Engineering
Fixes computer code bugs automatically and better.
RelRepair: Enhancing Automated Program Repair by Retrieving Relevant Code
Software Engineering
Helps computers fix software bugs using project details.
Empirical Evaluation of Generalizable Automated Program Repair with Large Language Models
Software Engineering
Fixes computer code bugs automatically across languages.