MUT-APR: MUTation-Based Automated Program Repair Research Tool
Automated program repair (APR) techniques introduced to fix faults through the insertion of new code or modifying existing ones until the program under test passes a given set of test cases called repair tests. MUTation based Automated Program Repair (MUT
- PDF / 1,037,514 Bytes
- 15 Pages / 439.37 x 666.142 pts Page_size
- 105 Downloads / 185 Views
Faculty of Computing and Information Technology, King Abdulaziz University, Jeddah 21589, Kingdom of Saudi Arabia [email protected] 2 Computer Science Department, Colorado State University, Fort Collins, CO 80523-1873, USA [email protected]
Abstract. Automated program repair (APR) techniques introduced to fix faults through the insertion of new code or modifying existing ones until the program under test passes a given set of test cases called repair tests. MUTation based Automated Program Repair (MUT-APR) is a prototype tool built on the top of GenProg to fix binary operator faults in C programs. MUT-APR is a configurable mutation-based APR tool that varies the APR mechanisms and components to find the best combination for a problem under study. The implementation of MUT-APR components is discussed in this paper as well as how the tool can be used to repair faults. Limitations of the existing framework are also discussed. Keywords: Automated Program Repair Binary operators
1
· Mutation-based
Introduction
Automated program repair (APR) refers to techniques that automatically locate and fix faults and promises to dramatically reduce debugging costs. As described by Debroy and Wong [1], and Assiri and Bieman [2,3] this study uses mutations and fault localization technique to automatically fix faults in C programs. APR techniques were introduced to fix simple faults [1–9], real-world faults [10–15], and to fix runtime faults [16–19]. Other researcher focused on fixing concurrent faults [20,21]. Evolutionary computing were applied to fix faults in many programming languages: C [10–13], Java [4,6], and Python [5]. Sumi et al. [22] developed an approach that uses a dataset of source code to fix faults. Code segments from the dataset were used to fix faults. Jiang et al. [23] developed MT-GenProg to extend APR techniques to fix faults for applications without oracles through the use of metamorphic testing. In some of the most recent groundbreaking work in this field, Weimer et al. [10–13] developed the GenProg tool. It applies genetic programming to modify a faulty program until a repaired program, which is a modified version c Springer Nature Switzerland AG 2019 K. Arai et al. (Eds.): FICC 2018, AISC 887, pp. 256–270, 2019. https://doi.org/10.1007/978-3-030-03405-4_17
MUT-APR: MUTation-Based Automated Program Repair Research Tool
257
of the faulty program that passes a set of test cases, is found. GenProg fixed the Microsoft Zune-bug date error which was an error in an infitie loop that triggered on the last date of a leap year [24]. A prototype tool named MUT-APR, which stands for MUTation-based Automated Program Repair, was developed for this study. MUT-APR generated higher quality repairs compared to GenProg when fixing simple binary operator faults. It is an adaptable APR framework incorporating a variety of APR mechanisms and components to evaluate and optimize effectiveness, repair quality, and performance. This prototype, MUT-APR tool, was built by adapting the GenProg tool to repair binary operator faults. A set of s
Data Loading...