Wolfram Schulte thanks Wolfgang Grieskamp and Nikolai Tillmann, who designed
and implemented the Abstract State Machine Language and substantial parts
of Spec Explorer 2004; both tools are predecessors of the work described here. He
also wants to express his gratitude, to many testers, developers, and architects in
Microsoft.Without their willingness to try new research ideas, their passion to push
the limits of model-based testing and analysis, and their undaunted trust in his and
his coauthors??™ capabilities, this book would not exist ??“ thank you.
Part I
Overview
1 Describe, Analyze,
Test
Creating software is a notoriously error-prone activity. If the errors might have
serious consequences, we must check the product in some systematic way. Every
project uses testing: check the code by executing it. Some projects also inspect
code, or use static analysis tools to check code without executing it. Finding the
best balance among these assurance methods, and the best techniques and tools
for each, is an active area of research and controversy. Each approach has its own
strengths and weaknesses.1
The unique strength of testing arises because it actually executes the code in an
environment similar to where it will be used, so it checks all of the assumptions that
the developers made about the operating environment and the development tools.
But testing is always incomplete, so we have to use other assurance methods also.
Pages:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26