Another classification of tester actions that is commonly used in
on-the-fly testing is to mark certain actions as cleanup actions. The purpose of a
cleanup action is to help to drive the model program into an accepting state to finish
off a test run. After the desired number of steps has been reached in a test run, but
the strategy is not yet in an accepting state, then only cleanup actions are enabled.
This part of the test execution algorithm has been omitted in Figure 12.7. In the bag
example, Delete should be marked as a cleanup action symbol, but not Add.
12.5.4 More on strategies
Implementing a particular strategy is the most flexible way of creating a customized
on-the-fly testing algorithm.
Sampling. The technique that was illustrated in Section 12.4 uses a particular
sampling algorithm. There are many different ways to implement similar algorithms
that may, for example, keep more tester state and use other criteria besides rewards
to select actions. One may, for example, assign penalties to certain actions or action
paths in order to avoid failures that have already been discovered. This is useful if
on-the-fly testing is used as a stress testing tool that may run millions of test runs.
In that case it is desirable not to run into the same error over and over again.
Using action weights to match operational profiles. Another technique that can
be implemented with a custom strategy is the use of decrementing action weights.
Pages:
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292