동시성 단위 검사
일반 단위 검사와 비슷한 형태로 동시 작업을 구성하되 검사 엔진이 실행 순서와 비결정적 선택을 탐색하도록 연결한다. 단순히 실행 시간이나 지연을 늘려 오류를 기다리는 방식과 다르다. 작업이 끝난 뒤 어떤 상태여야 하는지 기대 조건을 명확히 작성해야 한다.
빌드 산출물의 재작성
명령행의 rewrite 과정은 검사와 대상 바이너리의 IL에 실행 제어 훅을 넣는다. 이를 통해 검사 중 동시 실행을 조정한다. 소스에 라이브러리를 참조했다는 사실만으로 이 과정이 끝난 것은 아니다. 검사에 사용한 산출물과 원래 빌드의 대응을 관리하고 적용할 API의 지원 범위를 확인한다.
재현과 탐색의 한계
발견한 오류는 검사 보고의 추적 자료로 반복 재현해 조사할 수 있다. 이는 드물게 나타나는 경쟁 조건의 수정과 회귀 확인에 도움이 된다. 그러나 정한 반복 횟수와 검사 시나리오에서 오류가 없었다고 모든 입력과 환경에 대한 형식 증명이 되는 것은 아니다. 작업 범위와 탐색 설정 및 추적 자료를 함께 보존한다.
관련 문서
Lincheck / Jcstress / TUnit / Loom 동시성 테스트