위키득계정 ↗
기술

Hypothesis 테스트 도구

Hypothesis 테스트 도구기술
사용 언어
Python
검사 방식
속성 기반 테스트
입력 정의
전략으로 표현한 값의 범위
실패 관리
축소와 재실행
Hypothesis는 입력의 범위와 항상 성립해야 할 성질을 정해 프로그램을 검사하는 Python 라이브러리다. 여러 입력을 자동으로 생성하며 실패 사례를 줄이고 다시 실행하는 기능으로 오류 분석을 돕는다.

예제 대신 성질을 적기

개별 입력과 답을 하나씩 적는 것에 더해 다양한 입력에서 지켜야 할 성질을 검사한다. 지정한 범위에서 값을 골라 사람이 미처 생각하지 못한 경계 사례도 시험할 수 있다.

전략으로 입력을 표현하기

정수와 목록 같은 값의 전략을 결합해 입력 공간을 표현한다. 테스트가 받아야 할 자료의 종류와 제약을 정하고 생성된 여러 값을 같은 검사에 전달한다.

실패를 작게 만들기

생성한 입력에서 실패를 찾으면 이를 더 간단하게 줄이는 축소를 수행한다. 우연히 복잡한 사례를 발견하는 데서 끝내지 않고 이해하기 쉬운 반례를 찾는 데 목적이 있다.

발견한 사례의 재실행

실패 입력은 데이터베이스에서 다시 실행할 수 있으며 명시적인 예제로도 남길 수 있다. 공식 문서는 항상 검사해야 할 입력은 캐시 성격의 데이터베이스에만 의존하지 말고 명시적으로 추가하도록 설명한다.

관련 문서

델타 디버깅 / Csmith / 소프트웨어 테스트 / Python / 디버깅 / 프로그래밍