-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();
}