생성과 축소의 연결
속성 기반 검사는 여러 입력에서 공통으로 성립해야 하는 규칙을 확인한다. Hedgehog는 입력을 만들 때 축소할 수 있는 구조도 함께 다룬다. 실패 후 데이터를 작게 줄이는 과정에서 생성기가 정한 불변 조건을 유지하도록 구성할 수 있다는 점이 특징이다.
구조가 있는 입력
숫자나 목록의 범위를 지정하고 생성기를 조합해 복합적인 자료를 만들 수 있다. 재귀적인 자료형도 생성 대상이 된다. 범위를 너무 넓히거나 구조를 지나치게 복잡하게 만들면 실패 원인을 파악하기 어려워진다. 실제 프로그램이 받는 입력과 중요한 경계를 반영하도록 생성 규칙을 설계한다.
재현과 활용 범위
명시적인 시드를 사용하면 생성 실행을 결정적으로 재현하는 데 도움이 된다. 다만 코드나 생성 규칙이 바뀌면 시드만 같다고 영구히 동일한 사례가 보장된다고 가정해서는 안 된다. 닷넷 테스트 프레임워크와 함께 사용할 수 있으며, 실패 사례를 고정된 회귀 검사로 남기는 방식도 유용하다. 테스트 통과가 모든 입력의 정확성을 증명하지는 않는다.