2023년 1월 1일
08:00 AM
Buffering ...

최근 글 👑

[Study] CSTS 13장 - 테스트 설계/구현 및 테스트 환경 구축/관리

2024. 8. 7. 16:34ㆍCertiFicate-prepare/CSTS-Study
SMALL

테스트 계획 활동 후에는

테스트 설계 및 구현 활동과

테스트 환경 구축 및 관리 활동이 수행된다.

 

테스트 설계 및 구현

테스트 계획서를 바탕으로

테스트 범위와 테스트 전략을 구체화하며

이를 바탕으로 테스트 케이스 및

테스트 절차를 개발한다.

 

그리고

테스트 절차를 실행할 수 있는

테스트 환경 및 테스트 데이터에 대한

요건을 정의한다.

 

테스트 환경 구축 및 관리

테스트 설계 및 구현 활동에서

정의된 테스트 환경 요건과

테스트 데이터 요건에 따라서

테스트 환경과 테스트 데이터를 준비함으로써

테스트 실행 활동이 시작될 수 있도록 한다.

 

아래 표는 테스트 설계/구현 활동과

테스트 환경 구축/관리 활동을 수행하면서 작성되는

산출물을 보여 준다.

 

테스트 설계 및 구현 활동에서는

테스트 명세서(테스트 설계 명세서,

테스트 케이스 명세서, 테스트 절차 명세서),

테스트 환경 요건 명세서,

테스트 데이터 요건 명세서를 작성한다.

 

그리고

테스트 환경 구축 및 관리 활동에서는

테스트 환경 준비 보고서와

테스트 데이터 준비 보고서를 작성한다.

활동 산출물 설명
테스트 설계 및
구현
테스트 설계
명세서
각 피처 집합에 대하여 목적, 피처와 피처에 속한 세부 피처들,
우선순위, 구체화된 테스트 전략을 기술한다.
테스트 케이스
명세서
각 테스트 케이스에 대하여 목적, 우선순위, 추적성,
선행조건, 입력, 예상 결과를 기술한다.
테스트 절차
명세서
각 테스트 절차에 대하여 목적, 우선순위, 시작 작업,
실행 테스트 케이스 목록, 종료 및 정리 작업을 기술한다.
테스트 환경
요건 명세서
테스트 실행을 위하여 필요한 각 테스트 환경 항목에 대하여
요구사항, 필요 시기, 담당자 등을 기술한다.
테스트 데이터 요건
명세서
테스트 실행을 위하여 필요한 각 테스트 데이터에 대하여
요구 사항, 초기화 필요 여부, 저장 필요 여부, 담당자 등을 기술한 다.
테스트 환경
구축 및 관리
테스트 환경
준비 보고서
테스트 환경 준비 상황에 대한 보고로서
전체적인 준비 상태와 개별 환경 항목에 대한
준비 상태를 기술한다.
테스트 데이터
준비 보고서
테스트 데이터 준비 상황에 대한 보고로서
전체적인 준비 상태 와 개별 테스트 데이터에 대한 준비 상태를 기술한다.

(테스트 설계/구현 및 테스트 환경 구축/관리 산출)


테스트 설계 및 구현

1) 테스트 설계, 2) 테스트 케이스 개발, 3 테스트 절차 개발,

4) 테스트 환경 요건 명세, 5) 테스트 데이터 요전 명세 작업으로 구성된다.

 

테스트 설계 및 구현 활동은

테스트 계획서에 명시된 테스트 컨텍스트,

위험 요소, 테스트 전략과 테스트 수행 계획을 바탕으로

테스트 범위와 전략을 구체화하여

테스트 설계 명세서를 작성한다.

 

테스트 설계 명세서를 바탕으로

테스트 케이스 및 테스트 절차를 개발하여

테스트 케이스 명세서와

테스트 절차 명세서를 각각 작성한다.

 

그리고

테스트 절차를 실행하기 위한

테스트 환경 요건을

테스트 환경 요건 명세서에 작성하고,

필요한 테스트 데이터 요건을

테스트 데이터 요건 명세서에 작성한다.

 

테스트 설계 및 구현 활동에서는

테스트 범위와 테스트 전략을 구체화하여

테스트 케이스, 테스트 절차를 개발하고

테스트 환경 항목, 테스트 데이터를 정의한다.

 

테스트 계획서에서는

테스트 대상에 대한 테스트 범위를 피처로 정의한다.

 

테스트 설계 및 구현 활동에서는

테스트 관점에서 유사한 성격을 가진

복수 개의 피처를 묶어서

피처 집합으로 정의한다.

 

피처 집합은 독립적인 테스트를 수행하는 단위이다.

그리고 테스트 계획의 각 피처를 구체화하여

복수 개의 세부 피처를 식별한다.

 

피처 집합을 구성하는 각 세부 피처에 대하여

테스트 케이스를 개발한다.

 

일반적으로 하나의 세부 피처에 대하여

복수 개의 테스트 케이스가 개발된다.

 

결국에는 피처 집합별로

많은 수의 테스트 케이스가 개발된다.

 

테스트 절차는 동일한 피처 집합에 속한

테스트 케이스들의 시퀀스로, 테스트 실행 단위이다.

 

하나의 피처 집합은 피처 집합에 속한

피처들, 결국 세부 피처를 확인하기 위한

테스트 절차들로 구성된다.

 

테스트 절차가 실행되기 위해서는

테스트 대상이 의존하는

테스트 환경의 구축이 필요하다.

 

그러므로

피처 집합에 속한

테스트 절차들을 실행하기 위해서는

HW, 시스템 SW 등

다양한 테스트 환경 항목이 필요하다.

 

테스트 케이스가 실행되기 위해서는

테스트 환경과 더불어 테스트 데이터가 필요하다.


즉,

테스트 케이스에서 테스트 대상에 대한

입력값과 테스트 환경 항목이

선행적으로 갖추고 있어야 하는 상태값을

테스트 데이터로 정의한다.

 

이러한 테스트 데이터는 테스트 케이스의

선행 조건 및 입력에서 참조된다.

 

아래 표는 테스트 설계 및 구현 활동에서

작성하는 산출물을 보여 준다.

 

테스트 설계 명세서는

식별된 피처 집합별로 구체화된 테스트 전략과

세부 피처 등을 정의한다.

 

테스트 케이스 명세서는

세부 피처를 확인하기 위한

각 테스트 케이스의 선행 조건,

입력, 예상 결과 등을 정의한다.

 

테스트 절차 명세서는

실행할 테스트 케이스 목록과 함께

시작 방법, 종료 및 정리 방법 등을 정의한다.

 

테스트 케이스가 실행되기 위하여

필요한 테스트 환경 항목들과

테스트 데이터들은 각각 테스트 환경 요건 명세서와

테스트 데이터 요건 명세서에 정의한다.

산출물 주요 항목
테스트 설계
명세서
• 각 피처 집합에 대하여
- 목적
- 우선순위
- 피처 목록
- 구체적 테스트 전략
테스트 케이스
명세서
•각 테스트 케이스에 대하여
- 목적
- 추적성
- 우선순위
- 선행조건
- 입력
- 예상 결과
테스트 절차
명세서
•각 테스트 절차에 대하여
- 목적
- 우선순위
- 시작 작업
- 실행 테스트 케이스 목록
- 종료 및 정리 작업
-다른 테스트 절차와의 관계
테스트 환경
요건 명세서
•각 테스트 환경 항목에 대하여
- 테스트 환경 항목명
- 설명
- 요구사항
- 필요 시기
- 담당자
테스트 데이터 요건 명세서 •각 테스트 데이터에 대하여
- 테스트 데이터명
- 설명
- 요구사항
- 초기화 필요 여부
- 보관 필요 여부
~ 담당자

(테스트 설계 및 구현 산출물 요약)


테스트 설계

테스트 설계 작업에서는

테스트 계획서의 테스트 컨텍스트, 위험 분석,

테스트 전략 등을 바탕으로 테스트 범위와

테스트 전략을 구체화하여 테스트 설계 명세서를 작성한다.

 

테스트 설계 작업

피처 집합 식별

테스트 계획의 테스트 범위를 구성하는

피처를 바탕으로 피처 집합을 결정한다.

 

그리고

테스트 계획의 위험 요소 등을 고려하여

각 피처 집합에 대한 우선순위를 결정한다.

 

피처 구체화

피처 집합에 포함된 각 피처를 구체화하여

세부 피처들을 식별한다.

 

테스트 전략 구체화

테스트 계획의 위험 분석, 테스트 전략 등을 바탕으로

피처 집합별 로 테스트 전략을 구체화한다.


피처 집합 식별

피처 집합은 테스트 대상에 대하여

식별된 피처들의 논리적 묶음(Group)이다.

아래 표는 테스트 계획서의 피처를 바탕으로

피처 그룹을 정의한 예를 보여 준다.

피처 유형 피처 집합 피처
기능
침입 처리 침입 탐지
침입 발생 알림
설정 알림 설정
활성화 설정
성능 침입 처리 성능 탐지 판단 성능
침입 발생 알림 성능
호환성
센서 호환성
적외선 카메라 호환성
움직임 센서 호환성
소리 센서 호환성
단말기 호환성 Android 단말기 호환성

(피처 집합 예)

 

피처 집합은 이후의 테스트 활동을 수행할 때

독립적으로 간주된다.

 

피처 집합은 테스트 설 계 및 구현,

테스트 환경 구축 및 관리,

그리고 테스트 실행 활동의 단위가 된다.

 

따라서

피처 집합별로 테스트 케이스 및

테스트 절차가 개발된다.

그리고 테스트 실행도

피처 집합별로 수행될 수 있다.

 

피처 집합은 독립적으로

테스트가 수행될 수 있어야 하므로

다음의 관점을 고려하여

피처 집합을 결정하는 것이 바람직하다.

 

상호의존적으로 확인이 필요한 피처들은

동일한 피쳐 집합에 포함한다.

 

동일 테스트 전략을 적용하는 피처들은

동일한 피처 집합에 포함시킨다.

 

피쳐 집합은 테스트 수행을

실제로 수행하는 단위가 되므로

테스트 설제 기념, 테스트 완경,

테스트 완료 조건, 테스트 중단 및

재시작 조건 등의 테스트 전략을

동일하게 적용하게 된다.

 

반대로 말하면,

상이한 테스트 전략을 적용해야하는

피처들은 다른 피처 집합에 포함시킨다.

 

피처 집합을 식별한 후에는

각 피처 집합별로 우선순위를 부여한다.

 

우선순위는 이후의 테스트 설계 및

구현 활동 작업과 테스트 실행 활동을

수행할 때 활용된다.

 

피처 집합에 대한 우선순위는

위험 분석 결과를 바탕으로 결정할 수 있다.

 

위험 분석에서는 각 피처별로 피처와 관련된 장애가

발생할 가능성과 장애가 발생하였을 때의

심각성을 바탕으로 위험도를 평가한다.

 

만약,

높은 위험도를 가지는 피처가 많다면

해당 피처 집합에는 높은 우선순위를 부여한다.


피처 구체화

 

각 피처를 대상으로 실제 테스트를 통해

확인하고자 하는 세부적인 상황을 결정하여

각 피처별로 세부 피처를 정의한다.

피처 집합 피처 세부 피처
침입 처리 침입 탐지 적외선 카메라를 이용한 탐지 움직임 센서를 이용한 탐지 소리 센서를 이용한 탐지
침입 발생 알림 운영 콘솔 알림
iOS 단말기 알림
Android 단말기 알림
설정 알림 설정 콘솔/단말기 화면 설정 콘솔/단말기 소리 설정
활성화 설정 침입 탐지 수동 활성화 침입 탐지 자동 활성화
침입 처리 성능 탐지 판단 성능 적외선 카메라 탐지 성능 움직임 센서 탐지 성능 소리 센서 탐지 성능
침입 발생 알림 성능 운영 콘솔 알림 성능
iOS 단말기 알림 성능
Android 단말기 알림 성능
센서 호환성 적외선 카메라 호환성 카메라1, 카메라2,
움직임 센서 호환성 센서1, 센서2,
소리 센서 호환성 센서1, 센서2,
단말기 호환성 Android 단말기 호환성 삼성 기기1, 기기2, LG 기기1, 기기2,

(세부 피처 예)


세부 피처는 각 피처에 해당되는

요구사항 명세서 등의

테스트 베이시스를 바탕으로 식별 된다.

 

각 세부 피치는 이름과 더불어

테스트할 사항을 구체적으로 설명해야 한다.

 

테스트할 사람에 대한 설명은

자연어, 표, 다이어그램 등의

적합한 표현법을 활용한다.

 

또는,

테스트할 사항을 명시하는 테스트 베이시스의

해당 부분에 대한 참조 사항만 나열할 수도 있다.

 

 각 세부 피처에 대하여

우선순위를 결정하도록 한다.

 

이 우선순위는 테스트 설계 전략을 구체화하고

테스트를 실행할 때 사용될 수 있다.

 

세부 피처에 대한

우선순위도 위험 분석 결과를 바탕으로

결정될 수 있다.

 

즉,

높은 위험도로 평가된

피처의 세부 피처는

더욱 높은 우선순위를

부여받을 수 있다.

 

만약,

요구사항 명세서에

각 요구사항의 우선순위가 명시되어 있다면

세부 피처에 해당되는 요구사항의

우선순위도 고려될 수 있다.


테스트 전략 구체화

테스트 계획에서 정의된

테스트 전략을 바탕으로

각 피처 집합별로

테스트 전략을 구체화 한다.

 

테스트 계획을 수립할 때

테스트 설계 기법, 테스트 환경 요건,

테스트 데이터 요건, 재테스팅 및

리그레션 테스팅, 테스트 중단 및

재시작 조건, 테스트 완료 기준,

테스트 메트릭, 테스트 산출물을

테스트 전략으로 정의하였다.

 

피처 집합에 포함된 피처의 특성을 고려하여

테스트 전략을 구체화한다.

 

또한,

테스트 계획서의 테스트 설계 기법을 구체화한다.

 

커버리지를 설정할 때는

피처 집합의 우선순위를 고려할 수 있다.

 

즉,

우선순위가 높은 피처 집합은

높은 수준의 커버리지를 설정한다.

 

아래 표는 명세 기반 테스트 설계 기법을 적용하는 경우

각 테스트 설계 기법에 따라서 전락을 구체화하는 예를 보여 준다.

경계값 분석 시에는 2-value 경계값 분석과

3-ralue 경계값 분석 중에서 선택할 수 있다.

설계 기법 구체화 요소
동등 분할 • One-to-One 동등 분할
• 최소화 동등 분할
• 조합 테스트 방법
분류 트리 기법 • 최소화 전략
• 최대화 전략
경곗값 분석 • 2-value 경값 분석
• 3-value 경곗값 분석
신택스 테스트 • One-to-One 동등 분할
• 최소화 동등 분할
• 조합 테스트 방법
조합 테스트 • Each choice 테스트
• 페어와이즈 테스트
• All combination 테스트
•Base choice 테스트
상태 전이 테스트 • 상태 테스트
• 단일 전이 테스트
• All transition 테스트
• 다중 전이 테스트
시나리오 테스트 • 기본 시나리오 테스트
• 기본/대안 시나리오 테스트

(명세 기반 테스트 설계 기법 구체화)


테스트 설계 명세서

테스트 설계 작업의 결과물은 테스트 설계 명세서에 기록된다.

테스트 설계 명세서는 식별된 각 피처 집합별로

다음을 명시한다.

 

목적

해당 피처 집합을 통해서

확인하고자 하는 테스트 대상에 대한

목표 및 범위를 간략 하게 기술한다.

 

우선순위

해당 피처 집합에 대한 우선순위를 기술한다.

 

추적성

해당 피처 집합에 포함된 피처에

요구사항 명세서, 구조 설계 명세서 등의

테스트 베이시스에 대한 참조 사항을 나열한다.

 

구체적 테스트 전략

해당 피처 집합에 대하여 적용하고자 하는

테스트 설계 기법, 테스트 환경 요건,

테스트 데이터 요건, 테스트 완료 기준 등

구체화된 테스트 전략을 기술한다.

 

피처 목록

해당 피처 집합에 포함된 피처들을 나열한다.

그리고 각 피처에 대해서는 세부 피처들을 기술한다.

각 세부 피처에 대해서는 다음을 기술한다.

 

세부 피처 설명

해당 세부 피처의 내용으로서

무엇을 테스트할지 기술한다.

 

세부 피처 우선순위

해당 세부 피처에 대한 우선순위를 기술한다.

 

세부 피처 추적성

세부 피처의 내용에 대한

테스트 베이시스의 해당 항목과

관련된 참조사항을 나열한다.


테스트 케이스 개발

테스트 케이스는 테스트 대상에

존재할 수 있는 결함을 검출하거나

테스트 대상의 품질을 확인하기 위한 목적으로

테스트 대상을 실행하는 세부적인 상황을 정의한다.

 

테스트 케이스 명세서는

개발된 각 테스트 케이스에 대한

정의를 포함한다.

항목 설명
목적 세부 피처를 바탕으로 테스트하고자 하는 구체적인 상황을 기술한다.
추적성 테스트 베이시스의 해당 항목에 대한 참조를 나열한다.
우선순위 우선순위를 기술한다. 우선순위가 높은 테스트 케이스를 우선적으로 실행한다.
선행 조건 테스트 케이스가 실행되기 위한 사전 조건을 기술한다.
입력 입력값과 입력값을 제공하는 행위를 기술한다.
예상 결과 입력에 대한 예상 출력과 동작 그리고 실제 결과와의 비교 방법을 기술한다.

(테스트 케이스 항목)


목적

피처 집합별로 구체화된 테스트 범위와

테스트 전략을 바탕으로 테스트 케이스를 개발한다.

 

테스트 케이스는 확인하고자 하는

매우 구체적인 상황을 의미한다.

 

그러므로

피처를 구체화한 세부 피처를 바탕으로

테스트 케이스를 개발한다.

 

세부 피처 자체도 광범위하다면

세부 피처를 더욱 세분화하여

테스트 케이스를 개발한다.


선행 조건

선행 조건에서는 테스트 케이스가

실행되기 위해서 테스트 대상 및

테스트 환경 항목에 요구라는

특정 상태를 기술한다.

 

이처럼 선행 조건은

각 테스트 환경 항목과

테스트 대상에 대한 특정 상태로

정의될 수 있다.

 

그리고

테스트 케이스를 실행하기 위한

선행 조건을 설정할 수 있는

테스트 데이터가 정의되어야 한다.

 

선행 조건은 테스트 환경 항목과

테스트 대상에 대한 조건으로

명시적으로 기술 될 수도 있으며,

 

만약,

다른 테스트 케이스의 실행을 통해서

선행 조건이 충족되면 해당 테스트 케이스를

참조할 수 있다.


입력

테스트 케이스 실행을 위해서는

테스트 대상을 동작하는데

필요한 입력값이 정의되어야 한다.

테스트 케이스에 직접 입력값을

명시할 수도 있으며,

 

외부의 테이블, 파일, 데이터베이스 등에

데이터를 정의하고 이를 참고할 수도 있다.

이렇게 외부에 입력 데이터를

정의하는 경우에는 테스트 데이터

요건 명세서에 테스트 데이터를 정의하고,

테스트 케이스 명세에서는

해당 테스트 데이터를 참조하도록 한다.

 

또한, 해당 입력값을 테스트 대상에 입력하는

행위(Action)도 정의할 필요가 있다.

 

입력 순서가 중요한 경우에는

각 입력 순서도 명시한다.

 

예상 결과

테스트 케이스가 실행되었을 때

입력에 따른 결과로서 기대되는 출력과

동작을 기술한다.

 

각 출력과 동작에 기대되는 값을 명시한다.

만약 허용 오차가 있다면

해당 오차도 함께 기술한다.

 

예상 결과와 실제 결과를 비교하기 위하여

필요한 행위(Action)도 기술한다.

 

즉,

테스트 대상의 동작에 따라서

생성된 각 출력과 동작의 결과값을

접근하고 추출하고 확인하기 위한

행위도 명시한다.


테스트 절차 개발

테스트 절차는 테스트 실행의 단위로,

함께 수행될 테스트 케이스의 순서로 정의된다.

 

자세한 내용은 그림 13.5를 찾아보면 된다. (CSTS 가이드 p.361)
항목 설명
목적 해당 테스트 절차를 통해서 테스트하고자 하는 구체적인 상황을 기술한다.
우선순위 우선순위를 기술한다. 우선순위가 높은 테스트 절차를 우선 실행한다.
시작 작업 포함된 테스트 케이스를 실행하기 위하여 준비할 작업을 기술한다.
테스트 케이스 목록 테스트 절차에 포함된 테스트 케이스를 실행 순서대로 기술한다.
종료 및 정리 작업 테스트 실행을 종료하는 방법과 종료 후에 수행할 작업을 기술한다.
다른 테스트 절차와의 관계 다른 테스트 절차와의 실행 순서 측면에서 관계를 기술한다.

(테스트 절차 항목)


시작 작업

테스트 절차 실행은

테스트 절차를 구성하는 테스트 케이스 목록의

각 테스트 케이스를 명시된 순서대로

수행함으로써 진행된다.

 

만약, 테스트 케이스가 실행되는데

필요한 상태와 그 상태를 준비하기 위한 작업이

필요하다면 이를 명시한다.

 

시작작업에는 테스트 케이스 목록의

첫 번째 테스트 케이스에 대한 선행 조건을

준비하는 작업들이 대표적으로 기술된다.

 

테스트 케이스 목록

테스트 절차를 구성하는

테스트 케이스들을 실행 순서와

함께 나열한다.

 

각 테스트 케이스는

개별적인 선행 조건을 정의한다.

 

만약,

먼저 수행된 테스트 케이스 결과가

다음 테스트 케이스의

선행 조건을 충족할 수 없다면

이 선행 조건을 충족하는 데

필요한 작업을 테스트 케이스 사이에

기록한다.

 

종료 및 정리 작업

테스트 절차를 원만하게 종료하는 방법을 기술한다.

그리고 테스트 종료 후에 테스트 대상과

테스트 환경을 원래 상태로 설정하는 등

필요한 작업이 있다면 기술한다.

 

다른 테스트 절차와의 관계

이 테스트 절차와 실행 순서상에

의존 관계가 있는 테스트 절차를 기술한다.

 

즉,

이 테스트 전차보다 먼저

수행되어야 하는 테스트 절차,

이 테스트 절차와 동시에

수행되어야 하는 테스트 절차,

그리고

이 테스트 절차 이후에 수행되어야 하는

테스트 절차를 나열한다.

 

테스트 환경 요건 명세

테스트 대상 요소가 실행될 수 있는

하드웨어 및 소프트웨어를 포함한 환경이

정의되어야 한다.

 

즉,

텍스트 계획 활동에서

식별된 테스트 환경 항목에 대한

구체적인 요건을 정의하여

테스트 환경 요건 명세서에 기록한다.


테스트 환경 요건

하드웨어 및 시스템 소프트웨어 환경

테스트 대상 요소가 실행될 수 있는

하드웨어 및 시스템 소프트웨어 환경을 정의한다.

 

즉,

시스템이 동작하는 특정 서버 및

클라이언트에 대한 하드웨어적인

규격(CPU, 주기억장 치, 보조기억장치 등)과

성능, 신뢰도 등의 특성을 포함하여

필요한 주변 장치에 대한 규격을 정의한다.

 

테스트 대상이 동작하기 위한

운영체제, 미들웨어, 프레임워크 등과 같은

소프트웨어 플랫폼에 관해서도

구체적인 요건을 기술한다.

 

테스트 대상이 가정하는

구체적인 운영체제, 미들웨어, 프레임워크에 대한

제품명, 버전 그리고 필수적인 플러그인 등을 명시한다.

 

시스템 테스트에서는

가능하다면 실제 운영 환경에 근접한

테스트 환경을 구성하는 것이 권장된다.

 

 인수 테스트는 실제 사용자 환경을

테스트 환경으로 사용하는 것이 바람직하다.

하지만

아직 신뢰도 가 보장되지 않은,

개발중인 시스템이 기존에 운영되는 시스템에

악영향을 미칠 위험성이 있으므로,

인수 테스트 환경을 구성하여

테스트를 수행할 수도 있다.

 

컴포넌트 테스트와 통합 테스트 레벨에서는

개발자 환경에서 테스트를 수행하는 것이 일반적이다.

 

테스트를 수행하기 위한

별도 시스템을 구축하는 것은 아니지만,

가능한 한 시스템 동작 환경과 유사한 환경을

개발자 환경으로 구성함으로써

테스트 환경과 동작환경의 차이에 따른

위험성을 줄이도록 한다.


외부 연동 시스템

연동되는 타 시스템도

테스트 환경으로 준비되어야 한다.

 

연동될 타 시스템을

직접 사용하기 어려운 경우에는

동일한 동작을 하도록

시뮬레이터를 개발하여

사용할 수 있다.

타 시스템이 주는 입력값과

입력 빈도, 처리 시간 등도

실제 연동할 시스템과

최대한 유사하게 구성해야 한다.


공존 소프트웨어

테스트 대상 소프트웨어는

하드웨어 및 시스템 소프트웨어 환경 뿐 아니라

함께 수행될 수 있는 다른

소프트웨어에 영향을 받는다.

 

이는 테스트 대상 소프트웨어와 함께

공존하는 다른 소프트웨어가

CPU, 메모리, 주변 장치 등과 같은

시스템의 자원을 공유하기 때문이다.

 

공존 소프트웨어는 테스트 대상의 성능,

신뢰도 등에 영향을 미칠 수 있으므로

주로 시스템 테스트 레벨에서 고려된다.

 

만약,

성능, 신뢰도 등과 같이 공존 소프트웨어에

영향을 받는 특성이 시스템의 매우 중요한 요구사항이라면

통합 테스트 레벨에서도 공존 소프트웨어를 고려할 수 있다.

 

먼저,

테스트 대상 시스템에 영향을 미칠 가능성이 있는

공존 소프트웨어를 결정해야 한다.

 

그리고

그 공존 소프트웨어를 테스트 대상

소프트웨어에 영향을 미칠 수 있는 상태로 설정한다.

 

성능 측면의 간섭을 고려한다면,

공존 소프트웨어가 사용하는

자원의 양을 전형적인 상황과

극한의 상황을 만들어서 테스트를 수행할 수 있다.

 

신뢰성 측면의 간섭을 고려 한다면

그 공존 소프트웨어와 충돌이 발생할 가능성이 있는

시나리오를 파악하고 이를 테스트한다.


테스트 도구

효율적인 방식으로

데스트 케이스를 설계하거나 실행하기 위해서

테스트 도구를 적용하는 것이 바람직하다.

 

조직 테스트 전략과 테스트 계획 활동에서는

사용할 테스트 도구가 식별 된다.

 

테스트 실행을 자동화하기 위한 도구들은

테스트 환경을 수 립할 때 고려될 수 있다.

 

단위 테스트 및 통합 테스트를 수행할 때

테스트 대상을 실행시키는데 필요한

테스트 드라이버와 스텝을 자동으로 생성해 주는

도구를 이용할 수도 있다.

 

이와 같은 테스트 도구에 대한

구체적인 요건을 정의함으로써

실제 테스트 도구를 원활하게 사용할 수 있도록 한다.


테스트 환경 요건 명세서

테스트 환경 요건 명세서는

식별된 각 테스트 환경 항목들에 대하여

요건 등을 포함한 사항을 정의함으로써

이후에 수행되는 테스트 환경 구축 및 관리 활동에서

테스트 환경이 올바르게 구축될 수 있도록 한다.

테스트 환경을 구성하는 각 테스트 환경 항목에 대하여

다음을 정의한다.

 

테스트 환경 항목명

테스트 환경 항목의 이름이다.

테스트 계획 수립 활동에서 식별된

환경 항목에는 동일한 이름을 사용한다.

 

설명

해당 테스트 환경 항목이

어떤 목적으로 활용되는지를 기술한다.

해당 테스트 환경 항목이 필요한

개별 테스트의 이름과 피처 집합의 이름 등을 명시하면

테스트 환경 항목의 역할을 쉽게 파악할 수 있다.

 

요구사항

해당 테스트 환경 항목에 대한

구체적인 요건을 기술한다.

구체적인 요건은 테스트 환경 유형에 따라서 달라질 수 있다.

 

시스템 소프트웨어 유형의 테스트 환경 항목은

구체적으로 버전을 포함한 제품명과

함께 반드시 포함되어야 하는

플러그인 등을 기술한다.

 

필요시기

해당 테스트 환경 항목이 필요한 시점과

사용되는 기간을 기술한다.

동일 테스트 환경 항목이

여러 피처 집합에서 사용될 수 있으므로

각 활용되는 시점을 모두 기술한다.

 

담당자

해당 테스트 환경 항목을 준비하여

필요 시기에 사용될 수 있도록

책임지는 담당자를 기술한다.


테스트 데이터 요건 명세

테스트 데이터 요건

테스트 데이터는

테스트 케이스를 실행하는 데

필요한 데이터이다.

 

구체적으로 말하면 테스트 데이터는

테스트 케이스의 선행 조건과

입력에서 사용되는 데이터이다.

 

테스트 데이터가 하나의 문자,

숫자 등과 같이 단순한 형태라면

테스트 케이스에 직접 테스트 데이터를 명시하고

이러한 테스트 데이터를 준비하기 위한

특별한 작업이 불필요할 수 있다.

 

하지만 음성, 이미지, 동영상,

대량의 센서 데이터 등과 같이

규모도 크면서 형태가 복잡한 데이터가

테스트 데이터로 필요하다면,

이러한 테스트 데이터에 대한 요건을

구체적으로 정의해야 하고

테스트 환경 구축 및 관리 활동에서

테스트 데이터를 준비하기 위한

특별한 작업이 필요할 수 있다.

 

테스트 대상에 대한 입력 데이터

테스트 케이스를 실행하는 과정에서

테스트 대상에 입력되는 데이터이다.

 

함수 매개 변수와 같이

단순하지 않은 테스트 데이터는

데이터의 규모, 특성, 제약 사항, 빈도 등에

해당하는 요건을 정의한다.

 

테스트 대상의 상태 데이터

테스트 케이스 실행에 앞서

테스트 케이스에 명시된 선행 조건을

충족할 수 있는 특정 상태로

테스트 대상을 설정하는데 필요한 데이터이다.

 

시스템 테스트와 인수 테스트를 할 때

파일 또는 데이터베이스 등의 형태로

저장된 데이터가 이에 해당한다.

 

또한,

컴포넌트 테스트와 통합 테스트에서도

테스트 대상인 컴포넌트(들)를

특정 상태로 설정하기 위한

테스트 데이터를 결정할 필요가 있다.

 

테스트 환경 항목의 상태 데이터

각 테스트 환경 항목을

테스트 케이스에서 요구하는

상태로 설정하는데 필요한 데이터이다.

 

신뢰성 테스트를 하는 경우에는

인위적으로 외부 장치를

비정상 상태로 설정할 수 있는

데이터가 필요하다.

 

성능 테스트, 신뢰성 테스트를

수행하기 위하여 사용되는 테스트 도구를

원하는 상태로 설정하기 위한

데이터도 이에 해당된다.


테스트 데이터 요건 명세서

테스트 데이터 요건 명세서는

식별된 각 테스트 데이터들에 대한

요건 등을 포함한 구체적인 사항을 정의함으로써

이후 수행되는 테스트 환경 구축 및

관리 활동에서 테스트 데이터가

준비되도록 한다.

 

테스트 데이터명

테스트 데이터의 이름이다.

테스트 계획 수립 활동에서 식별된 경우에는

동일한 이름을 사용한다.

 

설명

해당 테스트 데이터의 역할을

쉽게 파악할 수 있도록 테스트 데이터가

어떤 목적으로 활용되는지 기술한다.

 

요구사항

해당 테스트 데이터에 관한 요건을 기술한다.

테스트 데이터의 값, 조건, 또는 값의 분포와

테스트 데이터의 규모, 접근 방법 등을 기술한다.

 

초기화 필요 여부

테스트를 수행하는 도중에

테스트 데이터를

초기화할 필요가 있는지 기술한다.

 

보관 필요 여부

테스트가 종료된 후에

테스트 데이터 보관 및

폐기 여부를 기술하고 그 방법도 기술한다.

 

담당자

해당 테스트 데이터를 준비하여

사용될 수 있도록 책임지는 담당자를 기술한다.


테스트 환경 구축 및 관리

테스트 환경 구축 및 관리 활동은

주어진 요건에 따라서 테스트 환경을 구축하고

테스트 데이터를 준비하여

테스트 실행 활동을 지원하는 것을 목표로 한다.

 

테스트 환경 구축

테스트 환경 요건 명세서에 명시된

각 테스트 환경 항목을 구축한다.

 

테스트 데이터 준비

테스트 데이터 요건 명세서에

명시된 테스트 데이터를 준비한다.

 

테스트 환경 구축 활동에서는

주어진 테스트 환경 요건 명세서 및

테스트 데이터 요건 명세서를 바탕으로

구축된 테스트 환경과

준비된 테스트 데이터에 대한 결과를

각각 산출물로 기록한다.

 

 

산출물 주요 항목
테스트 환경
준비 보고서
• 요약
• 각 테스트 환경 항목별 준비 상태
테스트 데이터 준비 보고서 • 요약
•각 테스트 데이터별 준비 상태

(테스트 환경 구축 및 관리 산출물 요약)


테스트 데이터 준비

테스트 데이터 요건 명세서에

명시한 요구사항을 충족할 수 있는

데이터를 확보하여 테스트 케이스가

실행될 수 있도록 지원한다.

 

테스트 데이터의 위치와

접근 방법도 충족할 수 있도록 해야 한다.

 

구성이 복잡한 대규모 데이터의 경우에는

테스트 데이터를 자동 생성하는 도구를 활용할 수도 있다.

 

또한,

테스트 데 이터가 주어진 요구사항을 충족하는지를

자동으로 검증하는 도구를 활용할 수도 있다.

전체 테스트 데이터에 대한 준비 상황은

테스트 데이터 준비 보고서에 기록한다.

 

요약

현재 시점에서 각 테스트 데이터에 대한

준비 상태를 바탕으로 전체 테스트 데이터의

준비상황을 요약하여 설명한다.

 

각 테스트 데이터별 준비 상황

테스트 데이터 요건 명세서에 명시한

각 테스트 데이터에 대한 준비 상황을 기술한다.

요구사항을 충족하는 테스트 데이터가

준비되었는지 기술한다.

 

만약,

아직 준비가 부족하다면 그 원인을 기술하고

적용할 해결 방법, 예정 완료 일자 등도 기술한다.


테스트 환경 구축

테스트 환경 요건 명세서에 명시된

각 테스트 환경 항목을 구축하여

테스트 대상의 실행 환 경을 지원한다.

 

즉,

테스트 케이스의 실행에 필요한 하드웨어,

시스템 소프트웨어, 외부 연동 시스템(또는 시뮬레이터),

공존 소프트웨어, 그리고 테스트 도구 등을 준비한다.

 

테스트 환경 요건 명세서에 명시한 규격의

하드웨어를 준비하며, 주어진 버전의 제품명을 가진

시스템 소프트웨어 및 공존 소프트웨어 등을 확보해서 설치한다.

 

외부 연동 시스템에 대해서도

실제 연동 시스템과 연동하기 위한 작업을 수행하거나

시뮬레이터를 사용하는 경우에는 시뮬레이터가

실제 연동 시스템과 비슷한 방식으로

동작할 수 있도록 설정한다.

 

이때, 시뮬레이터를 위하여

준비된 테스트 데이터가 활용될 수 있다.

 

테스트 도구에는 테스트 도구를

올바르게 사용하기 위한 설정을 한다.

 

특히,

성능 테스트, 신뢰성 테스트 등의 경우에는

테스트 도구를 통해서

생성한 테스트 데이터가

테스트 대상의 동작에 영향을 주므로

테스트 데이터 요구사항을 충족할 수 있도록

도구를 설정한다.

 

준비된 테스트 환경이

테스트 환경 요건 명세서에 명시한

요구사항을 충족하는지 확인한다.

 

범용으로 사용할 수 있는

테스트 도구가 있다면

그러한 도구를 활용해서

테스트 환경 구축 완료를 확인할 수 있다.

 

또는,

자체적으로 테스트 환경을 검증하기 위한

프로그램을 개발하여 적용할 수도 있다.

 

전체 테스트 환경에 대한 준비 상황은

테스트 환경 준비 보고서에 기록한다.

 

요약

현재 시점에서 각 테스트 환경 항목에 대한

준비 상태를 바탕으로

전체 테스트 환경의 준비 상황을

요약하여 설명한다.

 

각 테스트 환경 항목별 준비 상황

테스트 환경 요건 명세서에 명시한

각 테스트 환경 항목에 대한 준비 상황을 기술한다.

 

요구사항을 충족하는

테스트 환경 항목이 구축되었는지 기술한다.

만약, 아직 준비가 부족하다면

그 원인을 기술하고 적용할

해결 방법, 예정완료 일자 등도 기술한다.


산출물 요약


테스트 설계 및 구현 산출물

테스트 설계 명세서

각 피처 집합별로 목적, 우선순위, 피처 목록,

구체적 테스트 전략, 그리고 추적성을 기술한다.

각 피처에는 목적과 세부 피처 목록을 기술한다.

각 세부 피처에는 설명, 우선순위, 추적성을 기술한다.

피처 집합 목록
목적 우선순위 피처목록 구체적 테스트 전략 추적성
목적 세부 피처 목록
설명 우선순위 추적성
               
               
               
               

(테스트 설계 명세서 구성)


테스트 케이스 명세서

각 테스트 케이스에 대한 식별자를 기술한다.

이 식별자는 테스트 절차 명세서에서 사용된다.

그리고

각 테스트 케이스에 대하여 목적, 추적성,

우선순위, 선행 조건, 입력, 예상 결과를 기술한다.

테스트 케이스 식별자  
목적  
추적성  
우선순위  
선행 조건  
입력  
예상 결과  

(테스트 케이스 명세서 구성)


테스트 절차 명세서

각 테스트 절차는 목적, 우선순위,

시작작업, 테스트 케이스 목록,

종료 및 정리 작업,

다른 테스트 절차와의 관계를 기술한다.

 

테스트 케이스 목록은 테스트 절차에 포함되는

테스트 케이스에 대한 참조(테스트 케이스 식별자)와

해당 테스트 케이스 실행 시

추가적으로 필요한 선행 조건을 기술한다.

목적  
우선순위  
시작 작업  
테스트 케이스 목록
테스트 케이스 식별자 추가 선행 조건
TC1  
TC2  
---  
종료 및 정리 작업  
다른 테스트 절차와의 관계  

(테스트 절차 명세서 구성)


테스트 환경 요건 명세서

 테스트 환경 식별자는 테스트 설계 명세서와

테스트 케이스 등에서 구체적인 테스트 환경을

지칭하기 위하여 사용될 수 있다.

각 테스트 환경 항목에 이름, 설명, 요구사항,

필요시기, 담당자를 기술한다.

테스트 환경 식별자  
테스트 환경 항목 명세
환경
항목명
설명 요구사항 필요시기 담당자
         
         
         

(테스트 환경 요건 명세서 구성)

테스트 데이터 요건 명세서

테스트 데이터 식 별자는 테스트 설계 명세서와

테스트 케이스 등에서 구체적인 테스트 데이터를

지칭하기 위하여 사용될 수 있다.

각 테스트 데이터는 이름, 설명, 요구사항,

초기화 필요 여부, 보관 필요 여부, 담당자를 기술한다.

테스트 데이터 식별자  
테스트 데이터 명세
테스트
데이터명
설명 요구사항 초기화 필요 여부 보관 필요 여부 담당자
           
           
           

(테스트 데이터 요건 명세서 구성)


테스트 환경 구축 및 관리 산출물

테스트 환경 준비 보고서

요약에서는 테스트 환경 준비에 대한

전체적인 요약을 기술한다.

각 테스트 환경 항목에는 개별적으로

준비 상태를 기술한다.

요약  
테스트 환경 준비 상태
테스트 환경 항목명 준비 상태
테스트 환경 항목 1  
테스트 환경 항목 2  
---  

(테스트 환경 준비 보고서 구성)


테스트 데이터 준비 보고서

요약에서는 테스트 데이터 준비에 대한 전체적인 요약을 기술한다.

각 테스트 데이터에는 개별적으로 준비 상태를 기술한다.

요약  
테스트 환경 준비 상태
테스트 환경 항목명 준비 상태
테스트 환경 항목 1  
테스트 환경 항목 2  
---  

(테스트 데이터 준비 보고서 구성)

728x90