Automated program repair is an emerging area of research that focuses on reducing the cost of debugging by automatically suggesting fixes for software bugs. Although recent techniques demonstrated promising results by automatically generating correct fixes for large real-world applications such as PHP, Python and Wireshark, existing systems suffer from multiple limitations. The first problem of automated program repair is tractability: program repair systems have to explore huge spaces of patches in order to address many types of defects. The second problem is precision: since the majority of techniques rely on test suites as the correctness criteria, automatically generated patches may overfit the tests.
This talk first reviews existing approaches that have been proposed to address the problems of tractability and precision: semantic analysis, patch synthesis, search space selection and prioritization. The second part of the talk describes a new patch space exploration method that significantly outperforms previous techniques in terms of efficiency and also provides higher precision guarantees. Specifically, the talk introduces two closely related algorithms: one relying on enumerative program synthesis and lightweight runtime analysis, and one relying on symbolic execution and second-order constraint solving. Finally, the talk discusses potential applications of automated program repair and future research direction.
Presenter: Sergey Mechtaev, National University of Singapore
Date: March 6, 2017
Venue: room 3248, Faculty of Mathematics and Mechanics, Saint Petersburg State University, Stary Peterhof, Universitetski pr., 28