Automated program repair (automatic bug fixing) is an emerging area of research that focuses on reducing the cost of software bug fixing. Automated program repair approaches automatically or semi-automatically modify buggy program to satisfy given correctness criteria. Examples of corectness criteria are test suite and formal specification. Typical program repair works in the following three steps: identifying faulty locations, inferring desired specification, and generating a patch. Existing approaches differ in the underlying techniques used for localization, inference, and patch generation. Roughly, they can be divided into two groups: syntactical (e.g., GenProg) and semantical (e.g., SemFix). Important attributes of automated program repair are scalability, repairability, and reliability of generated patches.

This website is a community-driven effort to provide up-to-date references about automated program repair. The bibliography section includes papers published in top computer science venues:

The tools and benchmarks sections contain references to related research tools, benchmarks, etc. We display only artifacts that are publicly available and have correspoding publications in the venues listed above.

Contributions are welcomed.