请注意:在评估新提出的自动化程序修复技术时应考虑 Mockito
软件工程
2019-01-09 v2
摘要
自动化程序修复(APR)近年来广受关注,大量技术被提出。同时,已建立若干基准来评估 APR 技术的性能,其中 Defects4J 是使用最广泛的基准之一。然而,Mockito(Defects4J 后期版本中增补的一个项目)中的缺陷并未受到近期研究的太多关注。本文旨在调查在评估 APR 技术时考虑 Mockito 缺陷的必要性。我们的发现表明:1) 与其他项目的缺陷相比,Mockito 缺陷的修复并不更复杂;2) 最先进工具所修复的缺陷与修复 Mockito 缺陷所需模式共享相同的修复模式;但是,3) 最先进工具在 Mockito 缺陷上表现糟糕(Nopol 仅能正确修复一个缺陷,而 SimFix 与 CapGen 即使所有缺陷位置均已暴露也无法修复 Mockito 中的任何缺陷)。我们从这些结果得出结论:现有 APR 技术可能对其所评估的对象过拟合,在评估新提出的 APR 技术时应考虑 Mockito,甚至更多其他项目的缺陷。我们进一步发现了修复 Mockito 缺陷所需的一种独特修复动作,称为外部包添加。从与源代码关联的测试代码中导入外部包对于扩大搜索空间是可行的,且该动作可与现有修复动作结合以改进现有技术。
引用
@article{arxiv.1812.05370,
title = {Attention Please: Consider Mockito when Evaluating Newly Proposed Automated Program Repair Techniques},
author = {Shangwen Wang and Ming Wen and Xiaoguang Mao and Deheng Yang},
journal= {arXiv preprint arXiv:1812.05370},
year = {2019}
}
备注
10 pages, 4 figures and 7 tables