Ⅰ. 테스트 실행 결과의 판단기준, 테스트 오라클의 개요
가. 테스트 오라클(Test Oracle)의 정의
- 테스트를 수행한 결과가 참인지 거짓인지를 판단하기 위해서 미리 정의된 참 값을 대입하여 비교하는 기법 및 활동, 또는 기준(Base-Line)
- 테스트 대상 SW의 실제 결과와 비교할 목적으로 예상결과를 결정하는 시스템
(사용자 매뉴얼, 개인의 전문지식 등의 근거, 이미 알고 있는 정확한 답의 집합)
나. 테스트 오라클의 특징
특징 |
설명 |
제한된 검증 |
모든 테스트 항목 적용 불가 |
수학적 기법 |
테스트 수행시 수학적 기법을 이용, 오라클 값을 구할 수 있음 |
자동화 가능 |
테스트 대상 프로그램의 실행, 결과 비교, 커버리지 측정 등 |
Ⅱ. 테스트 오라클의 유형 및 유형별 장단점
가. 테스트 오라클의 유형
유형 |
설명 |
사례 |
참 오라클 (True) |
- 모든 테스트 케이스 입력값의 기대한 결과값에 대한 확인 - 가능한 모든 전수 테스트 가능 |
|
샘플링 오라클 (Sampling) |
- 특정 몇몇 입력 값들에 대해서만 원하는 결과를 제공해 주는 오라클 - 전 범위 테스트가 불가한 경우 사용 - 경계값, 구간별 예상 값 결과 작성 사용 |
|
휴리스틱 오라클 (Heuristic) |
- 샘플링 오라클의 단점을 개선하기 위해 특정 몇몇 입력은 샘플링 오라클처럼 결과를 제공, 나머지 입력은 휴리스틱(확률이나 직관)처리 - 실험결과나 수치데이터 처리시 사용 - 확률이나 직관에 의한 예상결과 작성 |
|
일관성검사 오라클(Consistent) |
- 이전수행결과와 현재수행결과가 동일한지 검증 - 회귀테스트시 수정 전후의 프로그램 실행 결과 확인 또는 비교시 사용 |
모든 상용테스트 자동화 도구에서 사용 |
나. 테스트 오라클의 유형별 장단점
구분 |
참 오라클 |
샘플링 오라클 |
휴리스틱 오라클 |
테스트 정확도 |
모든 테스트 케이스에 대한 정확도 검증됨 |
일부에 대해서만 테스트 정확도 검증이 가능함 |
참 오라클과 샘플링 오라클의 중간 정도 정확도 |
장점 |
모든 케이스에 대한 테스트 오라클 적용이 가능 |
테스트 오라클 작성이 쉬움 |
샘플링 보다는 상대적으로 테스트 케이스 검증수가 많음 |
단점 |
오라클 개발 비용이 많이 듬 |
샘플링 이외의 테스트는 참/거짓 검증이 안됨 |
값은 조건 값 범위 내의 테스트 참/거짓 검증은 안됨 |
Ⅲ. 테스트 오라클 적용시 고려사항 및 활용방안
가. 테스트 오라클 적용 시 고려사항
- 테스트 대상 SW와 테스트 오라클 개발 접근법이 동일할 경우, 오류가 발생되지 않을 수 있음
- 테스트 케이스가 다양할 경우, 테스트 범위가 넓어야 하는 정밀 프로그램 등에 자동화도구와 병행하여 적용이 필요함
나. 테스트 오라클 활용 방안
- 참 오라클 : 항공기, 선박 및 기계 제어 장치 시스템 등의 mission critical 한 임베디드 SW
- 휴리스틱 오라클(또는 샘플링) : ERP, CRM 등 레거시 시스템