...
首页> 外文期刊>ACM transactions on software engineering and methodology >Toward Better Evolutionary Program Repair: An Integrated Approach
【24h】

Toward Better Evolutionary Program Repair: An Integrated Approach

机译:寻求更好的进化程序修复:一种集成方法

获取原文
           

摘要

Bug repair is a major component of software maintenance, which requires a huge amount of manpower. Evolutionary computation, particularly genetic programming (GP), is a class of promising techniques for automating this time-consuming and expensive process. Although recent research in evolutionary program repair has made significant progress, major challenges still remain. In this article, we propose ARJA-e, a new evolutionary repair system for Java code that aims to address challenges for the search space, search algorithm, and patch overfitting. To determine a search space that is more likely to contain correct patches, ARJA-e combines two sources of fix ingredients (i.e., the statement-level redundancy assumption and repair templates) with contextual analysis-based search space reduction, thereby leveraging their complementary strengths. To encode patches in GP more properly, ARJA-e unifies the edits at different granularities into statement-level edits and then uses a lower-granularity patch representation that is characterized by the decoupling of statements for replacement and statements for insertion. ARJA-e also uses a finer-grained fitness function that can make full use of semantic information contained in the test suite, which is expected to better guide the search of GP. To alleviate patch overfitting, ARJA-e further includes a postprocessing tool that can serve the purposes of overfit detection and patch ranking. We evaluate ARJA-e on 224 real Java bugs from Defects4J and compare it with the state-of-the-art repair techniques. The evaluation results show that ARJA-e can correctly fix 39 bugs in terms of the patches ranked first, achieving substantial performance improvements over the state of the art. In addition, we analyze the effect of the components of ARJA-e qualitatively and quantitatively to demonstrate their effectiveness and advantages.
机译:错误修复是软件维护的主要组成部分,需要大量的人力。进化计算,特别是遗传编程(GP),是使这一耗时且昂贵的过程自动化的有前途的技术。尽管最近在进化程序修复方面的研究取得了重大进展,但仍然存在重大挑战。在本文中,我们提出了ARJA-e,这是一种用于Java代码的新的进化修复系统,旨在解决搜索空间,搜索算法和补丁过度拟合的挑战。为了确定更可能包含正确补丁的搜索空间,ARJA-e将两种修复成分来源(即语句级冗余假设和修复模板)与基于上下文分析的搜索空间缩减相结合,从而发挥其互补优势。为了更正确地在GP中对补丁进行编码,ARJA-e将不同粒度的编辑统一为语句级别的编辑,然后使用较低粒度的补丁表示,其特征是将替换语句与插入语句解耦。 ARJA-e还使用了更细的适应度函数,可以充分利用测试套件中包含的语义信息,有望更好地指导GP的搜索。为了缓解补丁过度拟合,ARJA-e还包括一个后处理工具,可以用于过度拟合检测和补丁排名。我们评估了来自Defects4J的224个真实Java错误的ARJA-e,并将其与最新的修复技术进行了比较。评估结果表明,就排名第一的补丁而言,ARJA-e可以正确修复39个错误,与现有技术相比,可大幅提高性能。此外,我们定性和定量地分析了ARJA-e成分的作用,以证明其有效性和优势。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号