Challenging Bug Prediction and Repair Models with Synthetic Bugs
Not on the map. Why?
Abstract (arXiv)
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 have a similar code representation to the correct code in the training data to challenge a bug prediction model to distinguish them. The hard-to-repair bug definition remains the same but with a caveat: the more a bug differs from the original code, the more distant their representations are and easier to be detected. We propose BugFarm, to transform arbitrary code into multiple complex bugs. BugFarm leverages LLMs to mutate code in multiple locations (hard-to-repair). To ensure that multiple modifications do not notably change the code representation, BugFarm analyzes the attention of the underlying model and instructs LLMs to only change the least attended locations (hard-to-detect). Our comprehensive evaluation of 435k+ bugs from over 1.9M mutants generated by BUGFARM and two alternative approaches demonstrates our superiority in generating bugs that are hard to detect by learning-based bug prediction approaches and hard-to-repair by state-of-the-art learning-based program repair technique.
Key facts. Cited by 3 papers in the map (data through 7 Oct 2026). Builds on 22 of its 48 references that are in the map. First posted on arXiv 3 Oct 2023.
Builds on
22 of 48 references.
References · 22
- 2017Attention Is All You Needcited by 59,932
- 2018BERT: Pre-training of Deep Bidirectional Transformers for Language Understandingcited by 40,204
- 2019Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformercited by 14,491
- 2022PaLM: Scaling Language Modeling with Pathwayscited by 5,304
- 2020CodeBERT: A Pre-Trained Model for Programming and Natural Languagescited by 1,286
- 2021CodeT5: Identifier-aware Unified Pre-trained Encoder-Decoder Models for Code Understanding and Generationcited by 890
- 2022Fine-Tuning can Distort Pretrained Features and Underperform Out-of-Distributioncited by 722
- 2019CodeSearchNet Challenge: Evaluating the State of Semantic Code Searchcited by 638
- 2020CodeBLEU: a Method for Automatic Evaluation of Code Synthesiscited by 468
- 2022A Systematic Evaluation of Large Language Models of Codecited by 360
- 2017Beam Search Strategies for Neural Machine Translationcited by 232
- 2021CVEfixes: Automated Collection of Vulnerabilities and Their Fixes from Open-Source Softwarecited by 89
10 more
- 2023In-context Example Selection with Influencescited by 60
- 2022NatGen: Generative pre-training by "Naturalizing" source codecited by 53
- 2023Towards Efficient Fine-tuning of Pre-trained Code Models: An Experimental Study and Beyondcited by 20
- 2018Learning How to Mutate Source Code from Bug-Fixescited by 13
- 2019BugSwarm: Mining and Continuously Growing a Dataset of Reproducible Failures and Fixescited by 12
- 2023Revisiting the Plastic Surgery Hypothesis via Large Language Modelscited by 7
- 2023Perfect is the enemy of test oraclecited by 6
- 2023Efficient Mutation Testing via Pre-Trained Language Modelscited by 3
- 2021RegMiner: Towards Constructing a Large Regression Dataset from Code Evolution Historycited by 2
- 2020What It Would Take to Use Mutation Testing in Industry--A Study at Facebookcited by 1
Built on by
Citing papers per year: 2025: 1; 2026: 2.
3 papers.