SituRepair: Incorporating machine-learning fault class prediction to inform situational multiple fault automatic program repair
Meysam Valueian,
Mojtaba Vahidi-Asl and
Alireza Khalilian
International Journal of Critical Infrastructure Protection, 2022, vol. 37, issue C
Abstract:
Automatic program repair (APR) is an active research area, in which the problem is to discover a solution for a given faulty program that fixes the fault. As yet, a myriad of APR techniques has been proposed in the literature even though the research should go a long way toward establishing APR techniques that are industrially-viable. A current issue is to deal with multiple-fault (MF) programs. Although they are prevalent in real-world settings, automatic repair of MF programs has received less attention in the literature. In this paper, we propose SituRepair, a new APR technique which is developed to fix MF programs; that is, it is intended to discover a solution that fixes multiple faults at a time for a given faulty program. The significance of SituRepair for Critical Infrastructure Protection (CIP) is to provide extensive empirical evidence that APR is viable in CIP software systems. First, we compute 50 static features for each faulty program in a training benchmark where the type and situation of the fault(s) are known. We have considered 151 types of different faults, which have been manually elicited from the training benchmark. The fault types include various single-fault (SF) and MF cases. Then, we use the faulty programs’ static data to build a machine-learning model. Next, for a new faulty program, the model receives as input the values of its static features and predicts the types and situations of the fault(s). Finally, we apply various modifications to the faulty program, according to the types and situations of the fault(s), so that every fault is fixed. SituRepair employs a program's test suite to evaluate the modified variants, as test suites are often readily-available. To investigate the effectiveness of SituRepair, we have conducted extensive experiments on 25,619 C programs within Code4Bench, including 16,274 SF and 9345 MF programs. In the experiments, SituRepair could successfully repair 17,195 programs of which 13,347 cases are SF and 3848 cases are MF programs. We conclude that SituRepair seems to have the potential to be used for multiple fault APR. In addition, SituRepair could repair each program in 9.24 min on average, which is of practical importance. The impact of this work on researchers is to incentivize them to apply further static code features and sophisticated machine-learning models. For practitioners, it can facilitate the debugging tasks yielding higher quality software systems for CIP settings.
Keywords: Automatic program repair; Fault localization; Multiple faults; Patch; Machine learning (search for similar items in EconPapers)
Date: 2022
References: View complete reference list from CitEc
Citations:
Downloads: (external link)
http://www.sciencedirect.com/science/article/pii/S1874548222000178
Full text for ScienceDirect subscribers only
Related works:
This item may be available elsewhere in EconPapers: Search for items with the same title.
Export reference: BibTeX
RIS (EndNote, ProCite, RefMan)
HTML/Text
Persistent link: https://EconPapers.repec.org/RePEc:eee:ijocip:v:37:y:2022:i:c:s1874548222000178
DOI: 10.1016/j.ijcip.2022.100527
Access Statistics for this article
International Journal of Critical Infrastructure Protection is currently edited by Leon Strous
More articles in International Journal of Critical Infrastructure Protection from Elsevier
Bibliographic data for series maintained by Catherine Liu ().