2016
DOI: 10.1145/2914770.2837617
|View full text |Cite
|
Sign up to set email alerts
|

Automatic patch generation by learning correct code

Abstract: We present Prophet, a novel patch generation system that works with a set of successful human patches obtained from open- source software repositories to learn a probabilistic, application-independent model of correct code. It generates a space of candidate patches, uses the model to rank the candidate patches in order of likely correctness, and validates the ranked patches against a suite of test cases to find correct patches. Experimental results show that, on a benchmark set of 69 real-world defects drawn f… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
4

Citation Types

2
33
8

Year Published

2018
2018
2023
2023

Publication Types

Select...
7
2

Relationship

0
9

Authors

Journals

citations
Cited by 87 publications
(43 citation statements)
references
References 37 publications
2
33
8
Order By: Relevance
“…Search-Based APR: Weimer et al [2009] proposed GenProg which first uses the genetic algorithm to search possible useful sentences to generate patches. After the opening work of Weimer et al [2009], other search algorithms, e.g., random search in [Qi et al 2014], have been used for repairing, and methods [Long and Rinard 2015] [Long and Rinard 2016] for selecting candidate patches have also been well studied.…”
Section: Related Workmentioning
confidence: 99%
“…Search-Based APR: Weimer et al [2009] proposed GenProg which first uses the genetic algorithm to search possible useful sentences to generate patches. After the opening work of Weimer et al [2009], other search algorithms, e.g., random search in [Qi et al 2014], have been used for repairing, and methods [Long and Rinard 2015] [Long and Rinard 2016] for selecting candidate patches have also been well studied.…”
Section: Related Workmentioning
confidence: 99%
“…Prophet [27] mines a database of successful patches and uses these patches to repair defects in large, real-world applications. However, it is unclear how this approach would be applicable to our educational setting.…”
Section: Related Workmentioning
confidence: 99%
“…Automatic program repair. Aside from the researches for repairing students' programs, there also have been many recent researches for fixing bugs in large software, e.g., Kim et al 2013;Kneuss et al 2015;Könighofer and Bloem 2011;Le Goues et al 2012;Long and Rinard 2016;Nguyen et al 2013;. The techniques for repairing students' programs and developers' software are complementary; while the former can generate relatively complicated patches for small programs, the latter usually produces small patches for large programs.…”
Section: Related Workmentioning
confidence: 99%