**소프트웨어 테스트에서 테스트 케이스의 입력에 따라 시스템이 올바른 결과(참값)를 산출했는지 판단하는 판단 기준 및 메커니즘**
- 특징
- 제한된 검증
- 모든 테스트 케이스에 적용할 수 없음
- 수학적 기법
- 값을 수학적 기법을 이용해 구할 수 있음
- 자동화 기능
- 프로그램 실행, 결과 비교, 커버리지 측정 등을 자동화할 수 있음
- membership oracle: 어떤 grammar G가 어떤 sentence s를 accept하는지 알려주는 oracle.
- G의 구현체가 있다는 전제 조건 정도를 나타냄
- equivalence oracle: 두 grammar G, G'가 서로 equivalent한지 알려주는 oracle.
- 엄청나게 강력한 조건. 가령, 두 context-free grammar G, G'가 equivalent한지 아는 것은 아마 undecidable problem일 것. (regular grammar G, G'가 equivalent한지는 G, G'를 minimal DFA로 변환하여 비교하면 됨.)
[참고 자료](https://velog.io/@superscman/소프트웨어-개발-테스트-케이스-테스트-시나리오-테스트-오라클-테스트-하네스)