테스트 설계 및 구현 프로세스(Test design & implementation process)
- 테스트 설계 진행 방식은 테스트 조직 구성, 테스팅과 개발 프로세스의 성숙도, 시간적 제약, 참여 인원등 테스팅 정황에 따라 달라짐
1. 테스트 조건(Test Condition)
- 테스트 분석 과정에서 무엇을 테스트할지 결정하기 위해(테스트 조건을 식별하기 위해) 테스트 베이시스를 분석함
- 테스트 조건은 하나 이상의 테스트 케이스로 확인 가능한 항목 또는 이벤트
- 예: 기능, 트랜잭션, 품질 특성, 구조적 요소 등
2. 테스트 설계 과정
- 테스트 설계 기법을 이용하여 테스트 케이스와 테스트 데이터를 설계하고 명세화 함
1) 테스트 케이스 설계
- 테스트 케이스 목적: 목표하는 보장성을 만족하는 최소한의(최적의) 테스트 케이스로 가능한 많은 결함을 발견하는 것
- 테스트 대상을 가능함 빠짐없이 테스트하여 원하는 수준의 테스트 보장성(Coverage)을 확보할 수 있도록 테스트 케이스를 설계
- 테스트 케이스 구성요소: 입력값의 묶음, 실행 사전 조건, 수행 절차, 기대 결과, 실행 사후 조건으로 구성
(이외에도 테스트 케이스 ID, 테스트 케이스 명, 추적성, 중요도, 결과(합격/불합격) 등 다양한 내용이 포함될 수 있음)
ID(식별번호)
- 테스트 케이스를 식별하기 위한 번호나 식별자
테스트 케이스명
- 테스트 내용을 간단 명료하게 표현
사전 조건(Pre-conditions)
- 테스트 수행에 필요한 사전 조건에 대한 정보(선행 조건)
- 구동환경, 테스트 데이터에 대한 정의 등
테스트 수행 절차(Test Step)
- 구체적인 테스트 수행 단계
- 7단계 이내 권고
- 테스트 케이스를 실행할 테스터의 스킬, 능력, 해당 시스템에 대한 이해 등을 고려하여 테스트 케이스의 상세함 정도를 조정
기대 결과(필수 항목)
- 테스트 실행 후 의도한 대로 동작했는지를 판단하는 근거(결과값, 데이터나 상태의 변화, 그밖의 결과 등을 기술)
- 기대 결과가 정의되지 않으면 테스트 결과가 정상인지 판단하기 어려움
- 실행 사후 조건이 필요하면 기대 결과에 포함하거나 별도로 기술함
결과(합격/불합격)
- 테스트 케이스 수행 결과
- Pass: 의도대로 동작함
- Fail: 의도대로 동작하지 않았음
- Not Tested: 아직 테스트를 수행하지 않음
- Blocked: 사전 조건이 충족되지 않아 테스트가 수행되지 않음, 테스트 결과 확인 불가
추적성
- 테스트 케이스와 관련된 요구사항 및 적용된 기법 등 기록
중요도
- 시간적 제약이 있을 경우 테스트 대상을 선택하기 위한 기준
- 시간이 부족할 경우 테스트하지 않을 것만 표시할 수도 있음
비고
- 테스트 케이스 작성 의도 등 관련 내용 기술
- 소프트웨어 테스트 문서 표준(IEEE 829)은 테스트 설계 명세(테스트 조건 포함)와 테스트 케이스 표준 양식 제시
3. 테스트 구현 단계
1) 우선순위 선정, 배치
- 테스트 프로시저 명세서(Test procedure specification)를 만듦
- 테스트 프로시저(또는 수동 테스트 스크립트): 효율적인 테스트를 위한 테스트 케이스 실행 순서
- 테스트 실행 도구를 사용하여 테스트를 수행한다면 테스트 프로시저는 테스트 스크립트(또는 자동화된 테스트 프로시저)로 기술
2) 테스트 실행 스케줄 구성
- 작성된 테스트 프로시저와 자동화된 테스트 스크립트를 언제 누가 수행할 것인지에 대해 구성
- 리그레션 테스트 여부, 우선순위, 기술적/논리적 종속 관계 등을 고려하여 결정
3) 테스트 케이스 작성
- 테스트 수행 절차를 얼마나 상세하게 작성할지를 결정해야 함
- 테스트 케이스를 실행할 테스터의 스킬, 능력, 해당 시스템에 대한 이해 등을 고려하여 테스트 케이스의 상세함 정도를 조정함
- 공식적인 기법으로 먼저 작성 후 경험 기반의 비공식적인 기법으로 보완함(두 기법이 발견할 수 있는 결함의 종류가 다르기 때문)
테스트 전략
- 소프트웨어가 요구사항을 기반으로 구현되었는지 여부에 따라 테스트 전략이 달라짐
1. 요구사항에 명시되어 있으나 구현되지 않은 경우
- 요구사항을 기반으로 테스트 케이스를 작성해 실행해야 함
2. 요구사항대로 구현되었으나 때에 따라 정상동작하지 않는 경우
- 요구사항을 기반으로 테스트 케이스를 작성해 실행하고 추가적인 테스트 케이스를 수행(네거티브 테스트 포함)
3. 요구사항에 명시되어 있지 않지만 구현된 경우
- 요구사항 기반의 테스트로 해당 결함을 발견하기 어려우므로 비공식적인 테스트(탐색적 테스팅을 사용할 수 있음)를 추가적으로 실행
- 결함을 발견하기 위해 실제 구현된 부분을 반영하여 요구사항을 변경해야 함
4. 요구사항에 명시되어 있지 않지만 구현되었으며, 정상동작하지 않는 경우
- 요구사항 기반의 테스트로 결함을 발견하기 어려우므로 비공식적인 테스트(탐색적 테스팅을 사용할 수 있음)를 추가적으로 실행
- 기대결과를 알기 어려우므로 요구사항을 기반으로 보다 체계적이고 강도 높게 비공식적인 테스트를 설계, 실행함
'Testing' 카테고리의 다른 글
4-3-1. 명세기반 기법(Specification-based technique) (4) | 2015.07.20 |
---|---|
4-2. 테스트 설계 기법의 종류 (0) | 2015.07.20 |
2-3, 2-4. 테스팅 유형(Test Type), 유지보수 테스팅(Maintenance Testing) (1) | 2015.07.20 |
2-2. 테스트 레벨 (0) | 2015.07.20 |
2-1. 소프트웨어 개발 모델 (1) | 2015.07.20 |
1-6. 소프트웨어 테스팅을 제약하는 요소 (0) | 2015.07.14 |
1-5. 테스팅의 독립성, 테스트의 심리학 (0) | 2015.07.13 |
1-4. 테스트 프로세스 (0) | 2015.07.13 |
1-3. 테스팅의 일반적인 원리 (0) | 2015.07.13 |