In effect, we are ???cutting away??? (pruning) choices.
Another category of techniques is sampling. Here we focus on selecting a desirable
path to explore, rather than excluding undesired transitions as with pruning.
Exploration via sampling is a stochastic algorithm because it combines random and
directed aspects.
We present exploration via sampling in Chapter 12 in the context of testing.
However, stochastic techniques may be appropriate for design analysis in some
cases where the state space is large.
11.4 Exercises
1. Use the Domain attributes and StateFilter attributes in a feature that makes the
revision control system a finite model program. Which state variables must be
mentioned in your state filter expressions? Which action parameters must be
given finite domains?
2. Use a Domain attribute in a feature to limit the number of users of the revision
control system to two. Then, use state grouping to create two properties that represent
the state of each client. Can you use these properties with state groupings
to eliminate some interleavings? You will also need a property that represents
the state of the repository.
3. Create a scenario for the state repository system that shows all of the ways that
Revert can affect the behavior of the system for one user.
12 Testing Systems
with Complex State
This chapter discusses various approaches to on-the-fly testing of closed systems.
Pages:
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260