Làm công việc R & D, tôi thường thấy mình viết các chương trình có một mức độ ngẫu nhiên lớn trong hành vi của họ. Ví dụ, khi tôi làm việc trong Lập trình di truyền, tôi thường viết các chương trình tạo và thực thi mã nguồn ngẫu nhiên tùy ý.
Một vấn đề với việc kiểm tra mã như vậy là các lỗi thường không liên tục và có thể rất khó tái tạo. Điều này vượt xa việc chỉ đặt một hạt giống ngẫu nhiên cho cùng một giá trị và bắt đầu thực hiện lại.
Ví dụ, mã có thể đọc một tin nhắn từ bộ đệm vòng kernal, và sau đó thực hiện các bước nhảy có điều kiện trên nội dung tin nhắn. Đương nhiên, trạng thái của bộ đệm vòng sẽ thay đổi khi một lần sau đó cố gắng tái tạo vấn đề.
Mặc dù hành vi này là một tính năng, nó có thể kích hoạt mã khác theo những cách không mong muốn và do đó thường phát hiện ra các lỗi mà đơn vị kiểm tra (hoặc người kiểm tra) không tìm thấy.
Có thiết lập thực hành tốt nhất cho các hệ thống thử nghiệm loại này? Nếu vậy, một số tài liệu tham khảo sẽ rất hữu ích. Nếu không, bất kỳ đề nghị khác đều được chào đón!