-Feed random inputs to a program
-Observe whether it behaves “correctly”
execution satisfies given specification
or just does not crash
-Special case of mutation analysis
“The infinite monkey theorem”
Thread 1:
... p = null;
Thread 2:
... if(p != null){ ... p.close(); }