一句话:对16个Java修复工具进行大规模实证,评估补丁候选生成数量及其效率,揭示模板类修复方法效率最低。
论文关注基于测试套件的自动程序修复的补丁生成效率问题,即修复工具为找到可接受补丁而生成多少补丁候选。作者指出,现有研究多关注修复正确性与基准记录,却较少讨论搜索空间遍历、测试开销与正确补丁优先排序相关的效率。为此,他们在统一故障定位配置下,对16个开源Java程序修复工具开展大规模实证,统计生成的补丁候选数量。结果表明:许多无关补丁来自错误代码位置;若谨慎筛选搜索空间,故障定位噪声对补丁生成效率影响很小;而当前最有效的模板类修复系统反而效率最低,倾向于生成大量无关补丁候选。
Test-based automated program repair has been a prolific field of research in software engineering in the last decade. Many approaches have indeed been proposed, which leverage test suites as a weak, but affordable, approximation to program specifications. Although the literature regularly sets new records on the number of benchmark bugs that can be fixed, several studies increasingly raise concerns about the limitations and biases of state-of-the-art approaches. For example, the correctness of generated patches has been questioned in a number of studies, while other researchers pointed out that evaluation schemes may be misleading with respect to the processing of fault localization results. Nevertheless, there is little work addressing the efficiency of patch generation, with regard to the practicality of program repair. In this paper, we fill this gap in the literature, by providing an extensive review on the efficiency of test suite based program repair. Our objective is to assess the number of generated patch candidates, since this information is correlated to (1) the strategy to traverse the search space efficiently in order to select sensical repair attempts, (2) the strategy to minimize the test effort for identifying a plausible patch, (3) as well as the strategy to prioritize the generation of a correct patch. To that end, we perform a large-scale empirical study on the efficiency, in terms of quantity of generated patch candidates of the 16 open-source repair tools for Java programs. The experiments are carefully conducted under the same fault localization configurations to limit biases. Eventually, among other findings, we note that: (1) many irrelevant patch candidates are generated by changing wrong code locations; (2) however, if the search space is carefully triaged, fault localization noise has little impact on patch generation efficiency; (3) yet, current template-based repair systems, which are known to be most effective in fixing a large number of bugs, are actually least efficient as they tend to generate majoritarily irrelevant patch candidates.
@inproceedings{paperbot5593,
title = {On the efficiency of test suite based program repair},
author = {Kui Liu and Shangwen Wang and Anil Koyuncu and Kisub Kim and Tegawendé F. Bissyandé and Dongsun Kim and Peng Wu and Jacques Klein and Xiaoguang Mao and Yves Le Traon},
booktitle = {ICSE},
year = {2020},
doi = {10.1145/3377811.3380338}
}