위키득계정 ↗
기술

RapidCheck

RapidCheck기술
분류
속성 기반 테스트
대상 언어
C플러스플러스
핵심 구성
속성과 입력 생성기
실패 분석
반례 축소
RapidCheck는 C플러스플러스 속성 기반 테스트 프레임워크다. 코드가 만족해야 할 조건을 정의하면 무작위 입력으로 반례를 찾고 실패 입력을 줄이는 작업을 수행한다.

예시 대신 성질 정의

특정 입력의 정답만 나열하기보다 전제 조건 아래에서 항상 성립해야 할 관계를 검사한다. 생성기가 다양한 값을 만들고 속성이 깨지는 경우를 탐색한다. 무작위로 많은 검사를 수행해도 모든 가능한 입력에 대한 수학적 증명이 되는 것은 아니다.

실패를 작게 만들기

반례를 찾으면 속성이 여전히 실패하는 더 작은 입력을 탐색한다. 무엇이 작은지는 타입과 축소 방식에 따라 달라진다. 축소된 결과는 원인을 이해하는 데 도움이 되지만 항상 전역적으로 가장 작은 반례라고 단정할 수는 없다.

사용자 정의 생성과 상태

표준 컨테이너 외에 생성기 조합으로 프로젝트의 자료를 만들 수 있다. 명령을 이용한 상태 기반 검사와 다른 테스트 프레임워크 통합도 제공한다. 의미 없는 입력만 반복하지 않도록 전제와 생성 범위가 실제 검사 목적을 나타내는지 확인한다.

관련 문서

CppQuickCheck / GoogleTest / Catch2 / C-Reduce