위키득계정 ↗
기술

Gopter

Gopter기술
분야
속성 기반 테스트
언어
Go
핵심
생성기와 축소
확장
상태와 명령 기반 검사
Gopter는 Go 프로그램의 성질을 생성 입력으로 검사하는 라이브러리다. 생성기와 반례 축소, 상태 기반 검사 도우미를 제공하며 ScalaCheck와 QuickCheck의 접근을 Go에 적용한다.

예시 대신 관계 확인하기

입력과 정답을 몇 개씩 나열하는 방식으로는 예상하지 못한 조합을 놓칠 수 있다. Gopter에서는 여러 입력에서 유지되어야 할 성질을 함수로 표현하고 생성기를 연결한다. 생성한 표본이 성질을 깨뜨리면 입력과 기대 조건을 함께 조사한다. 잘못된 전제가 있는 성질도 실패의 원인이 될 수 있다.

생성 범위와 반례 축소

일반적인 자료형을 위한 생성기와 조합 도구를 제공하며 정규식 조건에 맞는 입력도 만들 수 있다. 생성기는 실패 사례를 줄이는 기능과 연결된다. 축소 결과는 문제를 이해하는 데 도움이 되지만 실제 도메인의 유효 조건이 유지되는지도 살펴봐야 한다. 생성 범위가 지나치게 좁으면 중요한 경계가 검사에서 빠질 수 있다.

상태를 갖는 프로그램

명령을 통해 상태가 변하는 프로그램을 검사하는 보조 구성도 제공한다. 단일 함수의 성질과 여러 동작이 이어지는 모델의 성질은 구분해서 설계한다. GoConvey 검사와 연결하는 도우미도 있지만 기본 테스트 실행과 속성 검사의 역할은 다르다. 발견한 결함은 입력과 실행 조건을 남기고 구체적인 회귀 검사로 보완하면 재발 확인에 유용하다.

관련 문서

Rapid Go 검사 도구 / ScalaCheck / QuickTheories / FsCheck