The design and implementation of correct reactive systems is one of the major challenges of information technology. More than ever before modern society has become critically dependent upon applications of such systems. Important application areas include telematic systems, such as communication protocols and services, process control systems, and embedded-software systems, ranging from aircraft control to consumer products like television sets. Most applications are critical in one or more aspects, e.g. in the context of safety, economy, ecology etc.
Testing is an indispensable technique for the validation of reactive systems.
Although other tool supported methods, such as simulation, model checking and verification by theorem proving, are increasingly being applied to assess the correctness of system designs, testing remains the practically most widely used validation technique. On the one hand, the great growth of reactive system applications and with that the growing need to assess their correctness, has brought about a considerable practical interest in the improvement of their testing procedures. On the other hand, academic researchers, who formerly regarded testing as an inferior and superfluous validation method, have begun to investigate the use of formal methods and tools to specify, generate and implement tests. This is of great practical interest, as most test suites for reactive systems are still being produced on the basis of ill-understood ad hoc procedures. As a result the production and maintenance of test suites have become very expensive activities, presenting a considerable practical bottleneck.