Key points are not available for this paper at this time.
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.
Building similarity graph...
Analyzing shared references across papers
Loading...
Westley Weimer
University of Michigan
Zachary P. Fry
Allegheny College
Stephanie Forrest
Santa Fe Institute
University of Virginia
University of New Mexico
Building similarity graph...
Analyzing shared references across papers
Loading...
Weimer et al. (Fri,) studied this question.
synapsesocial.com/papers/6a0ee02906ecbe833447e8df — DOI: https://doi.org/10.1109/ase.2013.6693094