Genetic Micro-Programs for Automated Software Testing with Large Path Coverage
This addresses inefficiencies in software testing for developers, though it appears incremental as it builds on existing search-based testing methods.
The paper tackles the problem of lengthy search times in automated software testing by proposing a genetic programming framework that evolves micro-programs to generate input values, aiming for high path coverage without requiring instrumentation for each component.
Ongoing progress in computational intelligence (CI) has led to an increased desire to apply CI techniques for the purpose of improving software engineering processes, particularly software testing. Existing state-of-the-art automated software testing techniques focus on utilising search algorithms to discover input values that achieve high execution path coverage. These algorithms are trained on the same code that they intend to test, requiring instrumentation and lengthy search times to test each software component. This paper outlines a novel genetic programming framework, where the evolved solutions are not input values, but micro-programs that can repeatedly generate input values to efficiently explore a software component's input parameter domain. We also argue that our approach can be generalised such as to be applied to many different software systems, and is thus not specific to merely the particular software component on which it was trained.