R & D 작업을 할 때, 나는 종종 자신의 행동에 어느 정도의 무작위성을 가진 프로그램을 작성하는 것을 발견합니다. 예를 들어, 유전자 프로그래밍에서 작업 할 때 임의의 임의 소스 코드를 생성하고 실행하는 프로그램을 작성하는 경우가 많습니다.
이러한 코드를 테스트 할 때 발생하는 문제는 버그가 간헐적으로 발생하고 재현하기가 매우 어렵다는 것입니다. 이것은 임의의 시드를 동일한 값으로 설정하고 실행을 시작하는 것 이상입니다.
예를 들어, 코드는 커널 링 버퍼에서 메시지를 읽은 다음 메시지 내용을 조건부로 점프 할 수 있습니다. 당연히 링 버퍼의 상태는 나중에 문제를 재현하려고 할 때 변경 될 것입니다.
이 동작은 기능 이지만 예기치 않은 방식으로 다른 코드를 트리거 할 수 있으므로 단위 테스트 (또는 사람 테스터)가 찾지 못하는 버그가 종종 드러납니다.
이런 종류의 테스트 시스템에 대한 모범 사례가 있습니까? 그렇다면 일부 참고 문헌이 매우 도움이 될 것입니다. 그렇지 않은 경우 다른 제안을 환영합니다!