To see the effect of the wait and time-out actions, execute ct with the above
arguments and add the option /fsm:Wait20 in order to compose the main model
program with Wait20. The following is a possible output from this execution:
TestResult(0, Verdict("Failure"),
"Action symbol ??™Timeout??™ not enabled in the model",
Trace(
ReqSetup(0, 3),
Wait(20),
Time-Out()
)
)
Reset failed.
The specified observation timeout is too small. After the first test case fails, reset
also fails because the implementation is still busy. (See the defintion of Reset in
Figure 16.5.)
16.5.2 Adaptive strategies
Recall the discussion on strategies from Chapter 12. All the techiques discussed
there apply in the presence of observable actions as well. For example, execution of
ct in the previous section used the default strategy that selects controllable actions
randomly.
With observable actions one can do more. Note that each time an observable
action is consumed in the algorithm in Figure 16.6 the strategy is told to execute that
Advanced Topics 271
action. When executing an action, the strategy may record history. The selection of
actions is always performed on controllable actions, because the strategy is really
the tester strategy. By knowing that certain actions are observable, the strategy can
learn from the behavior of the IUT and use that knowledge to improve its selection
of controllable actions.
Pages:
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356