Challenging Bug Prediction and Repair Models with Synthetic Bugs
Ali Reza Ibrahimzada, Yang Chen, Ryan Rong, Reyhaneh Jabbarvand

TL;DR
This paper introduces BugFarm, a novel method using large language models to generate complex, synthetic bugs that challenge existing bug detection and repair models, aiding in the evaluation of their robustness.
Contribution
BugFarm is the first approach to systematically generate hard-to-detect and hard-to-repair synthetic bugs using LLMs, analyzing model attention to control mutation locations.
Findings
BugFarm outperforms alternative methods in generating challenging bugs.
Generated bugs are significantly harder for current detection and repair models.
Over 435,000 bugs from 1.9 million mutants demonstrate the effectiveness of BugFarm.
Abstract
Bugs are essential in software engineering; many research studies in the past decades have been proposed to detect, localize, and repair bugs in software systems. Effectiveness evaluation of such techniques requires complex bugs, i.e., those that are hard to detect through testing and hard to repair through debugging. From the classic software engineering point of view, a hard-to-repair bug differs from the correct code in multiple locations, making it hard to localize and repair. Hard-to-detect bugs, on the other hand, manifest themselves under specific test inputs and reachability conditions. These two objectives, i.e., generating hard-to-detect and hard-to-repair bugs, are mostly aligned; a bug generation technique can change multiple statements to be covered only under a specific set of inputs. However, these two objectives are conflicting for learning-based techniques: A bug should…
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
