Abstract:Automatic program repair is an effective technology for ensuring software quality and improving development efficiency. At present, most automatic repair tools use test cases as the final method of patch correctness verification. However, program can barely be fully tested by limited test cases. Consequently, patch sets generated by automatic repair tools contain a large number of incorrect patches. To identify such patches, this study identifies the effectiveness of repair patches by comparing the execution paths of successful tests before and after defect repair and the methods of test case generation to solve the low accuracy problem of automatic repair tools. When the proposed method is applied to evaluate 132 patches generated by six classic repair tools, it successfully excludes 80 incorrect patches, without excluding correct ones. This result shows that the proposed method can effectively exclude incorrect patches and improve the accuracy of automatic repair tools.