위키득계정 ↗
기술

CppQuickCheck

CppQuickCheck기술
분류
속성 기반 테스트 라이브러리
영향
Haskell QuickCheck
대상 언어
C플러스플러스
기능 예
생성기 조합과 입력 축소
CppQuickCheck는 C플러스플러스 속성 기반 테스트 라이브러리다. 속성으로 기대 동작을 기술하고 생성한 입력에서 이를 검사하며 실패 사례를 단순화한다.

속성을 코드로 표현

사용자가 코드의 기대 동작을 C플러스플러스의 속성으로 작성한다. 라이브러리는 여러 무작위 입력으로 속성이 깨지는 경우를 찾는다. 입력 분포와 속성 자체가 부적절하면 많은 검사를 통과하더라도 중요한 오류를 놓칠 수 있다.

생성기를 조합하기

여러 생성기를 결합해 사용자 정의 타입과 조건에 맞는 자료를 만들 수 있다. 이는 고정 예제를 반복하는 방식과 다르게 입력 범위를 넓히는 데 쓰인다. 유효한 입력을 만드는 일과 드문 경계 조건을 충분히 포함하는 일은 구분해야 한다.

축소와 재현

실패 입력을 줄여 더 간단한 반례를 얻는 기능을 제공한다. 축소 결과에서도 같은 속성이 실패하는지 확인한다. 반례와 실행 설정을 보관해 수정 전후에 재현하고 필요한 경우 고정된 회귀 테스트로 함께 유지한다.

관련 문서

RapidCheck / Catch2 / GoogleTest / Cvise