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