프로젝트 소개

Hypothesis는 Python용 속성 기반 테스트 라이브러리입니다. 고정된 입력으로 테스트를 작성하는 대신, 개발자는 함수가 처리해야 할 입력 범위를 설명하고, Hypothesis는 그 범위에서 테스트 사례를 무작위로 생성합니다—개발자가 예상하지 못한 경계 사례를 포함합니다. 핵심 워크플로우는 @given 데코레이터와 strategies 모듈을 사용합니다. 예를 들어, 테스트는 @given(st.lists(st.integers()))로 작성하여 정수 리스트를 자동으로 생성하고, 사용자 정의 정렬 함수가 Python의 내장 sorted()와 일치하는지 확인할 수 있습니다. 이 접근 방식은 수동으로 작성된 테스트 사례에서 놓칠 수 있는 버그와 경계 사례를 잡아냅니다. Hypothesis가 실패하는 테스트를 발견하면, 임의의 실패 입력을 보고하지 않습니다. 대신, 실패 사례를 가능한 가장 간단한 형태로 축소하여 디버깅을 훨씬 쉽게 만듭니다. 예를 들어, 정렬 함수가 입력을 잘못 중복 제거하는 경우, Hypothesis는 큰 무작위 리스트 대신 ls=[0, 0]과 같은 최소 실패 사례를 보고합니다. 설치는 pip install hypothesis를 통해 간단합니다. 추가 기능을 위한 선택적 확장 패키지도 제공됩니다. 프로젝트에는 문서, 웹사이트, 그리고 기여자와 사용자를 위한 커뮤니티 섹션이 포함되어 있습니다.