✅ 테스트 오라클(Test Oracle) 4가지 정리
오라클 종류 | 정의 | 특징 | 예시 |
참 오라클 (True Oracle) | 모든 입력에 대해 정확한 기대 결과를 알고 있어 비교 가능 | 완전 정확, 드물게 가능 | 계산기, 수학 함수, 암호화 알고리즘 등 |
샘플링 오라클 (Sampling Oracle) | 전체가 아닌 일부 입력에 대해서만 기대 결과를 알고 있음 | 부분 정확, 현실적인 경우 많음 | 검색결과 중 일부 정답만 확인, 테스트 케이스 일부 수작업 작성 |
휴리스틱 오라클 (Heuristic Oracle) | 기대 결과는 없지만, 결과가 비정상적이면 오류로 추정 | 직관/상식/경험 기반 추론 | 가격이 음수로 출력, 평균 점수가 1000점 등 비정상 탐지 |
일관성 검사 오라클 (Consistent Oracle) | 같은 입력에 대해 결과가 일관되게 나와야 한다는 가정으로 비교 | 회귀 테스트, 이전 결과와 비교 | 이전 버전(v1.0)과 새 버전(v2.0)의 결과 비교, 테스트 리그레션 |
🔍 오라클 유형별 한눈에 보기
구분 | 참 오라클 | 샘플링 오라클 | 휴리스틱 오라클 | 일관성 검사 오라클 |
✅ 정확성 | 매우 높음 | 보통 | 낮음 | 보통 |
📋 기준 데이터 | 전체 정답 존재 | 일부 정답 존재 | 없음 (상식적 판단) | 이전 출력 결과 |
⚙️ 적용 상황 | 공식 함수, 알고리즘 테스트 | 대량 테스트의 일부 | 이상 탐지, 추론 기반 | 회귀 테스트, 비교 평가 |
📌 장점 | 명확한 결과 비교 가능 | 현실적, 샘플 테스트 가능 | 빠르게 오류 탐지 가능 | 자동화/비교에 유용 |
⚠️ 단점 | 만들기 어려움 | 전체 커버 불가 | 오탐 가능성 있음 | 정답 여부는 모름 |