Random testing

Random testing for hardware was first examined by Melvin Breuer in 1971 and initial effort to evaluate its effectiveness was done by Pratima and Vishwani Agrawal in 1975.

The book also contained the development of a simple formula for estimating the number of tests n that are needed to have confidence at least 1-1/n in a failure rate of no larger than 1/n.

[1]A test oracle is an instrument for verifying whether the outcomes match the program specification or not.

.NET or various extensions of Java like JML, CoFoJa...) contracts act as natural oracles and the approach has been applied successfully.

[5] In particular, random testing finds more bugs than manual inspections or user reports (albeit different ones).