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 behaviour. We formalise 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-fertilisations. Evaluating on 105 real-world bugs
in programs totalling 5 million lines of code LOC and
involving 10000 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.",
notes = "ase2013.org/ See also
\cite{Qi:2015:APP:2771783.2771791}
INSPEC Accession Number: 1402267 Also known as
\cite{6693094}",