It was written assuming that you were able to control the inputs and observe the outputs, something typically found on a chip or board tester. Tests that do not or cannot use a tester are more complicated but follow the same method of having a fault affect the output in a way that can be observed. If a diagnostic is to be effective it is going to have to take into consideration most fault cases. The tests I have worked with and written make the assumption of a single fault occurring. This simplifies the possibilities with a good probability of detecting multiple faults when they occur.
Testing is simplified by the use of circuits to aid in testing the hardware.
As hardware becomes more complex, testing needs to be considered when the hardware is being designed or else the test designer will have a difficult time writing tests and the tests will not be as effective as they could be. Two pipes are too many. Earthquakes could make things quite difficult. RNG's are developed to have some basic statistical properties, such as little or no autocorrelation, a uniform distribution similar to an idealized sequence of uniform random numbers, unpredictable without a fair bit of work, non-repeating over very long sequences. Often these sequences are called pseudo-random.