Internal actions. Tester actions are generally divided into two categories: the actions
that are related to an operation that the IUT must perform, and the actions
that are not related to any such operation. The latter case arises when the action is
used for making internal choices in the model or scenario. Such actions are called
internal. An internal action is not executed in the stepper, which can be seen in the
algorithm in Figure 12.7. A typical case where internal actions arise are in selecting
a test case in a test suite. Suppose, for example, that you have the following two test
cases for the bag example. The first test case is to add one "b" and then delete one
Systems with Complex State 217
"b". The second test case is to add two "b"??™s and then delete two "b"??™s. This is an
FSM that represents these two test cases:
FSM(0,AcceptingStates(S(1,2),S(2,4)),
Transitions(t(0,Test(1),S(1,0)), t(S(1,0),Add("b"),S(1,1)),
t(S(1,1),Delete("b"),S(1,2)),
t(0,Test(2),S(2,0)), t(S(2,0),Add("b"),S(2,1)),
t(S(2,1),Add("b"),S(2,2)),
t(S(2,2),Delete("b"),S(2,3)),
t(S(2,3),Delete("b"),S(2,4))))
In this case Test is an internal action symbol. The purpose of the Test(k) action is to
select the test case that performs k add operations followed by k delete operations.
The action Test(k) is itself not related to any operation that the IUT must perform.
Cleanup actions.
Pages:
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291