This book teaches model-based analysis and model-based testing, with important new ways to write and analyze software specifications and designs, generate test cases, and check the results of test runs. These methods increase the automation in each of these steps, making them more timely, more thorough, and more effective. Using a familiar programming language, testers and analysts will learn to write models that describe how a program is supposed to behave. The authors work through several realistic case studies in depth and detail, using a toolkit built on the C# language and the .NET framework. Readers can also apply the methods in analyzing and testing systems in many other languages and frameworks. Intended for professional software developers including testers, and for university students, this book is suitable for courses on software engineering, testing, specification, or applications of formal methods.
Jonathan Jacky is a research scientist at the University of Washington in Seattle. He is experienced in embedded control systems, safety-critical systems, signal processing, and scientific computing. He has taught at the Evergreen State College and has been a visiting researcher at Microsoft Research. He is the author of The Way of Z: Practical Programming with Formal Methods. Colin Campbell has worked on model-based testing and analysis techniques for a number of years in industry, including Microsoft Research. He is a principal of the consulting firm Modeled Computation LLC in Seattle (www.modeled-computation.com). His current interests include design analysis, the modeling of reactive and distributed systems, and the integration of components in large systems. Margus Veanes is a researcher in the Foundations of Software Engineering (FSE) group at Microsoft Research and a co-designer and co-developer of the Spec Explorer tool. Wolfram Schulte is a research area manager at Microsoft Research, managing the FSE group, the Programming Languages and Methods (PLM) group, and the Software Design and Implementation (SDI) group.
Colin Campbell, Jonathan Jacky, Margus Veanes, Wolfram Schulte