The main principle of random testing consists in applying a random test sequence S to the circuit under test (CUT) and in verifying that the response R(S) is the expected one. Various implementations of this verification will be presented in Section 5.1.

The test sequence which is applied to the CUT is random, but it is not “anything”: it must verify that the circuit behaves as it should be according to the specified behavior. All the specified cases should be tested. However, on the other hand, only the specified cases should be tested. This is explained and illustrated in Section 5.2.

An interesting property of random testing is that the probability of detecting a fault is an increasing function of the test length, tending to 1 for all the faults which are non-evasive. The conditions leading to this property, and some other theoretical results are presented in Section 5.3.

For a combinational fault, the probability that the jth vector of the input sequence produces a faulty output is independent from detection by the (j-1)th vector. This is not true for a sequential fault because there is some “memory effect”. This is explained in Section 5.4.