속성 함수와 입력 생성
검사할 속성을 함수로 정의하면 라이브러리가 입력을 생성해 반복 호출한다. 정수와 문자열 및 목록과 튜플 등 여러 형식의 생성 규칙을 제공한다. 사용자 정의 자료형에는 Arbitrary를 구현해 생성 방식을 지정할 수 있다.
실패와 반례의 축소
속성을 만족하지 않거나 실행 중 오류가 발생하면 실패 입력을 더 작은 값으로 줄인다. 복잡한 입력에서 나타난 문제를 단순한 반례로 살피도록 돕는다. 매크로와 별도 속성 매크로를 이용해 테스트 함수에 연결할 수 있다.
조건부 입력과 탐색 한계
속성의 전제에 맞지 않는 입력은 TestResult로 버릴 수 있다. 버린 입력을 대신할 값을 다시 찾지만 조건에 맞는 입력이 드물면 검사 수가 줄어들 수 있다. 무작위 탐색이므로 모든 오류를 반드시 찾아내는 검사는 아니다.
관련 문서
Proptest / Loom 동시성 테스트 / Rust / 단위 테스트 / 소프트웨어 테스트 / 디버깅