Search

Test Case, Test Scenario, Test Oracle

[- Disclaimer -] 아래 내용은 정보보안 공부 목적으로 작성된 것이나, 이를 토대로 허가되지 않은 대상에 실습을 진행할 경우 해킹 시도로 간주하여 법적 처벌을 받을 수 있음을 알려 드립니다.
Test Case
✦ 명세 기반 Test의 산출물
✧ 사용자 요구 사항 준수 여부 확인을 위해 설계된 입력 값, 실행 조건, 기대 결과 등으로 구성된 Test 항목에 대한 명세서
✧ 사전에 Test Case 미리 설계 시 Test Error 방지 및 필요 인력과 시간 낭비 줄임
Test Case 작성 순서
✦ Test 계획 검토 및 자료 확보
✧ Test 대상 범위, 접근 방법 등 이해
✧ 시스템 요구 사항과 기능 명세서 검토 및 Test 대상 시스템 정보 확보
✦ 위험 평가 및 우선 순위 결정
✧ 결함 위험 정도에 따른 우선 순위 결정, 초첨 맞출 부분 Test 결정
✦ Test 요구 사항 정의
✧ 사용자 요구 사항 및 Test 대상 재검토, Test 특성, 조건, 기능 등 분석
✦ Test 구조 설계 및 Test 방법 결정
✧ Test Case 형식, 분류 방법 결정
✧ Test 절치, 장비, 도구, Test 문서화 방법 결정
✦ Test Case 정의
✧ 요구 사항에 따라 Test Case 작성 후 입력 값, 실행 조건, 예상 결과 등 기술
✦ Test Case 타당성 확인 및 유지 보수
✧ S/W 기능 또는 환경 변화에 따라 Test Case 갱신, Test Case 유용성 검토
Test 시나리오
✦ 여러 Test Case 적용 절차
✧ 구체적 절차, 사전 조건, 입력 Data 등 설정
✦ 유의 사항
✧ 각 Test 항목에는 식별자 번호, 순서 번호, Test Data, Test Case, 예상 결과, 확인 등 포함해 작성
✧ Use Case 간 업무 흐름 정상 여부 Test 가능하게 작성
✧ 개발된 Module 또는 프로그램 간 연계 정상 동작 여부 가능하게 작성
Test Oracle
✦ Test Case 예상 결과에 대해 Test 결과 정상 여부 확인을 위한 사전 정의된 기준 값을 대입해 비교
✧ 제한된 검증: 모든 Test Case에 적용 불가
✧ 수학적 기법: Test Oracle은 수학적 기법으로 계산 가능
✧ 자동화 가능: Test 대상 프로그램의 실행, 결과 비교, Coverage 측정 등 자동화 가능
✦ 종류
✧ True Oracle: 모든 Test Case 입력 값에 대한 기대 값을 제공하는 Oracle // 발생된 모든 Error 검출 가능
✧ 항공기, 은행, 발전소 S/W 등 미션 크리티컬한 업무에 사용 // 미션 크리티컬: 한 번이라도 다운되면 시스템 전체에 치명적인 영향을 주므로 절대 다운 되어서는 안 되는 시스템
✦ Sampling Oracle
✧ 특정 Test Case 입력 값에 대한 기대 값을 제공하는 Oracle
✦ Heuristic Oracle
✧ Sampling Oracle + 나머지 값은 추정 처리
✦ Consistent 검사 Oracle (=일관성 검사 Oracle)
✧ Application 변경 시 Test Case 수행 전, 후 결과 값 동일 여부 확인