Bất kỳ kiểm thử phần mềm nào cũng giống như "Bằng chứng bằng ví dụ", không chỉ kiểm thử đơn vị bằng cách sử dụng một công cụ như JUnit. Và đó không phải là sự khôn ngoan mới, có một trích dẫn từ Dijkstra từ năm 1960, về cơ bản là giống nhau:
"Thử nghiệm cho thấy sự hiện diện, không phải là không có lỗi"
(chỉ cần thay thế các từ "hiển thị" bằng "bằng chứng"). Tuy nhiên, điều này cũng đúng với các công cụ tạo dữ liệu thử nghiệm ngẫu nhiên. Số lượng đầu vào có thể có cho một chức năng trong thế giới thực thường lớn hơn theo thứ tự cường độ so với số lượng trường hợp thử nghiệm mà người ta có thể tạo ra và xác minh dựa trên kết quả mong đợi trong thời đại vũ trụ, độc lập với phương pháp tạo ra các trường hợp đó, vì vậy ngay cả khi một người sử dụng một công cụ tạo để tạo ra nhiều dữ liệu thử nghiệm, không có gì đảm bảo không bỏ sót một trường hợp thử nghiệm nào có thể phát hiện ra một lỗi nhất định.
Kiểm tra ngẫu nhiên đôi khi có thể tiết lộ một lỗi đã bị bỏ qua bởi các trường hợp kiểm tra được tạo thủ công. Nhưng nói chung, sẽ hiệu quả hơn khi kiểm tra cẩn thận các chức năng cần kiểm tra và đảm bảo rằng người ta có được mã đầy đủ và phạm vi bảo hiểm chi nhánh với càng ít trường hợp kiểm tra càng tốt. Đôi khi nó là một chiến lược khả thi để kết hợp các thử nghiệm được tạo thủ công và ngẫu nhiên. Hơn nữa, khi sử dụng các xét nghiệm ngẫu nhiên, người ta phải cẩn thận để có được kết quả theo cách có thể lặp lại.
Vì vậy, các thử nghiệm được tạo thủ công hoàn toàn không tệ hơn các thử nghiệm được tạo ngẫu nhiên, thường hoàn toàn ngược lại.