<!-- genprog-image.png -->

Evolutionary computation is a promising technique for automating time-consuming and expensive software maintenance tasks, including bug repair. There are more bugs in real-world programs than human programmers can realistically address. This entry considers how to address “What fraction of bugs can be repaired automatically?” and “How much does it cost to repair a bug automatically?” To answer these questions, novel algorithmic improvements were made to GenProg that allow it to scale to large programs and find repairs 68% more often. GenProg uses genetic programming to repair defects in off-the-shelf C programs. Genprog's inherent parallelism is exploited by using cloud computing resources to provide grounded, human- competitive cost measurements. The efforts included generating a large, indicative benchmark set for systematic evaluations. GenProg was evaluated on 105 defects from 8 open-source programs totalling 5.1 million lines of code and involving 10,193 test cases. GenProg automatically repairs 55 of those 105 defects. To the entrants' knowledge, this evaluation is the largest available of its kind, and is often two orders of magnitude larger than previous work in terms of code or test suite size or defect count. Public cloud computing prices allowed the 105 runs to be reproduced for $403; a successful repair completes in 96 minutes and costs $7.32, on average.