首页> 外文期刊>The Journal of Systems and Software >The impacts of techniques, programs and tests on automated program repair: An empirical study
【24h】

The impacts of techniques, programs and tests on automated program repair: An empirical study

机译:技术,程序和测试对程序自动修复的影响:一项实证研究

获取原文
获取原文并翻译 | 示例
获取外文期刊封面目录资料

摘要

Manual program repair is notoriously tedious, error-prone, and costly, especially for the modern large-scale projects. Automated program repair can automatically find program patches without much human intervention, greatly reducing the burden of developers as well as accelerating software delivery. Therefore, much research effort has been dedicated to design powerful program repair techniques. To date, although various program repair techniques have been proposed, to our knowledge, there lacks extensive study on the impacts of repair techniques, subject programs, and test suites on the repair effectiveness and efficiency. In this paper, we perform such an extensive study on repairing 180 seeded and real faults from 17 small to large sized programs. We study the impacts of five representative automated program repair techniques, including GenProg, RSRepair, Brute-force-based technique, AE and Kali, on the repair results. We further investigate the impacts of different subject programs and test suites on effectiveness and efficiency of program repair techniques. Our study demonstrates a number of interesting findings: Brute-force-based technique generates the maximum number of patches but is also the most costly technique, while Kali is the most efficient and has medium effectiveness among the studied techniques; techniques that work well with small programs become too costly or ineffective when applied to large sized programs; since tool-reported patches may overfit the selected test cases, we calculate the false positive rates and find that the influence of failed test cases is much larger than that of passed test cases; finally, surprisingly, all the studied techniques except RSRepair can find more than 80% of successful patches within the first 50% of search space.
机译:众所周知,手动程序修复很繁琐,容易出错且成本很高,特别是对于现代大型项目而言。自动化的程序修复可以在无需人工干预的情况下自动找到程序补丁,从而大大减轻了开发人员的负担并加快了软件交付速度。因此,许多研究工作已致力于设计功能强大的程序修复技术。迄今为止,尽管已经提出了各种程序修复技术,但据我们所知,关于修复技术,主题程序和测试套件对修复有效性和效率的影响,尚缺乏广泛的研究。在本文中,我们对从180个小型程序到大型程序修复180个种子故障和实际故障进行了广泛的研究。我们研究了五种代表性的自动程序修复技术,包括GenProg,RSRepair,基于蛮力的技术,AE和Kali对修复结果的影响。我们将进一步研究不同主题程序和测试套件对程序修复技术的有效性和效率的影响。我们的研究表明了许多有趣的发现:基于蛮力的技术产生了最多的补丁,但也是最昂贵的技术,而在研究的技术中,Kali的效率最高,效果中等。当与大型程序配合使用时,适用于小型程序的技术会变得成本过高或效率低下;由于工具报告的补丁可能会过分适合所选的测试用例,因此我们计算出误报率,并发现失败的测试用例的影响远大于通过的测试用例;最后,令人惊讶的是,除RSRepair外,所有研究的技术都可以在搜索空间的前50%内找到80%以上的成功补丁。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号