Refining Fitness Functions for Search-Based Program Repair

Refining Fitness Functions for Search-Based Program Repair
复制标题

DOI:
10.1109/apr52552.2021.00008
复制
发表时间:
2021-06
期刊:
2021 IEEE/ACM International Workshop on Automated Program Repair (APR)
影响因子:
--
通讯作者:
Zhiqiang Bian;Aymeric Blot;J. Petke
Zhiqiang Bian;Aymeric Blot;J. Petke
中科院分区:
其他
文献类型:
--
作者:
Zhiqiang Bian;Aymeric Blot;J. Petke

文献摘要

被引文献

相似文献

对于软件工程师来说,这是一项耗时的任务。自动程序修复(APR)已被证明在自动修复许多实际应用程序的错误方面是成功的。基于搜索的APR生成程序变体,然后使用适应度函数对原始程序的测试套件进行评估。在绝大多数基于搜索的APR工作中,在评估程序变体的适应性时,仅考虑布尔测试用例结果。我们提出,更细粒度的适应度函数可以导致更多样化的适应度景观,从而为APR搜索算法提供更好的指导。因此,我们提出了2Phase,一个适应度函数,它也包含了测试用例失败的输出,并将其与ARJAe进行比较,ARJAe具有相同的原则,而标准适应度只考虑布尔测试用例结果。我们使用Gin遗传改进框架对菜Bugs基准测试中的16个bug程序进行了比较。结果表明,所有三个适应度函数的性能没有显着差异。然而,Gin能够找到8个正确的修复程序,比最近菜Bugs研究中的任何APR工具都多。
Debugging is a time-consuming task for software engineers. Automated Program Repair (APR) has proved successful in automatically fixing bugs for many real-world applications. Search-based APR generates program variants that are then evaluated on the test suite of the original program, using a fitness function. In the vast majority of search-based APR work only the Boolean test case result is taken into account when evaluating the fitness of a program variant. We pose that more fine-grained fitness functions could lead to a more diverse fitness landscape, and thus provide better guidance for the APR search algorithms. We thus present 2Phase, a fitness function that also incorporates the output of test case failures, and compare it with ARJAe, that shares the same principles, and the standard fitness, that only takes the Boolean test case result into consideration. We conduct the comparison on 16 buggy programs from the QuixBugs benchmark using the Gin genetic improvement framework. The results show no significant difference in the performance of all three fitness functions considered. However, Gin was able to find 8 correct fixes, more than any of the APR tools in the recent QuixBugs study.