软件在开发和维护的过程中均可能产生软件缺陷,如果能够成功自动修复部分缺陷,则可以有效减少程序调试时间,避免损失。软件自动修复是一个新兴课题,尚存在很多需要解决的问题。本文首先介绍了软件自动修复的概念,并提出了基于搜索的软件自动修复的框架;接着,从缺陷定位、搜索策略、测试数据生成三个方面概括了基于搜索的软件自动修复面临的主要挑战,以及需要解决的一些关键问题;最后,总结全文并指出下一步的工作。所提框架及其关键问题的探讨,有助于软件自动修复技术的进一步研究和在工业生产中的推广应用。
Faults occur in the process of software development and maintenance.If the faults are repaired successfully and automatically, the time of program debugging will be effectively reduced and the loss will be avoided.Automatic software repair is an emerging research area and there are still many problems to be solved.This paper introduces the concept of automatic software repair and puts forward a framework of automatic software repair based on search method.The major challenges and the key issues in the framework are summarized from three aspects,including fault localization,search strategy and test data generation.Finally, the summary of this paper and future work are given.The proposed framework and discussion on its key issues undoubtedly provide important basis for the further research and the application of automatic software repair in industry.