UCL Discovery
UCL home » Library Services » Electronic resources » UCL Discovery

ReFixar: Multi-version Reasoning for Automated Repair of Regression Errors

Le, XBD; Le, QL; (2022) ReFixar: Multi-version Reasoning for Automated Repair of Regression Errors. In: Proceedings of the 2021 IEEE 32nd International Symposium on Software Reliability Engineering (ISSRE). (pp. pp. 162-172). IEEE: Wuhan, China. Green open access

[thumbnail of Regression_Repair (1).pdf]
Preview
Text
Regression_Repair (1).pdf - Accepted Version

Download (278kB) | Preview

Abstract

Software programs evolve naturally as part of the ever-changing customer needs and fast-paced market. Software evolution, however, often introduces regression bugs, which un-duly break previously working functionalities of the software. To repair regression bugs, one needs to know when and where a bug emerged from, e.g., the bug-inducing code changes, to narrow down the search space. Unfortunately, existing state-of-the-art automated program repair (APR) techniques have not yet fully exploited this information, rendering them less efficient and effective to navigate through a potentially large search space containing many plausible but incorrect solutions. In this work, we revisit APR on repairing regression errors in Java programs. We empirically show that existing state-of-the-art APR techniques do not perform well on regression bugs due to their algorithm design and lack of knowledge on bug inducing changes. We subsequently present ReFixar, a novel repair technique that leverages software evolution history to generate high quality patches for Java regression bugs. The key novelty that empowers ReFixar to more efficiently and effectively traverse the search space is two-fold: (1) A systematic way for multi-version reasoning to capture how a software evolves through its history, and (2) A novel search algorithm over a set of generic repair templates, derived from the principle of incorrectness logic and informed by both past bug fixes and their bug-inducing code changes; this enables ReFixar to achieve a balance of both genericity and specificity, i.e., generic common fix patterns of bugs and their specific contexts. We compare ReFixar against the state-of-the-art APR techniques on a data set of 51 real regression bugs from 28 large real-world programs. Experiments show that ReFixar significantly outperforms the best baseline by a large margin, i.e., ReFixar can fix correctly 24 bugs while the best baseline can only correctly fix 9 bugs.

Type: Proceedings paper
Title: ReFixar: Multi-version Reasoning for Automated Repair of Regression Errors
Event: 2021 IEEE 32nd International Symposium on Software Reliability Engineering (ISSRE)
Dates: 25 Oct 2021 - 28 Oct 2021
ISBN-13: 9781665425872
Open access status: An open access version is available from UCL Discovery
DOI: 10.1109/ISSRE52982.2021.00028
Publisher version: https://doi.org/10.1109/ISSRE52982.2021.00028
Language: English
Additional information: This version is the author accepted manuscript. For information on re-use, please refer to the publisher’s terms and conditions.
Keywords: Java, Codes, Target tracking, Systematics, Computer bugs, Software algorithms, Maintenance engineering
UCL classification: UCL > Provost and Vice Provost Offices > UCL BEAMS > Faculty of Engineering Science
UCL > Provost and Vice Provost Offices > UCL BEAMS > Faculty of Engineering Science > Dept of Computer Science
UCL > Provost and Vice Provost Offices > UCL BEAMS
UCL
URI: https://discovery.ucl.ac.uk/id/eprint/10146154
Downloads since deposit
138Downloads
Download activity - last month
Download activity - last 12 months
Downloads by country - last 12 months

Archive Staff Only

View Item View Item