Automatically Finding Patches Using Genetic Programming. Weimer, W., Nguyen, T., Le Goues, C., & Forrest, S. In International Conference on Software Engineering (ICSE), pages 364-367, 2009. IEEE. ACM SIGSOFT Distinguished Paper and Manfred Paul Award for Excellence in Software: Theory and Practice
Code
Paper abstract bibtex Automatic program repair has been a longstanding goal in software engineering, yet debugging remains a largely manual process. We introduce a fully automated method for locating and repairing bugs in software. The approach works on off-the-shelf legacy applications and does not require formal specifications, program annotations or special coding practices. Once a program fault is discovered, an extended form of genetic programming is used to evolve program variants until one is found that both retains required functionality and also avoids the defect in question. Standard test cases are used to exercise the fault and to encode program requirements. After a successful repair has been discovered, it is minimized using structural differencing algorithms and delta debugging. We describe the proposed method and report experimental results demonstrating that it can successfully repair ten different C programs totaling 63,000 lines in under 200 seconds, on average.
@inproceedings{icse09,
Abstract = {Automatic program repair has been a longstanding goal in software engineering, yet debugging remains a largely manual process. We introduce a fully automated method for locating and repairing bugs in software. The approach works on off-the-shelf legacy applications and does not require formal specifications, program annotations or special coding practices. Once a program fault is discovered, an extended form of genetic programming is used to evolve program variants until one is found that both retains required functionality and also avoids the defect in question. Standard test cases are used to exercise the fault and to encode program requirements. After a successful repair has been discovered, it is minimized using structural differencing algorithms and delta debugging. We describe the proposed method and report experimental results demonstrating that it can successfully repair ten different C programs totaling 63,000 lines in under 200 seconds, on average.},
Author = {Weimer, Westley and Nguyen, ThanhVu and {Le Goues}, Claire and Forrest, Stephanie},
Booktitle = {International Conference on Software Engineering (ICSE)},
Date-Modified = {2014-01-16 14:58:25 -0800},
Keywords = {software engineering, software repair, program analysis, program repair, genetic programming, evolutionary computing},
Bibbase_Note = {{ACM SIGSOFT Distinguished Paper and Manfred Paul Award for Excellence in Software: Theory and Practice}},
Publisher = {IEEE},
Pages = {364-367},
Title = {{Automatically Finding Patches Using Genetic Programming}},
Url_code = {http://dijkstra.cs.virginia.edu/genprog/},
Url_paper = {Pub/icse09-gp.pdf},
Year = {2009}}
Downloads: 0
{"_id":{"_str":"5345701f67062a5e680001ee"},"__v":1,"authorIDs":["545748b32abc8e9f3700025d"],"author_short":["Weimer, W.","Nguyen, T.","Le Goues, C.","Forrest, S."],"bibbaseid":"weimer-nguyen-legoues-forrest-automaticallyfindingpatchesusinggeneticprogramming-2009","bibdata":{"bibtype":"inproceedings","type":"inproceedings","abstract":"Automatic program repair has been a longstanding goal in software engineering, yet debugging remains a largely manual process. We introduce a fully automated method for locating and repairing bugs in software. The approach works on off-the-shelf legacy applications and does not require formal specifications, program annotations or special coding practices. Once a program fault is discovered, an extended form of genetic programming is used to evolve program variants until one is found that both retains required functionality and also avoids the defect in question. Standard test cases are used to exercise the fault and to encode program requirements. After a successful repair has been discovered, it is minimized using structural differencing algorithms and delta debugging. We describe the proposed method and report experimental results demonstrating that it can successfully repair ten different C programs totaling 63,000 lines in under 200 seconds, on average.","author":[{"propositions":[],"lastnames":["Weimer"],"firstnames":["Westley"],"suffixes":[]},{"propositions":[],"lastnames":["Nguyen"],"firstnames":["ThanhVu"],"suffixes":[]},{"propositions":[],"lastnames":["Le Goues"],"firstnames":["Claire"],"suffixes":[]},{"propositions":[],"lastnames":["Forrest"],"firstnames":["Stephanie"],"suffixes":[]}],"booktitle":"International Conference on Software Engineering (ICSE)","date-modified":"2014-01-16 14:58:25 -0800","keywords":"software engineering, software repair, program analysis, program repair, genetic programming, evolutionary computing","bibbase_note":"ACM SIGSOFT Distinguished Paper and Manfred Paul Award for Excellence in Software: Theory and Practice","publisher":"IEEE","pages":"364-367","title":"Automatically Finding Patches Using Genetic Programming","url_code":"http://dijkstra.cs.virginia.edu/genprog/","url_paper":"Pub/icse09-gp.pdf","year":"2009","bibtex":"@inproceedings{icse09,\n\tAbstract = {Automatic program repair has been a longstanding goal in software engineering, yet debugging remains a largely manual process. We introduce a fully automated method for locating and repairing bugs in software. The approach works on off-the-shelf legacy applications and does not require formal specifications, program annotations or special coding practices. Once a program fault is discovered, an extended form of genetic programming is used to evolve program variants until one is found that both retains required functionality and also avoids the defect in question. Standard test cases are used to exercise the fault and to encode program requirements. After a successful repair has been discovered, it is minimized using structural differencing algorithms and delta debugging. We describe the proposed method and report experimental results demonstrating that it can successfully repair ten different C programs totaling 63,000 lines in under 200 seconds, on average.},\n\tAuthor = {Weimer, Westley and Nguyen, ThanhVu and {Le Goues}, Claire and Forrest, Stephanie},\n\tBooktitle = {International Conference on Software Engineering (ICSE)},\n\tDate-Modified = {2014-01-16 14:58:25 -0800},\n\tKeywords = {software engineering, software repair, program analysis, program repair, genetic programming, evolutionary computing},\n\tBibbase_Note = {{ACM SIGSOFT Distinguished Paper and Manfred Paul Award for Excellence in Software: Theory and Practice}},\n\tPublisher = {IEEE},\n\tPages = {364-367},\n\tTitle = {{Automatically Finding Patches Using Genetic Programming}},\n Url_code = {http://dijkstra.cs.virginia.edu/genprog/},\n\tUrl_paper = {Pub/icse09-gp.pdf},\n\tYear = {2009}}\n\n","author_short":["Weimer, W.","Nguyen, T.","Le Goues, C.","Forrest, S."],"key":"icse09","id":"icse09","bibbaseid":"weimer-nguyen-legoues-forrest-automaticallyfindingpatchesusinggeneticprogramming-2009","role":"author","urls":{" code":"http://dijkstra.cs.virginia.edu/genprog/"," paper":"http://cse.unl.edu/~tnguyen/Pub/icse09-gp.pdf"},"keyword":["software engineering","software repair","program analysis","program repair","genetic programming","evolutionary computing"],"downloads":0},"bibtype":"inproceedings","biburl":"http://cse.unl.edu/~tnguyen/vu_bibs1.bib","downloads":0,"keywords":["software engineering","software repair","program analysis","program repair","genetic programming","evolutionary computing"],"search_terms":["automatically","finding","patches","using","genetic","programming","weimer","nguyen","le goues","forrest"],"title":"Automatically Finding Patches Using Genetic Programming","year":2009,"dataSources":["AAQcbSuJRTAKBGbG3"]}