[Paper Review] Automatic Software Repair: a Bibliography
A comprehensive survey and annotated bibliography on automatic software repair, covering behavioral and state repair across software engineering, dependability, OS, languages, and security. It classifies repair techniques by oracles and bug classes.
This article presents a survey on automatic software repair. Automatic software repair consists of automatically finding a solution to software bugs without human intervention. This article considers all kinds of repairs. First, it discusses behavioral repair where test suites, contracts, models, and crashing inputs are taken as oracle. Second, it discusses state repair, also known as runtime repair or runtime recovery, with techniques such as checkpoint and restart, reconfiguration, and invariant restoration. The uniqueness of this article is that it spans the research communities that contribute to this body of knowledge: software engineering, dependability, operating systems, programming languages, and security. It provides a novel and structured overview of the diversity of bug oracles and repair operators used in the literature.
Motivation & Objective
- Provide an integrated overview of automatic software repair across multiple communities (software engineering, dependability, operating systems, programming languages, security).
- Classify and analyze repair techniques by behavioral vs. state repair and by the type of oracle used.
- Summarize core concepts, repair operators, and empirical findings to guide researchers and practitioners.
- Offer a structured bibliography of key works and denote terminology variants to unify the field.
Proposed method
- Survey and annotated bibliography of automatic repair literature.
- Classification of repair approaches by repair type (behavioral vs. state) and by oracle.
- Description of repair operators, repair templates, and repair models.
- Cross-domain mapping to show how ideas from different communities converge.
- Discussion of empirical and non-empirical works and notes on evaluation practices.
Experimental results
Research questions
- RQ1What are the main approaches to automatic software repair and how do they differ by repair type and oracle?
- RQ2What repair operators, templates, and models have been proposed across the literature?
- RQ3How do behavioral repair and state repair relate, and what empirical evidence supports their effectiveness?
- RQ4How have different domains (SE, dependability, OS, languages, security) contributed to automatic repair?
- RQ5What are the challenges and open problems identified in compiling a comprehensive bibliography of automatic repair?
Key findings
- The literature spans behavioral repair (code modification) and state repair (runtime/state changes).
- A wide range of repair operators and templates exist, including AST mutations, preconditions, and template-based fixes.
- Test-suite-based repair, pre/post-conditions, and abstract behavioral models are common paradigms for specifying oracles.
- Static analysis, crash inputs, and domain-specific repair extend the scope beyond traditional test-based repair.
- There is cross-disciplinary convergence across software engineering, dependability, OS, PL, and security communities.
- The paper provides a unified terminology and clarifies varieties of repair concepts (repair, patch, fix, heal, recover, etc.).
Better researchstarts right now
From reading papers to final review, dramatically reduce your research time.
No credit card · Free plan available
This review was created by AI and reviewed by human editors.