Mutation Testing

Authored by: Robert M. Hierons , Mercedes G. Merayo , Manuel Núñez

Encyclopedia of Software Engineering

Print publication date:  November  2010
Online publication date:  November  2010

Print ISBN: 9781420059779
eBook ISBN: 9781351249270
Adobe ISBN:


 Download Chapter



Testing involves applying a test suite, which contains test cases, to the system under test (SUT) with the aim of finding faults. Since the number of possible test cases is vast and sometimes infinite, there are test criteria that state what it means for a test suite to be sufficient (adequate). The tester then aims to produce a test suite of practical size that satisfies the test criterion being used. Mutation testing is an approach to defining test suite adequacy that attempts to assess the ability of a test suite to distinguish between correct programs and incorrect programs. It does this by using mutation operators, which simulate faults, to build variants of the SUT called mutants. A test case t distinguishes between the SUT p and a mutant m if p and m produce different outputs when tested with t. The adequacy of a test suite is then judged by determining how many of the mutants it distinguishes from the SUT, the underlying idea being that a test suite that is good at distinguishing between the SUT and its mutants is likely to be good at finding faults in the SUT. This entry describes mutation testing, the directions in which it has developed, and some of the main challenges.

Search for more...
Back to top

Use of cookies on this website

We are using cookies to provide statistics that help us give you the best experience of our site. You can find out more in our Privacy Policy. By continuing to use the site you are agreeing to our use of cookies.