【论文分享】On the Efficiency of Test Suite based Program Repair

今天给大家推荐的是软工会议ICSE 2020的一篇关于JAVA程序漏洞自动修补的综述。

论文名:On the Efficiency of Test Suite based Program Repair–A Systematic Assessment of 16 Automated Repair Systems for Java Programs

Test-based 的程序漏洞自动修补是过去十年软工研究的热点。虽然最近的文献解决了一些benchmark的bug,但是一些研究认为目前先进的研究仍然还有局限性。比如:

  • 生成的补丁的正确性存在问题。
  • 评价方案可能会对错误定位结果的处理产生误导。

然而,目前没有工作去解决补丁生成效率,以及修补程序的可行性。
所以,这篇文章就去评估基于test suite的程序修补系统的效率来回答这个问题。
最后作者得到了三个结论:

  • 许多生成的不相关的补丁是由于改变了错误代码的位置导致的
  • 如果追踪搜索空间的话,会发现fault localization对于补丁生成的效率影响很小
  • template-based的自动修补系统,虽然大家都认为是最高效地修补大量bug的方法,但实际是效率最低的,因为会生成最多的不相关的补丁候选

作者选取的Automated Program Repair(APR)系统如下表所示:
在这里插入图片描述

通常的代码修补过程:
在这里插入图片描述

作者评估主要回答这三个问题:

  • Repairability across time:how many bugs can be fixed by test suite based repair approaches?(能修补多少bug?)
  • Patch generation efficiency:how many patch candidates are generated and checked before fixing a given bug?(能生成多少候选补丁?)
  • Fault Localization noise impact on efficiency:whether some repair strategies are more or less resilient to repair attempts on wrong code locations?(修补策略和错误代码位置的关系)

第一个问题的结果:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

第二个问题的结果:
在这里插入图片描述
在这里插入图片描述

第三个问题的结果:
在这里插入图片描述

在这里插入图片描述

总结:现在综述的写法都有做一些评估性质的实验。这是第一次看漏洞自动修补相关的论文,原来这个领域发展的还是比漏洞自动利用(AEG)要快一点,都有比较多成熟的指标和benchmark来测试系统的优劣了。以后写综述,或许可以参照这类文章的写法来。另外,对于要从事漏洞自动修补(APR)的研究的话,也可以从这篇文章开始,了解有哪些工作,有哪些benchmark。还可以从这篇文章的Related Work部分找到一些相关综述来看看。

论文下载地址:https://doi.org/10.1145/3377811.3380338

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

破落之实

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值