Automated program repair (APR) aims to automatize the process of repairing software bugs in order to reduce the cost of maintaining software programs. Moreover, the success (given by the accuracy metric) of APR approaches has been increasing in recent years. However, no previous work has considered the energy impact of repairing bugs automatically using APR. The field of green software research aims to measure the energy consumption required to develop, maintain and use software products. This paper combines, for the first time, the APR and Green software research fields. We have as main goal to define the foundation for measuring the energy consumption of the APR activity. For that, we present a set of metrics specially crafted to measure the energy consumption of APR tools and a generic methodology to calculate them. We instantiate the methodology in the context of Java program repair. We measure the energy consumption of 10 program repair tools trying to repair real bugs from Defects4J, a set of real buggy programs. The initial results from this experiment show the existing trade-off between energy consumption and the ability to correctly repair bugs: Some APR tools are capable of achieving higher accuracy by spending less energy than other tools.
翻译:自动化程序维修(APR)旨在自动调整软件故障修复过程,以减少软件程序维护成本;此外,近年来,非洲同行审议机构办法的成功(以精确度衡量为基础)一直在增加;然而,以前没有考虑过利用非洲同行审议机构自动修复错误的能源影响;绿色软件研究领域的目的是测量开发、维护和使用软件产品所需的能源消耗量;本文件首次将非洲同行审议机构与绿色软件研究领域结合起来;我们的主要目标是确定衡量非洲同行审议机构活动能源消耗量的基础;为此,我们提出了一套专门用来衡量非洲同行审议机构工具能源消耗量的计量标准,以及一套用于计算这些能源的通用方法;我们在爪哇方案修理过程中即刻了方法;我们测量了10个方案维修工具的能源消耗量,试图修复Deffects4J(一套真正的错误程序)。这次实验的初步结果显示能源消耗与正确修理错误的能力之间的现有平衡:一些非洲同行审议机构工具能够通过比其他工具少花费能源来实现更高的准确性。