테스트 케이스는 구현된 소프트웨어가 사용자의 요구사항을 정확하게 준수했는지를 확인하기 위해 설계된 입력 값, 실행 조건, 기대 결과 등으로 구성된 테스트 항목에 대한 명세서로, 명세 기반 테스트의 설계 산출물에 해당된다.
명세 기반 테스트
사용자의 요구사항에 대한 명세를 빠짐없이 테스트 케이스로 구현하고 있는지를 확인하는 것
테스트 케이스는 테스트 전략이나 테스트 계획서 등을 기반으로 하여 다음과 같은 순서로 작성된다.
- 테스트 계획 검토 및 자료 확보
- 테스트 계획서를 재검토하여 테스트 대상 범위 및 접근 방법 등을 이해한다.
- 시스템 요구사항과 기능 명세서를 검토하고 테스트 대상 시스템의 정보를 확보한다.
- 위험 평가 및 우선순위 결정
- 결함의 위험 정도에 따른 우선순위를 결정하고, 어느 부분에 초점을 맞춰 테스트할지를 결정한다.
- 테스트 요구사항 정의
- 시스템에 대한 사용자 요구사항이나 테스트 대상을 재검토하고, 테스ㅡ 특성, 조건, 기능 등을 분석한다.
- 테스트 구조 설계 및 테스트 방법 결정
- 테스트 케이스의 형식과 분류 방법을 결정한다.
- 테스트 절차, 장비, 도구, 테스트 문서화 방법을 결정한다.
- 테스트 케이스 정의
- 요구사항에 따라 테스트 케이스를 작성하고, 입력 값, 실행 조건, 예상 결과 등을 기술한다.
- 테스트 케이스 타당성 확인 및 유지 보수
- 소프트웨어 기능 또는 환경 변화에 따라 테스트 케이스를 갱신한다.
- 테스트 케이스의 유용성을 검토한다.
테스트 시나리오는 테스트 케이스를 적용하는 순서에 따라 여러 개의 테스트 케이스들을 묶은 집합으로, 테스트 케이스들을 적용하는 구체적인 절차를 명세한 문서이다.
Use Case
사용자 측면에서의 요구사항으로, 사용자가 원하는 목표를 달성하기 위해 수행할 내용을 기술
테스트 오라클은 테스트 결과가 올바른지 팥단하기 위해 사전에 정의된 참 값을 대입하여 비교하는 기법 및 활동을 말한다.
테스트 오라클의 특징
- 제한된 검증: 테스트 오라클을 모든 테스트 케이스에 적용할 수 없다.
- 수학적 기법: 테스트 오라클의 값을 수학적 기법을 이용하여 구할 수 있다.
- 자동화 기능: 테스트 대상 프로그램의 실행, 결과 비교, 커버리지 측정 등을 자동화 할 수 있다.
참 오라클은 주로 항공기, 은행, 발전소 소프트웨어 등 미션 크리티컬한 업무에 사용되고, 샘플링 오라클과 추정 오라클은 일반적인 업무, 게임 오락 등에 사용된다.
미션 크리티컬
단 한 번이라도 다운되면 시스템 전체에 치명적인 영향을 주므로 절대 다운되면 안되는 시스템
참 오라클
- 모든 테스트 케이스의 입력 값에 대해 기대하는 결과를 제공하는 오라클로, 발생된 모든 오류를 검출할 수 있다.
샘플링 오라클
- 특정한 몇몇 테스트 케이스의 입력 값들에 대해서만 기대하는 결과를 제공하는 오라클이다.
추정 오라클
- 샘플링 오라클을 개선한 오라클로, 특정 테스트 케이스의 입력 값에 대해 기대하는 결과를 제공하고, 나머지 입력 값들에 대해서는 추정으로 처리하는 오라클이다.
일관성 검사 오라클
- 애플리케이션의 변경이 있을 때, 테스트 케이스의 수행 전과 후의 결과 값이 동일한지를 확인하는 오라클이다.