**소프트웨어 테스트에서 테스트 케이스의 입력에 따라 시스템이 올바른 결과(참값)를 산출했는지 판단하는 판단 기준 및 메커니즘** - 특징 - 제한된 검증 - 모든 테스트 케이스에 적용할 수 없음 - 수학적 기법 - 값을 수학적 기법을 이용해 구할 수 있음 - 자동화 기능 - 프로그램 실행, 결과 비교, 커버리지 측정 등을 자동화할 수 있음 - 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/소프트웨어-개발-테스트-케이스-테스트-시나리오-테스트-오라클-테스트-하네스)