How many different ways are there to color the edges of a triangle using two
colors? Assume that each side of the triangle is initially uncolored and assume
also that colors and triangle edges are abstract values. Check your answer by
writing a model program and using the isomorphism reduction feature of mpv.
16 Reactive Systems
This chapter discusses testing of reactive systems. Reactive systems take inputs as
well as provide outputs in the form of spontaneous reactions. The behavior of a reactive
system, especially when distributed or multithreaded, can be nondeterministic.
Therefore, the main difference compared to testing of closed systems is that some
of the outputs of the implementation under test (IUT) may be outside the control
of the tester; that is, the tester cannot predict what the exact output will be during
testing. There may be multiple possible outputs and the subsequent tester inputs
may depend on those outputs.
Many software systems are reactive, for example many application-level network
protocols and multithreaded APIs are reactive. Such systems may produce spontaneous
outputs like asynchronous events. Factors such as thread scheduling are not
entirely under the control of the tester but may affect the observable behavior. In
these cases, a test suite generated offline may be infeasible, since all of the observable
behaviors would have to be encoded a priori as a decision tree, and the size of such a
decision tree can be very large.
Pages:
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341