Automated Program Repair (APR) is a fast growing area with numerous new techniques being developed to tackle one of the most challenging software engineering problems. APR techniques have shown promising results, giving us hope that one day it will be possible for software to repair itself. In this paper, we focus on the problem of objective performance evaluation of APR techniques. We introduce a new approach, Explaining Automated Program Repair (E-APR), which identifies features of buggy programs that explain why a particular instance is difficult for an APR technique. E-APR is used to examine the diversity and quality of the buggy programs used by most researchers, and analyse the strengths and weaknesses of existing APR techniques. E-APR visualises an instance space of buggy programs, with each buggy program represented as a point in the space. The instance space is constructed to reveal areas of hard and easy buggy programs, and enables the strengths and weaknesses of APR techniques to be identified.
翻译:自动程序修理是一个快速增长的领域,正在开发许多新技术,以解决最具挑战性的软件工程问题之一。 APR技术已经展示出有希望的成果,希望有一天软件能够自我修理。 在本文中,我们侧重于对APR技术进行客观绩效评估的问题。我们引入了一种新的方法,即解释自动程序修理(E-ARPR),它确定了错误程序的特点,从而解释了为什么对APR技术来说难以找到一个特殊的例子。E-ARPR用来审查大多数研究人员使用的错误程序的多样性和质量,并分析现有的APR技术的优缺点。E-AR可视化了错误程序的一个实例空间,每个错误程序都是空间中的一个点。我们建造了这样的空间,以揭示困难和容易的错误程序领域,并能够发现APR技术的优点和弱点。