Affiliation:
1. Arizona State University, USA
2. University of Michigan, USA
Abstract
Evolutionary algorithms and related mutation-based methods have been used in software engineering, with recent emphasis on the problem of repairing bugs. In this work, programs are typically not synthesized from a random start. Instead, existing solutions—which may be flawed or inefficient—are taken as starting points, with the evolutionary process searching for useful improvements. This approach, however, introduces a challenge for the search algorithm: what is the optimal number of neutral mutations that should be combined? Too much is likely to introduce errors and break the program while too little hampers the search process, inducing the classic tradeoff between exploration and exploitation.
In the context of software improvement, this work considers MWRepair, an algorithm for enhancing mutation-based searches, which uses online learning to optimize the tradeoff between exploration and exploitation. The aggressiveness parameter governs how many individual mutations should be applied simultaneously to an individual between fitness evaluations. MWRepair is evaluated in the context of automated program repair problems, where the goal is repairing software bugs with minimal human involvement. The article analyzes the search space for automated program repair induced by neutral mutations, finding that the greatest probability of finding successful repairs often occurs when many neutral mutations are applied to the original program. Moreover, repair probability follows a characteristic, unimodal distribution. MWRepair uses online learning to leverage this property, finding both rare and multi-edit repairs to defects in the popular Defects4J benchmark set of buggy Java programs.
Publisher
Association for Computing Machinery (ACM)
Subject
Process Chemistry and Technology,Economic Geology,Fuel Technology
Reference94 articles.
1. SOSRepair: Expressive Semantic Search for Real-World Program Repair
2. E-APR: Mapping the effectiveness of automated program repair techniques;Aleti A.;Empirical Software Engineering,2021
3. A. Arcuri. 2008. On the automation of fixing software bugs. In Proceedings of the International Conference on Software Engineering. ACM, New York, NY, 1003.