Journal of Xidian University ›› 2020, Vol. 47 ›› Issue (4): 117-123.doi: 10.19665/j.issn1001-2400.2020.04.016

Previous Articles     Next Articles

Rule-based automatic program repair method

HUANG Yuming1(),MA Jianfeng1,2,LIU Zhiquan1(),FENG Bingwen1,3,4,5,WEI Kaimin1   

  1. 1. College of Information Science and Technology, Jinan Univ., Guangzhou 510632, China
    2. School of Cyber Engineering, Xidian Univ., Xi’an 710071, China
    3. State Key Laboratory of Information Security, Institute of Information Engineering, Chinese Academy of Sciences, Beijing 100093, China
    4. Guangdong Provincial Key Laboratory of Information Security Technology, Guangzhou 520006, China
    5. Guangdong Key Laboratory of Intelligent Information Processing and Shenzhen Key Laboratory of Media Security, Shenzhen 518060, China
  • Received:2019-12-08 Online:2020-08-20 Published:2020-08-14
  • Contact: Zhiquan LIU E-mail:406744068@qq.com;zqliu@jnu.edu.cn

Abstract:

To tackle the problem of a low accuracy of test suite-based automatic program repair methods, this paper proposes a rule-based automatic program repair method named RuleFix. The proposed method first mines implicit programming rules in programs to locate defects, and then selects an appropriate patch according to the implicit programming rules, and lastly verifies the patch by utilizing the program synthesis tool to ensure the correctness of the repair result. Moreover, to tackle the problem that the existing rule mining algorithms cannot effectively mine low-frequency rules, a low-frequency rule mining algorithm is proposed, which can derives new rules based on the existing rules to improve the ability of rule mining. Finally, a prototype tool is implemented based on the proposed method, and then the proposed method is compared with the existing automatic program repair methods. Experimental results demonstrate that the proposed method has a significantly higher repair rate and accuracy rate than the existing GenProg and PAR methods.

Key words: automatic program repair, rule-based, static analysis, test suite

CLC Number: 

  • TP309