Leveraging program equivalence for adaptive program repair: Models and first results

Westley Weimer, Zachary P. Fry, Stephanie Forrest

Research output: Chapter in Book/Report/Conference proceedingConference contribution

192 Scopus citations

Abstract

Software bugs remain a compelling problem. Automated program repair is a promising approach for reducing cost, and many methods have recently demonstrated positive results. However, success on any particular bug is variable, as is the cost to find a repair. This paper focuses on generate-and-validate repair methods that enumerate candidate repairs and use test cases to define correct behavior. We formalize repair cost in terms of test executions, which dominate most test-based repair algorithms. Insights from this model lead to a novel deterministic repair algorithm that computes a patch quotient space with respect to an approximate semantic equivalence relation. This allows syntactic and dataflow analysis techniques to dramatically reduce the repair search space. Generate-and-validate program repair is shown to be a dual of mutation testing, suggesting several possible cross-fertilizations. Evaluating on 105 real-world bugs in programs totaling 5MLOC and involving 10,000 tests, our new algorithm requires an order-of-magnitude fewer test evaluations than the previous state-of-the-art and is over three times more efficient monetarily.

Original languageEnglish (US)
Title of host publication2013 28th IEEE/ACM International Conference on Automated Software Engineering, ASE 2013 - Proceedings
Pages356-366
Number of pages11
DOIs
StatePublished - 2013
Externally publishedYes
Event2013 28th IEEE/ACM International Conference on Automated Software Engineering, ASE 2013 - Palo Alto, CA, United States
Duration: Nov 11 2013Nov 15 2013

Publication series

Name2013 28th IEEE/ACM International Conference on Automated Software Engineering, ASE 2013 - Proceedings

Other

Other2013 28th IEEE/ACM International Conference on Automated Software Engineering, ASE 2013
Country/TerritoryUnited States
CityPalo Alto, CA
Period11/11/1311/15/13

Keywords

  • Automated program repair
  • mutation testing
  • program equivalence
  • search-based software engineering

ASJC Scopus subject areas

  • Software

Fingerprint

Dive into the research topics of 'Leveraging program equivalence for adaptive program repair: Models and first results'. Together they form a unique fingerprint.

Cite this