Qualsiasi test del software è come "Prova per esempio", non solo test delle unità utilizzando uno strumento come JUnit. E questa non è una nuova saggezza, c'è una citazione da Dijkstra del 1960, che dice essenzialmente la stessa:
"Testing shows the presence, not the absence of bugs"
(basta sostituire le parole "mostra" con "prove"). Tuttavia, questo vale anche per gli strumenti che generano dati di test casuali. Il numero di possibili input per una funzione del mondo reale è in genere maggiore di ordini di grandezza rispetto al numero di casi di test che è possibile produrre e verificare rispetto a un risultato previsto entro l'età dell'universo, indipendentemente dal metodo di generazione di tali casi, quindi anche se si utilizza uno strumento generatore per la produzione di molti dati di test, non vi è alcuna garanzia di non perdere l'unico caso di test che potrebbe aver rilevato un determinato errore.
Test casuali possono a volte rivelare un bug che è stato trascurato da casi di test creati manualmente. Ma in generale, è più efficiente realizzare accuratamente test sulla funzione da testare e assicurarsi che si ottenga un codice completo e una copertura di ramo con il minor numero possibile di casi di test. A volte è una strategia fattibile per combinare test manuali e generati casualmente. Inoltre, quando si usano test casuali, bisogna fare attenzione a ottenere i risultati in modo riproducibile.
Quindi i test creati manualmente non sono in alcun modo peggiori dei test generati casualmente, spesso al contrario.