A Survey on Automatic Bug Fixing
Heling Cao, Yangxia Meng, Jianshu Shi, Lei Li, Tiaoli Liao, Chenyang Zhao · 2020
To reduce the cost of software debugging, Automatic Bug Fixing (ABF) techniques have been proposed for efficiently fixing and maintaining software, aiming to rapidly correct bugs in software. In this paper, we conduct a survey, analysing the capabilities of existing ABF techniques based on the test case set. We organize knowledge in this area by surveying 133 high-quality papers from 1990 to June 2020 and supplement 57 latest high-quality papers from 2017 to June 2020. This paper shows that existing ABF approaches can be divided into three main strategies: search-based, semantic-based, and template-based. Search-based ABF considers using search strategies, such as genetic programming, context similarity, to change the programs into the correct one. Semantic-based ABF involves symbolic execution and constraint solving, such as satisfiability modulo theories solver, contracts, to fix bugs. Different from the two kinds of theories above, template-based ABF is mainly based on fixing templates, such as other programs, bug reports, to fix bugs. Besides, we provide a summary of the commonly used defect benchmarks and all the available tools that are frequently used in the field of ABF. We also discuss the empirical foundations and argumentation in the area and prospect the trend of future study.