A systematic study of automated program repair: Fixing 55 out of 105 bugs for $8 each
By Claire Le Goues, Michael Dewey-Vogt, Stephanie Forrest, Westley Weimer. 2012
656 citations recorded by the source corpus.
Subfields: Information Systems, Software, Natural Language Processing, Signal Processing
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
- Charles Sutton
- Miltiadis Allamanis
- Claire Le Goues
- Premkumar T. Devanbu
- Earl T. Barr
- Baishakhi Ray
- Abhik Roychoudhury
In Software
- Claire Le Goues
- Abhik Roychoudhury
- Lingming Zhang
- Chun Xia
- Tien Nhut Nguyen
- Martin C. Rinard
- Fan Long
- Miltiadis Allamanis
In Natural Language Processing
- Charles Sutton
- Premkumar T. Devanbu
- Miltiadis Allamanis
- Alexey Svyatkovskiy
- Neel Sundaresan
- Earl T. Barr
- Lukasz Kaiser
- Graham Neubig
In Signal Processing
- Baishakhi Ray
- Tien Nhut Nguyen
- Yangruibo Ding
- Abhik Roychoudhury
- Earl T. Barr
- Premkumar T. Devanbu
- Miltiadis Allamanis
- Claire Le Goues
Citations in the corpus
- Evaluating Large Language Models Trained on Code (2021, methodology): “However, these works used an exact match against a reference instead of functional correctness, citing Qi et al. (2015)’s finding that most of the proposed solutions by genetic search in (Goues et al., 2012) passed through weak test suites by deleting functionality that failed.”
- 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].”
- An Empirical Study on Learning Bug-Fixing Patches in the Wild via Neural Machine Translation (2018, methodology): “acceptable one according to a specification [54]. Behavioral repair techniques in particular change the behavior of a program under repair by changing its source or binary code [54]. These techniques [20, 45, 73] rely on a critical assumption, the redundancy assumption, that claims large programs co”
- Staged program repair with condition synthesis (2015, methodology): “For comparison, previous systems generate correct patches for only one [20] or two [37, 32] of the 69 defects in this benchmark set.”
- DLFix: Context-based Code Transformation Learning for Automated Program Repair (2020, background): “It can also work for the codepeers, which are the code having similar internal usages. search-based soft ware engineering to tackle more general types ofbugs [8,9,25,30].”
- DirectFix: Looking for Simple Program Repairs (2015, methodology): “Existing test-driven repair methods rely on statistical fault localization [9]–[11] to choose program locations to modify (often called fault locations in the literature [12]).”
- 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].”
- 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”
- Generating bug-fixes using pretrained transformers (2021, methodology): “We found that many of the fixes fell into a few unin-spiring patterns, especially given the limited context of the methods: Simple deletions, as with classic models like GenProg; swapping “protected”, “private”, and “public”; and inserting “native”.”
- TBar: revisiting template-based automated program repair (2019, background): “, a patch) in the space of all possible programs [26, 38].”
- Angelix: Scalable Multiline Program Patch Synthesis via Symbolic Analysis (2016, methodology): “Various automated repair tools, such as GenProg [14], PAR [21], relifix [39], Sem-Fix [26], Nopol [8], DirectFix [24] and SPR [23], to name only a few, have been introduced recently.”
- Precise Condition Synthesis for Program Repair (2016, background): “For example, Prophet [17] and Angelix [19] have precisions of 38.5% and 35.7% on the GenProg Benchmark [21].”
- Practitioners' expectations on automated fault localization (2016, neutral): “, [18,25]), empirical study on debugging (e.”
- SQLizer: query synthesis from natural language (2017, methodology): “…refinement strategy in Sqlizer is inspired by prior work on fault localization [Ball et al. 2003; Groce and Visser 2003; Jones and Harrold 2005; Jones et al. 2002; Jose and Majumdar 2011a,b] and program repair [Goues et al. 2012; Long and Rinard 2015, 2016; Nguyen et al. 2013; Weimer et al. 2009].”
- Ask the Mutants: Mutating Faulty Programs for Fault Localization (2014, background): “…is, the more efficient GenProg becomes, and in turn the more effective the given localization technique is. 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].”
- Automatic patch generation learned from human-written patches (2013, methodology): “Table IV shows patch generation results of PAR and GenProg.”
- Nopol: Automatic Repair of Conditional Statement Bugs in Java Programs (2018, methodology): “RSRepair can fix 24 bugs, which are derived from a subset of 55 fixed bugs by GenProg [25].”