Podczas prac badawczo-rozwojowych często piszę programy, których zachowanie jest w pewnym stopniu losowe. Na przykład, kiedy pracuję w programowaniu genetycznym, często piszę programy, które generują i wykonują dowolny losowy kod źródłowy.
Problem z testowaniem takiego kodu polega na tym, że błędy są często przerywane i mogą być bardzo trudne do odtworzenia. Wykracza to poza zwykłe ustawienie losowego ziarna na tę samą wartość i rozpoczęcie wykonywania od nowa.
Na przykład kod może odczytać wiadomość z bufora pierścienia jądra, a następnie wykonać warunkowe skoki na zawartość wiadomości. Oczywiście stan bufora pierścieniowego zmieni się, gdy później spróbujemy odtworzyć problem.
Chociaż takie zachowanie jest cechą , może wyzwalać inny kod w nieoczekiwany sposób, a zatem często ujawnia błędy, których nie znajdują testy jednostkowe (lub testery ludzkie).
Czy istnieją sprawdzone metody testowania tego rodzaju systemów? Jeśli tak, niektóre odniesienia byłyby bardzo pomocne. Jeśli nie, wszelkie inne sugestie są mile widziane!