같은 가정으로 만든 테스트는 같은 오류를 반복한다
Property, contract, metamorphic, differential test와 hermetic fixture
AI에게 코드와 테스트를 동시에 맡기면 구현의 오해가 expected value에도 복제될 수 있습니다. 도메인 불변식, consumer contract, 입력 변환 전후 관계, 신뢰할 reference implementation을 이용해 독립된 oracle을 만듭니다.
| Oracle | 검증 대상 | 예시 |
|---|---|---|
| Property | 항상 지켜야 할 불변식 | 권한 밖 data 0건 |
| Contract | consumer·provider 경계 | schema·error·version |
| Metamorphic | 입력 변환과 출력 관계 | 순서 변경에도 합계 동일 |
| Differential | 독립 구현과 비교 | 구/신 계산 결과 대조 |
- 불변식 추출Domain·security·data·state에서 항상 참이어야 할 속성을 적습니다.
- Oracle 분리구현 코드와 다른 source·관점·작성자로 expected를 만듭니다.
- Fixture 통제Clock·random·network·identity·model response를 결정적으로 고정합니다.
- Adversarial 확장경계값·malformed·injection·중복·순서 역전 case를 추가합니다.