Combinatorial testing has been demonstrated to significantly reduce the cost and increase the effectiveness of software and system testing, especially for software systems invloving a number of interacting components or parameters. One of the key elements of combinatorial testing consists in automatically finding a small set of test cases that achieves certain coverage. This book reviews the state-of-the-art in combinatorial testing, with particular emphasis on the automatic generation of test data. It describes the most commonly used approaches in this area - including algebraic construction, greedy methods, evolutionary computation, constraint solving and optimization - and explains major algorithms with examples. In addition, the book lists a number of test generation tools, as well as benchmarks and applications. Addressing a multidisciplinary topic, it will be of particular interest to researchers and professionals in the areas of software testing, combinatorics, constraint solving and evolutionary computation.§