The strength of random search on automated program repair
By Yuhua Qi, Xiaoguang Mao, Yan Lei, Ziying Dai, Chengsong Wang. International Conference on Software Engineering, 2014
367 citations recorded by the source corpus.
Subfields: Information Systems, Software
View Paper: https://www.semanticscholar.org/paper/90441b975380c806320420724fc9d0ec77dbefdb
How researchers see this paper
The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.
In Information Systems
- Tien Nhut Nguyen
- Michael Pradel
- Charles Sutton
- Baishakhi Ray
- Premkumar T. Devanbu
- Yi Li
- Shaohua Wang
- Vincent J. Hellendoorn
In Software
- Tien Nhut Nguyen
- Lingming Zhang
- Chun Xia
- Michael Pradel
- Abhik Roychoudhury
- Claire Le Goues
- Shaohua Wang
- Yi Li
Citations in the corpus
- Patching as Translation: the Data and the Metaphor (2020, methodology): “rogram repair (APR) is a task of keen interest in SE. The aim is to fix software bugs with minimal human intervention. Classic APR techniques can be categorized into 1) generate-andvalidate (G&V) [9, 17, 24, 25] or 2) synthesis-based approaches [20]. G&V approaches automatically generate pat”
- Automated program repair (2019, methodology): “Other techniques simply sample randomly typically restricting themselves to single-edit patches [17], or in a heuristic, deterministic order as in GenProg AE [18].”
- Repairing Bugs in Python Assignments Using Large Language Models (2022, background): “Existing approaches have applied a variety of technical ideas, including formal program logic [5], [31], [32], search-based techniques [33] like genetic programming [2], [34], [35], and machine learning [3], [4], [36].”
- Shaping program repair space with existing patches and similar code (2018, methodology): “Different from most existing approaches [24, 30, 48, 49, 59, 71] that reuse similar code at the statement granularity, our approach utilizes a fine-grained differencing algorithm to reuse similar code at the AST subtree granularity.”
- Context-Aware Patch Generation for Better Automated Program Repair (2018, methodology): “This process is similar to the process of selecting ingredients randomly by existing approaches [16, 20, 36, 38].”
- SequenceR: Sequence-to-Sequence Learning for End-to-End Program Repair (2018, methodology): “An analysis of prior techniques which used a different benchmarck in C (GenProg [36], RSRepair [37], and AE [38]) shows that they have a correct patch ratio of less than 12% [11].”
- CodeScope: An Execution-based Multilingual Multitask Multidimensional Benchmark for Evaluating LLMs on Code Understanding and Generation (2023, methodology): “For automatic code repairing, the semantic-based repairing techniques develop with the help of a specification for the intended program behavior (Nguyen et al., 2013b; Weimer et al., 2009; Long and Rinard, 2015; Qi et al., 2014).”
- Angelix: Scalable Multiline Program Patch Synthesis via Symbolic Analysis (2016, methodology): “Subsequently, RSRepair [31] and AE [40] replace the genetic programming algorithm of GenProg with random search and adaptive repair search strategies, respectively.”
- A syntax-guided edit decoder for neural program repair (2021, methodology): “APR has been approached using different techniques, such as heuristics or random search [33, 35, 45, 54], semantic analysis [7, 12, 22, 27, 39, 46ś48], manually defined or automatically mined repair patterns [2, 14, 23, 24, 31, 42, 52, 59], and learning from source code [24, 43, 69ś72].”
- Staged program repair with condition synthesis (2015, methodology): “GenProg, RSRepair, AE, and Kali: GenProg [38, 20] uses a genetic programming algorithm to search a space of patches, with the goal of enabling the application to pass all considered test cases.”
- An analysis of patch plausibility and correctness for generate-and-validate patch generation systems (2015, methodology): “In this paper we start by considering the GenProg [25], RSRepair [46], and AE [57] systems.”
- The ManyBugs and IntroClass Benchmarks for Automated Repair of C Programs (2015, methodology): “in the ICSE 2014 “Repair Track” [56], [68], for example, discuss experiments involving the same previous method and its experimental defect scenarios, reporting better results.”
- Nopol: Automatic Repair of Conditional Statement Bugs in Java Programs (2018, methodology): “Test-suite based repair, which has been popularized by the work of GenProg by Le Goues et al. [27], has become an actively explored research area [38], [24], [44], [45], [29].”
- History Driven Program Repair (2016, methodology): “Other techniques using randomized search for patch generation have also been proposed [5], [9], [41], [50].”
- DLFix: Context-based Code Transformation Learning for Automated Program Repair (2020, background): “RSRepair [30] fixes buggy programs with random search to guide the patch generation process.”
- Automatic patch generation by learning correct code (2016, methodology): “RSRepair [26] replaces the GenProg genetic search algorithm to instead use random search.”