首页> 外文会议>IEEE International Symposium on Software Reliability Engineering >Should fixing these failures be delegated to automated program repair?
【24h】

Should fixing these failures be delegated to automated program repair?

机译:解决这些故障是否应委托自动程序修复?

获取原文

摘要

Program repair constitutes one of the major components of software maintenance that usually incurs a significant cost in software production. Automated program repair is supposed to help in reducing the software maintenance cost by automatically fixing software defects. Despite the recent advances in automated software repair, it is still very costly to wait for repair tools to produce valid repairs of defects. This paper addresses the following question: "Will an automated program repair technique find a repair for a defect within a reasonable time?". To answer this question, we build an oracle that can predict whether fixing a failure should be delegated to an automated repair technique. If the repair technique is predicted to take too long to produce a repair, the bug fixing process should rather be assigned to a developer or other appropriate techniques available. Our oracle is built for genetic-programming-based automated program repair approaches, which have recently received considerable attention due to their capability to automatically fix real-world bugs. These approaches search for a valid repair over a large number of variants that are syntactically mutated from the original program. At an early stage of running a repair tool, we extract a number of features that are potentially related to the effectiveness of the tool. Leveraging advances in machine learning, we process the values of these features to learn a discriminative model that is able to predict whether continuing a genetic programming search will lead to a repair within a desired time limit. We perform experiments to evaluate the ability of our approach to predict the effectiveness of GenProg, a well-known genetic-programming-based automated program repair approach, in fixing 105 real bugs. Our experiments show that our approach can identify effective cases from ineffective ones (i.e., bugs for which GenProg cannot produce correct fixes after a long period of time) with a precision, recall, F-- easure, and AUC of 72%, 74%, 73%, and 76% respectively.
机译:程序修复是软件维护的主要组成部分之一,通常会在软件生产中产生大量成本。自动程序修复应该通过自动修复软件缺陷来帮助降低软件维护成本。尽管最近在自动化软件修复方面取得了进步,但是等待修复工具进行缺陷的有效修复仍然非常昂贵。本文解决了以下问题:“自动程序修复技术会在合理的时间内找到缺陷的修复方法吗?”。为了回答这个问题,我们构建了一个可以预测是否应该将修复故障委派给自动修复技术的预言机。如果预计修复技术将花费很长时间才能进行修复,则应该将错误修复过程分配给开发人员或其他可用的适当技术。我们的oracle是为基于基因编程的自动程序修复方法而构建的,由于其能够自动修复实际错误,这些方法最近受到了广泛的关注。这些方法在语法上从原始程序变异的大量变体中寻找有效的修复方法。在运行修复工具的早期阶段,我们提取了许多可能与该工具的有效性相关的功能。利用机器学习的进步,我们处理这些功能的值,以学习区分模型,该模型能够预测继续进行遗传编程搜索是否会在期望的时限内导致修复。我们进行实验以评估我们的方法预测GenProg(一种基于基因编程的自动程序修复方法)在修复105个实际错误中的有效性的能力。我们的实验表明,我们的方法可以从无效案例中识别出有效案例(即,GenProg在长时间内无法针对其进行修复的错误),其准确率,召回率,F-确定性和AUC分别为72%,74% ,分别为73%和76%。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号