abstract = "GenProg implemented a novel method for automatically
evolving patches to repair test suite failures in
legacy C programs. It combined insights from genetic
programming and software engineering. Many of the
original design decisions in GenProg were ultimately
less important than its impact as an existence proof.
In particular, it demonstrated that useful patches for
non-trivial bugs and programs could be generated
automatically. Since the original publication, research
in automated program repair has expanded to consider
and evaluate many new methods, contexts and defects. As
code synthesis and debugging techniques based on
machine learning have become popular, it is informative
to consider how views on perennial issues in program
repair have changed, or remained static, over time.
This retrospective discusses the issues of repair
quality (including the role of tests), use cases for
automated repairs (including the role of humans), and
why these approaches work at all.",