Beep: Fine-grained Fix Localization by Learning to Predict Buggy Code Elements
Shangwen Wang, Kui Liu, Bo Lin, Li Li, Jacques Klein, Xiaoguang Mao,, Tegawend\'e F. Bissyand\'e

TL;DR
This paper introduces Beep, a neural network architecture that predicts precise buggy code elements and necessary changes, improving fault localization and aiding automated program repair with higher accuracy and efficiency.
Contribution
Beep is the first neural approach to fine-grained fix localization using AST paths, significantly enhancing bug localization and repair effectiveness.
Findings
Beep outperforms baseline methods in localizing buggy tokens.
It achieves 30-45% recall@1 in predicting repair operators.
Both repair pipelines using Beep achieved 100% correctness in patches.
Abstract
Software Fault Localization refers to the activity of finding code elements (e.g., statements) that are related to a software failure. The state-of-the-art fault localization techniques, however, produce coarse-grained results that can deter manual debugging or mislead automated repair tools. In this work, we focus specifically on the fine-grained identification of code elements (i.e., tokens) that must be changed to fix a buggy program: we refer to it as fix localization. This paper introduces a neural network architecture (named Beep) that builds on AST paths to predict the buggy code element as well as the change action that must be applied to repair a program. Leveraging massive data of bugs and patches within the CoCoNut dataset, we trained a model that was (1) effective in localizing the buggy tokens with the Mean First Rank significantly higher than a statistics based baseline…
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 Engineering Research · Software Testing and Debugging Techniques · Software Reliability and Analysis Research
