报告题目：Improving the Precision of Automatic Program Repair with Machine Learning
Automatic program repair as a research field aims to eliminate software bugs and vulnerabilities in an automatic manner. Automatic program repair holds great promise to reduce the debugging cost and increase the productivity of software development. Test suite is one of the most widely used specifications for automatic program repair to specify correct program behavior and guide patch generation. However, the test suite is an incomplete specification with limited input-output data. This results in automatic program repair generating patches that merely satisfy test suite specifications, yet fail to repair buggy programs in general. The generation of numerous incorrect patches leads to low precision of automatic program repair.
In this talk, we focus on improving the precision of automatic program repair from three perspectives: patch generation, patch assessment in practice, and patch assessment for scientific evaluation. This thesis makes contributions to automatic program repair as follows.
First, in order to increase the precision of correct patch generation, we propose two automatic program repair approaches based on machine learning. Both these approaches are able to generate more unique correct patches that fail to be produced by existing work. Moreover, our works reduce the number the candidate patches and thus increase the correct patch precision.
Second, in order to increase the precision of patch assessment in practice, we propose to build a probabilistic model based on static code features to learn to discard incorrect patches. With the help of our solution, automatic program repair techniques increase the ratio of correct patches before providing them to practitioners.
Last, in order to increase the precision of patch assessment for scientific evaluation, we propose to use automatically generated test cases encoded with ground truth oracles to identify incorrect patches. In this way, we help researchers conduct automated patch assessment to alleviate the precision problem in manual patch assessment.