Title :
An Exploratory Study of Higher Order Mutation Testing in Aspect-Oriented Programming
Author :
Omar, Elmahdi ; Ghosh, Sudip
Author_Institution :
Dept. of Comput. Sci., Colorado State Univ., Fort Collins, CO, USA
Abstract :
Higher order mutation testing is a relatively new area of research. Researchers have claimed that higher order mutants have the potential to increase test effectiveness and reduce test effort. However, these claims have not been evaluated in the context of the aspect-oriented programming paradigm, which introduces new and unique concepts and constructs, and consequently new testing challenges. We present an exploratory study of higher order mutation testing in the context of AspectJ, which is the most widely used aspect-oriented programming language. Based on published fault-models, we propose four approaches to constructing higher order mutants in AspectJ programs. We evaluate the approaches in terms of their ability to create higher order mutants that result in higher test effectiveness and lower test effort compared to first order mutants. The approaches (1) insert two faults in a single base class or two faults in a single aspect, (2) insert two faults in two different base classes, (3) insert two faults in two different aspects, and (4)~insert one fault in a base class and one in an aspect. We developed a prototype tool that automates the process of generating, compiling, and executing higher order mutants. The first approach produced a larger percentage of higher order mutants that were harder to kill than the constituent first order mutants as compared to the last three approaches. The first approach lowered the total number of mutants to be compiled and executed to a greater extent than the last three approaches. The last three approaches produced a lower density of equivalent mutants but the absolute number of equivalent mutants is greater for higher order mutants than for first order mutants.
Keywords :
aspect-oriented programming; program compilers; program testing; software fault tolerance; AspectJ programs; aspect-oriented programming language; equivalent mutant density; fault-models; first order mutants; higher order mutant execution; higher order mutation testing; higher test effectiveness; single base class; test effort reduction; Context; Data mining; Java; Programming; Syntactics; Testing; Weaving; AjMutator; Higher order mutation testing; MuJava; aspect-oriented programming; equivalent mutant; test effort;
Conference_Titel :
Software Reliability Engineering (ISSRE), 2012 IEEE 23rd International Symposium on
Conference_Location :
Dallas, TX
Print_ISBN :
978-1-4673-4638-2
DOI :
10.1109/ISSRE.2012.6