Automated Program Repair Method
Jump to navigation
Jump to search
An Automated Program Repair Method is a software repair method that can be implemented by an automated program repair system to generate program patches.
- AKA: Automatic Program Repair Technique, APR Method, Code Repair Algorithm.
- Context:
- It can typically analyze Buggy Code to identify repair locations.
- It can typically generate Candidate Patches using repair strategys.
- It can typically validate Patch Correctness through test execution.
- It can often utilize Code Patterns for repair generation.
- It can often employ Search Algorithms to explore solution spaces.
- ...
- It can range from being a Generate-and-Validate Method to being a Semantics-Based Method, depending on its repair approach.
- It can range from being a Heuristic-Based Method to being a Learning-Based Method, depending on its knowledge source.
- It can range from being a Single-Edit Method to being a Multi-Edit Method, depending on its repair granularity.
- It can range from being a Domain-Specific Method to being a General-Purpose Method, depending on its application scope.
- ...
- It can be evaluated using Repair Benchmarks.
- It can produce Patch Rankings based on correctness likelihood.
- It can leverage Program Analysis Techniques for fault understanding.
- It can integrate with Continuous Integration Systems.
- ...
- Example(s):
- Template-Based Repair Methods using fix patterns.
- Genetic Programming Methods using evolutionary search.
- Constraint-Based Repair Methods using SMT solvers.
- Neural Repair Methods using deep learning.
- Large Language Model-Based Automated Program Repair Methods using LLMs.
- Symbolic Execution Methods using path constraints.
- Contract-Based Repair Methods using specifications.
- ...
- Counter-Example(s):
- Manual Debugging Method, which requires human intervention.
- Static Analysis Method, which detects but does not repair defects.
- Code Generation Method, which creates new code rather than fixing existing code.
- See: Software Repair Method, Program Analysis Method, Software Testing Method, Machine Learning Method.