Будь- яке тестування програмного забезпечення нагадує "Доказ на прикладі", а не лише тестування одиниць за допомогою такого інструменту, як JUnit. І це не нова мудрість, є цитата Дійкстри з 1960 року, яка говорить по суті те саме:
"Тестування показує наявність, а не відсутність помилок"
(просто замініть слова "шоу" на "докази"). Однак це справедливо і для інструментів, які генерують випадкові дані тесту. Кількість можливих входів для функції реального світу, як правило, більша на порядок, ніж кількість тестових випадків, які можна створити та перевірити на предмет очікуваного результату у віці Всесвіту, незалежно від методу генерування цих випадків, так навіть якщо використовується генераторний інструмент для отримання безлічі тестових даних, немає гарантії не пропустити один тестовий випадок, який міг би виявити певну помилку.
Випадкові тести іноді можуть виявити помилку, яку не помічали тестові приклади, створені вручну. Але в цілому ефективніше ретельно продумувати тести на функцію, що перевіряється, і переконайтесь, що ви отримаєте повний код і покриття гілок з якомога менше тестових випадків. Іноді це є здійсненною стратегією поєднання тестів, створених вручну та випадковим чином. Більше того, використовуючи випадкові тести, потрібно подбати про те, щоб результати можна було відтворити.
Таким чином, створені вручну тести нічим не гірші, ніж випадково генеровані тести, часто зовсім навпаки.