Locating and correcting software faults in executable code slices via evolutionary mutation testing - Andreou, Andreas S.; Yiasemis, Pantelis Stylianos (My University, 2013)
Software testing is an important phase of software development that helps eliminating the possibility of project failure. As software systems get more complicated and larger in size, testing needs to constantly evolve and provide more ‘‘sophisticated’’ techniques, like automatic, self-adaptive mutation testing, targeting at improving the efficiency and effectiveness of the testing phase by handling the increased complexity that leads to increased demands in time and effort. Mutation testing is the procedure of applying a series of operators on correctly functioning programs so as to induce ‘‘faults’’ that correspond to real, common programming errors and then assess the ability of a set of test cases to reveal those errors. We introduce a novel approach for identifying and correcting faults in Java source code with the use of code slicing, mutation testing and Genetic Algorithms. Three different categories of experiments are used to assess the effectiveness of the proposed solution, demonstrating its applicability on a variety of programs and type of errors. The results are quite encouraging suggesting that the approach is able to dynamically detect faults and propose the appropriate corrections.
Keywords: Mutation testing; Fault localization and correction; Genetic algorithms