위키득계정 ↗
기술

QuickCheck Rust

QuickCheck Rust기술
주요 언어
Rust
테스트 방식
속성 기반 테스트
입력 정의
Arbitrary 트레이트
실패 분석
반례 축소
QuickCheck Rust는 무작위 입력으로 속성 함수를 검사하는 테스트 라이브러리다. 실패한 입력을 더 작은 반례로 축소하며 기본 자료형의 생성과 사용자 정의 입력 생성을 지원한다.

속성 함수와 입력 생성

검사할 속성을 함수로 정의하면 라이브러리가 입력을 생성해 반복 호출한다. 정수와 문자열 및 목록과 튜플 등 여러 형식의 생성 규칙을 제공한다. 사용자 정의 자료형에는 Arbitrary를 구현해 생성 방식을 지정할 수 있다.

실패와 반례의 축소

속성을 만족하지 않거나 실행 중 오류가 발생하면 실패 입력을 더 작은 값으로 줄인다. 복잡한 입력에서 나타난 문제를 단순한 반례로 살피도록 돕는다. 매크로와 별도 속성 매크로를 이용해 테스트 함수에 연결할 수 있다.

조건부 입력과 탐색 한계

속성의 전제에 맞지 않는 입력은 TestResult로 버릴 수 있다. 버린 입력을 대신할 값을 다시 찾지만 조건에 맞는 입력이 드물면 검사 수가 줄어들 수 있다. 무작위 탐색이므로 모든 오류를 반드시 찾아내는 검사는 아니다.

관련 문서

Proptest / Loom 동시성 테스트 / Rust / 단위 테스트 / 소프트웨어 테스트 / 디버깅