Figure 7 illustrates how Validator is used. First, a program is instrumented with Validator objectives. There are two kinds of Validator objectives, assertions and user-defined coverage targets. An assertion is a boolean C function which should always return a true (i.e., non-zero) value. A user-defined coverage target is a boolean C function which should return a true result at least once during the test process. The actual instrumentation process involves and inserting reactis_assert and reactis_target statements into your code. The purpose of Validator is to take a program and a set of objectives and produce a test suite which triggers assertion violations and covers all user-defined coverage targets.
Once the program has been instrumented, Reactis Validator performs an automated search for a sequence of input values which, when executed, leads to the violation of an assertion. Whenever an assertion violation is found, Validator produces a test that triggers the violation. This test may then be used within the interactive execution environment of Reactis Simulator in order to understand the sequence of events which causes the problem.