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

119 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 - Dec 1 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
CountryUnited States
CityPalo Alto, CA
Period11/11/1311/15/13

    Fingerprint

Keywords

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

ASJC Scopus subject areas

  • Software

Cite this

Weimer, W., Fry, Z. P., & Forrest, S. (2013). Leveraging program equivalence for adaptive program repair: Models and first results. In 2013 28th IEEE/ACM International Conference on Automated Software Engineering, ASE 2013 - Proceedings (pp. 356-366). [6693094] (2013 28th IEEE/ACM International Conference on Automated Software Engineering, ASE 2013 - Proceedings). https://doi.org/10.1109/ASE.2013.6693094