1. 애플리케이션 테스트 케이스 설계
1. 테스트 케이스(Test Case) 개념
- 특정 요구사항에 준수하는 지를 확인하기 위해 개발된 입력값, 실행 조건, 예상된 결과의 집합이다.
2. 테이스 케이스 작성 절차
- 정확성, 재사용성 간결성 보장을 위해 절차에 따라 작성
1. 테스트 계획 검토 및 자료 확보
- 테스트 대상 프로젝트 범위와 접근 방법 이해를 위하여 테스트 계획을 재검토
- 테스트 대상 시스템 자료와 정보를 확보하여, 시스템 요구사항과 기능 명세서를 검토
2. 위험 평가 및 우선순위 결정
- 결함 해결에 있어 상대적 중요성을 지니며 테스트의 초점을 결정
3. 테스트 요구사항 정의
- 시스템 요구사항, 테스트 대상 재검토, 테스트할 특성, 조건, 기능을 식별 및 분석
4. 테스트 구조 설계 및 테스트 방법 결정
- 테스트 케이스의 일반적 형식을 결정하고, 테스트 케이스 분류 방법을 결정
- 테스트 절차, 장비, 도구 테스트 문서화 방법을 결정
5. 테스트 케이스 정의
- 각 요구사항에 대해 테스트 케이스를 작성하고, 입력값, 실행 조건, 예상 결과를 기술
6. 테스트 케이스 타당성 확인 및 유지보수
- 기능 또는 환경 변황 따라 테스트 케이스를 갱신하고, 테스트 케이스의 유용성을 검토
cf : 테스트 케이스의 구성요소
- 테스트 케이스의 구성요소에는 식별자, 테스트 항목, 입력명세, 출력 명세,환경설정, 특수절차요구, 의존성 기술이 있다.
3. 테스트 오라클
1. 테스트 오라클(Test Oracle)의 개념
- 테스트의 결과가 참인지 거짓인지를 판단하기 위해서 사전에 정의된 참값을 입력하여 비교하는 기법이다.
2. 테스트 오라클 종류
1. 참(True) 오라클
- 모든 입력값에 대하여 기대하는 결과를 판단하기 위해서 사전에 정의된 참값을 입력하여 비교하는 기법
2. 샘플링(Sampling) 오라클
- 특정한 몇 개의 입력값에 대해서만 기대하는 결과를 제공해주는 오라클
3. 휴리스틱(Heuristic) 오라클
- 샘플링 오라클을 개선한 오라클로, 특정 입력 값에 대해 올바른 결과를 제공하고, 나머지 값들에 대해서는 휴리스틱(추정)으로 처리하는 오라클
4. 일관성 검사(Consistent) 오라클
- 애플리케이션 변경이 있을 때, 수행 전과 후의 결괏 값이 동일한지 확인하는 오라클
2. 테스트 레벨
1. 테스트 레벨(Test Level)의 개념
- 함께 편성되고 관리되는 테스트 활동의 그룹이다.
- 테스트 레벨은 프로젝트에서 책임과 연관 되어 있다.
- 각각의 테스트 레벨은 서로 독립적이다.
2. 테스트 레벨 종류
1. 단위 테스트
- 사용자 요구사항에 대한 단위 모듈, 서브루틴 등을 테스트하는 단계
- 인터페이스 테스트, 자료구조 테스트, 실행 경로 테스트, 오류 처리 테스트
2. 통합 테스트
- 단위 테스트를 통과한 컴포넌트 간의 인터페이스를 테스트하는 단계
- 빅뱅 테스트, 상향식/하향식 테스트
3. 시스템 테스트
- 개발 프로젝트 차원에서 정의된 전체 시스템 또는 제품의 동작에 대해 테스트하는 단계
- 기능/비기능 요구사항 테스트
4. 인수 테스트
- 계약상의 요구사항이 만족되었는지 확인하기 위한 테스트 단계
- 알파/베타 테스트
3. 테스트 시나리오
1. 테스트 시나리오(Test Scenario) 개념
- 테스트 수행을 위한 여러 테스트 케이스의 집합으로서, 테스트 케이스의 동작 순서를 기술한 문서이며 테스트를 위한 절차를 명세한 문서이다.
- 테스트 수행 절차를 미리 정함으로써 설계 단계에서 중요시 되던 요구사항이나 대안 흐름과 같은 테스트 항목을 빠짐없이 테스트 하기 위함이다.
2. 테스트 시나리오 작성 시 유의점
- 테스트 시나리오 분리 작성 : 테스트 항목을 하나의 시나리오에 모두 작성하지 않고 시스템별, 모듈별, 항목별 테스트 시나리오를 분리하여 작성
- 고객의 요구사항과 설계 문서등을 토대로 테스틑 시나리오를 작성
- 각 테스트 항목은 식별자 번호, 순서 번호, 테스트 데이터, 테스트 케이스, 예상 결과, 확인 등의 항목을 포함하여 작성
4. 테스트 지식 체계
1. 소프트웨어 테스트 종류
1. 블랙박스 테스트
- 어떤 소프트웨어를 내부 구조나 작동 원리를 모르는 상태에서 소프트웨어의 동작을 검사하는 테스트
- 동등 분할
- 경곗값 분석
2. 화이트 박스 테스트
- 응용 프로그램의 내부 구조와 동작을 검사하는 테스트
- 제어 구조 시험
- 루프 시험
3. 경험 기반 테스트
- 이전에 테스터가 다루었던 유사 애플리케이션이나 기술에서의 경험, 직관 테스터의 기술 능력으로부터 테스트 케이스를 추출하는 테스트
- 탐색적 테스팅, 오류추정, 체크리스트 기반 테스팅