Random pattern testing has been a common practice in industry for a long time. It was recognized quite early in the development of test generation strategies that there is a lot to be gained if a short random test precedes the long and laborious deterministic test. The rationale behind this was based on experience gained while working with deterministic tests. It was found that it is quite easy to detect the first, say, 70% of the possible single stuck-at faults, and much more difficult to close up the gap to 100%. Thus, in order to catch the first 70% of the single fault population, it was advantageous to utilize a random test, which was less costly to generate. The deterministic test, which would follow this random test, would pick up the majority of the rest of the faults.
A random test is defined as a random selection of input vectors. The input vectors may or may not be equally likely. A random test is said to be uniform if all input vectors are equally probable, and said to be biased otherwise. It is important to note that no test is truly random. The reason is that no ideal random number generator exists. However, it is quite easy to generate a pseudorandom test, which is an approximation to the truly random one. As shown in Chapters 3 and