Method calls are controllable actions, while events (including message
arrival and user??™s input such as keystrokes and mouse clicks) are observable actions.
Observable actions are usually nondeterministic: it is not possible for the tester
to predict which of several possible observable actions will happen next. We can
classify systems by their controllability and determinism. Closed systems are fully
controllable and deterministic. Reactive systems have both controllable and observable
actions. Some systems are uncontrollable, with only observable actions; a log
file is a simple example of such a system.
Some test tools can only handle closed systems. Such tools can be used to test
reactive systems by creating a sandbox where normally observable actions are made
controllable by the test harness (which can be made to generate messages or events
on demand). But a sandbox is not realistic and is not always technically feasible.
The ct tool can accommodate observable events, which means, for example, that it
can test an IUT at one end of a network connection. On-the-fly testing works well
for reactive systems because it can deal efficiently with nondeterminism.
1.4 Model programs in the software process
Model programs can change the way we develop software. We can begin checking
and testing development products earlier in the project.
To see how this works, it is helpful to represent software project activities and
schedule in a V-diagram (Figure 1.
Pages:
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36