Automatically finding patches using genetic programming
By Westley Weimer, Thanhvu Nguyen, Claire Le Goues, Stephanie Forrest. 2009 IEEE 31st International Conference on Software Engineering, 2009
729 citations recorded by the source corpus.
Subfields: Information Systems, Software
View Paper: https://www.semanticscholar.org/paper/59fb4e9bd0e83ccb5d380cb3a1451d8844fc7681
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
- Claire Le Goues
- Charles Sutton
- Michael Pradel
- Miltiadis Allamanis
- Abhik Roychoudhury
- Earl T. Barr
- Premkumar T. Devanbu
- Martin C. Rinard
In Software
- Claire Le Goues
- Abhik Roychoudhury
- Michael Pradel
- Martin C. Rinard
- Fan Long
- Denys Poshyvanyk
- Rishabh Singh
- Charles Sutton
Citations in the corpus
- On End-to-End Program Generation from User Intention by Deep Neural Networks (2015, background): “Provided sufficient training data of code with corresponding comments and documents, it is possible in principle to train a generative model of programs based on natural language.”
- GenProg: A Generic Method for Automatic Software Repair (2012, background): “Some of these points were previously presented in early versions of this work [25], [26] or summarized for general audiences [27].”
- Automatic patch generation by learning correct code (2016, methodology): “GenProg, RSRepair, AE, and Kali: GenProg [15, 36] uses a genetic programming algorithm to search a space of patches, with the goal of enabling the application to pass all considered test cases.”
- Automated program repair (2019, methodology): “The GenProg tool [15] is a fitting example of how genetic search, which has been useful for testing, can be successfully adapted for repair.”
- An analysis of patch plausibility and correctness for generate-and-validate patch generation systems (2015, methodology): “For a more comprehensive treatment, including an analysis of the patches produced by the original GenProg system [58, 21] and a more comprehensive discussion of the ClearView patches and other related work, see the full version of the paper [49].”
- Is the cure worse than the disease? overfitting in automated program repair (2015, methodology): “Of existing G&V techniques, to the best of our knowledge, GenProg [32,62], TrpAutoRepair [49], and AE [61] are the only publicly available repair tools that both repair programs written in C and target general-purpose bugs (as opposed to focusing on one domain of bugs, such as concurrency or integer”
- DirectFix: Looking for Simple Program Repairs (2015, methodology): “3 S1; 4 if (x > y) 5 return 0; 6 else 7 return 1; (b) A repair that resembles a GenProg repair 1 x= E1; 2 y= E2; 3 S1; 4 if SIMPLE FIX: >= is substituted for > 5 return 0; 6 else 7 return 1; (c) An alternative simpler repair; an operator is replaced.”
- A Hitchhiker's guide to statistical tests for assessing randomized algorithms in software engineering (2014, methodology): “[39] was discussed only because it was among the sampled papers in the systematic review, and it is a good example to point out the importance of comparisons.”
- The strength of random search on automated program repair (2014, methodology): “To repair a faulty program, GenProg [40], and its extension”
- A Novel Neural Source Code Representation Based on Abstract Syntax Tree (2019, methodology): “Some studies directly use ASTs in token-based methods for source code search [37], program repair [38] and source code differencing [39].”
- Ask the Mutants: Mutating Faulty Programs for Fault Localization (2014, methodology): “suspiciousness scores of each statement as the probability of mutating the statement (expecting that mutating a highly suspicious statement is more likely to result in a potential fix) [6, 25].”
- 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.”
- Chapter Six - Mutation Testing Advances: An Analysis and Survey (2019, methodology): “[18, 252], who used genetic programming with statement deletion, statement insertion, statement replacement and crossover mutant operators in order to support the automated bug fixing.”
- TBar: revisiting template-based automated program repair (2019, methodology): “given that faults in software cause substantial financial losses to the software industry [5, 49], there is a momentum in minimizing the time-to-fix intervals by APR. Recently, various APR approaches [7, 8, 13, 14, 17, 19, 21, 22, 25, 27, 33, 34, 36, 37, 39, 45, 48, 61, 63, 71, 72] have been propose”
- The ManyBugs and IntroClass Benchmarks for Automated Repair of C Programs (2015, methodology): “Since 2009, when automated program repair was demonstrated on real-world problems (PACHIKA [34], ClearView [15], GenProg [17]), interest in the field has grown steadily, with multiple novel techniques proposed (e.g., Debroy and Wong [10], AutoFix-E [16], ARMOR [8], [35], AFix [11], AE [21], Coker…”
- Post-compiler software optimization for reducing energy (2014, methodology): “The algorithm also takes as input a test suite or indicative workload that serves as an implicit specification of correct behavior; a program variant that passes the test suite is assumed to retain all required functionality [65].”
- SemFix: Program repair via semantic analysis (2013, result): “We have compared our technique with genetic programming [2], [6].”
- A study of the uniqueness of source code (2010, background): “Collectively, our primary contribution is in providing a quantitative answer to the following question: how unique is software? While we believe that the answer to this question is of intrinsic academic interest, there are several practical applications and consequences: Automation of Programming Re”