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 i...

Full description

Saved in:
Bibliographic Details
Main Authors: LE DINH XUAN BACH, LE BUI TIEN DUY, David LO
Format: text
Language:English
Published: Institutional Knowledge at Singapore Management University 2015
Subjects:
Online Access:https://ink.library.smu.edu.sg/sis_research/3091
https://ink.library.smu.edu.sg/context/sis_research/article/4091/viewcontent/Should_fixing_these_failures_be_delegated_to_automated_program_repair.pdf
Tags: Add Tag
No Tags, Be the first to tag this record!
Institution: Singapore Management University
Language: English
id sg-smu-ink.sis_research-4091
record_format dspace
spelling sg-smu-ink.sis_research-40912017-03-31T07:42:56Z Should fixing these failures be delegated to automated program repair? LE DINH XUAN BACH, LE BUI TIEN DUY, David LO, 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-measure, and AUC of 72%, 74%, 73%, and 76% respectively. 2015-11-01T07:00:00Z text application/pdf https://ink.library.smu.edu.sg/sis_research/3091 info:doi/10.1109/ISSRE.2015.7381836 https://ink.library.smu.edu.sg/context/sis_research/article/4091/viewcontent/Should_fixing_these_failures_be_delegated_to_automated_program_repair.pdf http://creativecommons.org/licenses/by-nc-nd/4.0/ Research Collection School Of Computing and Information Systems eng Institutional Knowledge at Singapore Management University Automated Program Repair Classification Techniques Effective Feature Design Effectiveness Prediction Software Engineering
institution Singapore Management University
building SMU Libraries
continent Asia
country Singapore
Singapore
content_provider SMU Libraries
collection InK@SMU
language English
topic Automated Program Repair
Classification Techniques
Effective Feature Design
Effectiveness Prediction
Software Engineering
spellingShingle Automated Program Repair
Classification Techniques
Effective Feature Design
Effectiveness Prediction
Software Engineering
LE DINH XUAN BACH,
LE BUI TIEN DUY,
David LO,
Should fixing these failures be delegated to automated program repair?
description 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-measure, and AUC of 72%, 74%, 73%, and 76% respectively.
format text
author LE DINH XUAN BACH,
LE BUI TIEN DUY,
David LO,
author_facet LE DINH XUAN BACH,
LE BUI TIEN DUY,
David LO,
author_sort LE DINH XUAN BACH,
title Should fixing these failures be delegated to automated program repair?
title_short Should fixing these failures be delegated to automated program repair?
title_full Should fixing these failures be delegated to automated program repair?
title_fullStr Should fixing these failures be delegated to automated program repair?
title_full_unstemmed Should fixing these failures be delegated to automated program repair?
title_sort should fixing these failures be delegated to automated program repair?
publisher Institutional Knowledge at Singapore Management University
publishDate 2015
url https://ink.library.smu.edu.sg/sis_research/3091
https://ink.library.smu.edu.sg/context/sis_research/article/4091/viewcontent/Should_fixing_these_failures_be_delegated_to_automated_program_repair.pdf
_version_ 1770572806793199616