- 테스팅은 소프트웨어 개발 활동과 독립적으로 존재하지 않고 밀접하게 연계되어 있으므로 개발 수명 주기 모델(Life cycle model)에 기반하여 테스트 접근법을 다르게 적용해야 함
V-모델(순차적 개발 모델)
- 폭포수 개발 모델(Waterfall model)에 근간을 두고 있음
- 테스팅은 한번에 이루어 지는 것이 아니라 각각의 개발 단계에 대응하는 테스트 레벨이 별도로 존재
- 개발 단계의 요구사항 분석, 논리 설계, 물리 설계, 프로그램 코딩의 4단계의 개발 활동과 대응(반드시 1:1 대응은 아님)
1. V-모델에서 제시하는 테스트 레벨
- 일반적인 유형의 V-모델에서는 4단계의 테스트 레벨을 제시
- 테스팅에서 V-모델의 역할은 각각의 개발 단계에서 테스팅을 접근하는 방법을 개략적으로 이해하기 쉽게 모델화하여 보여주는 것
- 프로젝트나 소프트웨어 제품의 특성에 따라 V-모델에서의 개발 단계 및 테스트 레벨을 더 많이 구성할 수도 있고, 적게 구성할 수도 있음
1) 컴포넌트(단위) 테스팅
2) 통합 테스팅
3) 시스템 테스팅(시스템 테스팅 이후에 세스템 통합 테스팅이 존재할 수도 있음)
4) 인수 테스팅
V&V(Verification and Validation)
|
Verification (검증) |
Validation (확인) |
정의 |
개발단계의 산출물이 그 단계의 초기에 설정된 조건을 만족하는지 여부를 결정하기 위해 구성요소나 시스템을 평가하는 프로세스 |
명시된 요구사항들을 만족하는지 여부를 확인 하기 위해 개발 단계 말이나 중간에 구성 요소나 시스템을 평가하는 프로세스 |
특징 |
인간에 의한 테스팅(Human Testing) - 주로 산출물 위주의 검토 행위 |
컴퓨터 기반 테스팅(Computer-based Testing) 실제로 소프트웨어를 실행 |
Non-executable methods | executing | |
You built it right. | You built the right system. | |
종류 |
Requirements reviews Code Inspection Code Walkthrough Buddy Check Test Review |
Testing
|
반복적-점증적 개발 모델
- 요구사항 분석, 시스템 설계, 구현 및 테스팅하는 개발 주기가 잛게 연속적으로 반복하는 활동으로 이루어짐
1. 반복적-점증적 개발 모델의 장점
- 개발 리스크를 조기에 감소시킴
(초기 반복 단계에서 리스크가 높은 모듈이나 주요 아키텍처에 해당하는 시스템 일부를 우선적으로 개발하고 테스팅을 통해 결함이나 장애를 조기에 발견, 제거할 수 있는 기회를 확보)
2. 반복적-점증적 개발 모델의 예
1) 애자일(Agile) 개발 모델
2) RUP(Ration Unified Process)
3) RAD(Rapid Application Development)
4) 이해관계자 중심의 소프트웨어 개발(Outside-in Software Development)
5) 프로토타이핑(Prototyping)
3. 반복적-점증적 개발 모델에서의 테스팅
- 반복단계에서 생성한 산출물(프로그램, 시스템)은 일반적으로 테스트 레벨(컴포넌트, 통합, 시스템, 인수 테스팅) 전체 또는 일부를 거치면서 검증됨
1) 반복 단계의 증분 테스팅 수행
2) 부분 시스템 리그레션 테스팅 필요
- 이전 반복 단계에서 개발한 결과물은 현재의 반복에서 추가 개발한 증분(증가된 부분)에 의해 규모가 점차 커져 부분 시스템을 형성
- 리그레션 테스팅은 첫번째 반복 단계에서 테스팅한 이후로 모든 반복 단계에서 수행되어야 함
- 반복 단계가 거듭될수록 중요
3) 반복 단계별로 각각의 증분 산출물을 포함한 부분 시스템을 대상으로 베리피케이션과 벨리데이션을 수행
4) 초기 개발 단계에서 테스팅 및 테스트 환경과 개발(반복)이 진행되면서 테스팅 및 테스트 환경이 변경됨
- 제한된 세트의 집중된 테스트에서 시작하여 광범위한 세트의 분산된 테스트로 확장
- 테스트 대상 컴포넌트 점차 증가
- 단순한 테스트 환경에서 복잡한 테스트 환경으로 변화
- 시간이 지남에 따라 개별 유즈케이스 테스팅에서 유즈케이스간의 통합 테스팅으로 변화
개발 수명주기(Life Cycle) 모델에서의 테스팅
- 모든 개발 활동은 테스팅 활동과 대응
- 각 테스트 레벨은 그 레벨에 맞는 특정한 목적을 가지고 있음
- 주어진 테스트 레벨에 맞는 테스트의 분석과 설계는 대응되는 개발 활동 동안에 시작
- 테스터는 개발 라이프 사이클 동안에 초안이 준비됨과 동시에 해당 문서를 Review하는 활동에 참가
'Testing' 카테고리의 다른 글
4-2. 테스트 설계 기법의 종류 (0) | 2015.07.20 |
---|---|
4-1. 테스트 설계 및 구현 프로세스 (0) | 2015.07.20 |
2-3, 2-4. 테스팅 유형(Test Type), 유지보수 테스팅(Maintenance Testing) (1) | 2015.07.20 |
2-2. 테스트 레벨 (0) | 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 |
1-2. 테스팅의 정의, 테스팅 활동, 목적 (0) | 2015.07.07 |