论文标题

通过提交分析估算程序维修搜索空间的潜力

Estimating the Potential of Program Repair Search Spaces with Commit Analysis

论文作者

Etemadi, Khashayar, Tarighat, Niloofar, Yadav, Siddharth, Martinez, Matias, Monperrus, Martin

论文摘要

评估程序维修系统的最自然方法是将它们运行在错误数据集上,例如缺陷4J。但是,在任意现实世界中,使用此评估技术需要重大配置。在本文中,我们提出了一种纯粹的静态方法,以评估修复方法的搜索空间的潜力。这种新方法使研究人员和从业人员可以编码维修方法的搜索空间,并选择潜在有用的方法,而无需在工具配置和执行方面挣扎。我们通过指定他们采用的维修策略来编码搜索空间。接下来,我们使用规格检查过去是否在维修搜索空间中。对于维修方法,包括许多人写的过去在其搜索空间中提交的作品表明其产生有用的补丁的潜力。我们以更轻的方式实施评估方法。打火机获取一个git存储库,并输出一系列的列表,其源代码更改在于维修搜索空间。我们从72个GitHub存储库的历史上进行了55,309次提交,并表明较轻的精度和召回率分别为77%和92%。总体而言,我们的实验表明,我们的新方法既轻量级又有效地研究程序修复方法的搜索空间。

The most natural method for evaluating program repair systems is to run them on bug datasets, such as Defects4J. Yet, using this evaluation technique on arbitrary real-world programs requires heavy configuration. In this paper, we propose a purely static method to evaluate the potential of the search space of repair approaches. This new method enables researchers and practitioners to encode the search spaces of repair approaches and select potentially useful ones without struggling with tool configuration and execution. We encode the search spaces by specifying the repair strategies they employ. Next, we use the specifications to check whether past commits lie in repair search spaces. For a repair approach, including many human-written past commits in its search space indicates its potential to generate useful patches. We implement our evaluation method in LighteR. LighteR gets a Git repository and outputs a list of commits whose source code changes lie in repair search spaces. We run LighteR on 55,309 commits from the history of 72 Github repositories with and show that LighteR's precision and recall are 77% and 92%, respectively. Overall, our experiments show that our novel method is both lightweight and effective to study the search space of program repair approaches.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源