Abstract
This chapter builds the foundation of software testing techniques by
classifying the various testing approaches and testing coverage criteria. It gradually
advances in the concepts and process of Mutation Testing and its application areas.
Mutation testing has been applied at both the source code level and specification level
of the software under test. Mutation testing, when applied to the source code, is named
as Program Mutation. Similarly, when applied to the specifications, it is named as
Specification Mutation. The relevant Mutation Testing tools available for different
programming languages for both program and Specification Mutations are hereby
listed. Owing to the high cost incurred in applying Mutation Testing to industrial needs,
the on-going endeavors of the researchers in the area are elaborated here. Applying
nature-inspired algorithms along with Mutation Testing for data
generation/selection/minimization is an upcoming area of research. Search based
Mutation Testing (SBMT) applies evolutionary techniques like Genetic Algorithms or
other metaheuristic approaches for automating the tasks associated with mutation
testing, which otherwise requires a lot of human effort, thus, making it a practical
approach. This chapter concludes by giving the seminal recent advancements in the
area.
Keywords: Generation/Selection/Minimization of test data, Metaheuristics, Mutation Testing, Nature–Inspired Algorithms.