[섹션 2: SW 개발 수명주기와 테스팅] 1. SW 개발 수명주기 모델
2.1 소프트웨어 개발 수명주기 모델
- 2.1.1 (K2): 소프트웨어 개발 수명주기에서의 소프트웨어 개발 활동과 테스트 활동의 관계를 설명할 수 있다.
- 2.1.2 (K1): 소프트웨어 개발 수명주기 모델을 프로젝트 정황과 제품 특성에 따라 수정해야 하는 이유를 식별할 수 있다.
소프트웨어 개발 수명 주기와 테스팅
- 여러 가지 소프트웨어 개발 수명주기 모델이 있으며, 각각 다른 테스팅 접근법을 요구함
- 모든 소프트웨어 개발 수명주기 모델에 적용하기 좋은 테스팅의 특성
- 모든 개발 활동은 그에 상응하는 테스트 활동이 있다.
- 각 테스트 레벨은 그 레벨에 맞는 구체적인 목적을 가진다.
- 주어진 테스트 레벨에 맞는 테스트 분석과 설계는 상응하는 개발 활동이 이루어지고 있는 동안 시작해야 한다.
- 테스터가 요구사항과 설계의 정의와 개선을 위한 대화에 참여하고, 작업 산출물 (예: 요구사항, 설계, 사용자 스토리 등)의 초안이 나오는 즉시 리뷰에 참여한다.
- 어떤 소프트웨어 개발 수명주기 모델을 선택하더라도 테스트 활동은 수명주기 초반에 시작해야 함.
- 테스팅을 초기에 시작하면 시간과 비용을 절약할 수 있음.
순차적 개발 모델과 테스팅

반복적 점진적 개발 모델
- 점진적 개발
- 요구사항 정의, 시스템 설계, 구축, 테스팅을 조각으로 나눠서 진행
- 소프트웨어 기능은 점진적으로 증가 - 기능 증분
- 반복적 개발
- 기능 집합을 일련의 주기 안에서 구현
- RUP (Rational Unified Process), 스크럼, 칸반, 나선형 또는 프로토타이핑

반복적 점진적 개발 모델과 테스팅
- 테스트 레벨은 중첩되거나 반복적으로 적용
- 지속적인 전달 혹인 배포를 활용하는 경우 여러 테스트 레벨에 대한 상당한 자동화 구현 요구
- 시스템이 커짐에 따라 리그레션 테스팅의 중요성 증가
정황에 따른 소프트웨어 개발 수명주기 모델
- 소프트웨어 개발 수명주기 모델은 프로젝트 정황과 특성에 따라 선태갛고 적용해야 함
- 프로젝트 목표
- 개발 대상 제품 유형
- 비즈니스 특성
- 식별된 제품 및 프로젝트 리스크
- 프로젝트 정황에 따라 테스트 레벨과 테스트 활동, 개발 수명 주기 모델을 조합하거나 조정할 수 있음
- 백엔드 시스템 개발과 테스팅에는 V-모델, 프런트엔드 사용자 인터페이스(UI) 기능의 개발과 테스트에는 애자일 모델 사용
- 프로젝트 초반에는 프로토타이핑을, 이후에는 점진적 개발 모델 적용
- 사물인터넷 시스템에서는 보통 오브젝트 별로 다른 소프트웨어 개발 수명주기 모델 적용
- 소프트웨어 개발 모델이 프로젝트 및 제품 특성의 맥락에 맞게 조정되어야 하는 이유
- 시스템의 제품 리스크의 차이 (복잡하거나 간단한 프로젝트)
- 많은 사업부가 프로젝트나 프로그램의 일부일 수 있음 (순차적 및 애자일 개발의 조합
- 제품의 짧은 출시 기간 (테스트 레벨에서 테스트 유형의 통합 및 테스트 레벨 병합)
문제
- 다음 중 모든 수명 주기 모델에 적용할 수 있는 좋은 테스팅의 특징은 무엇인가?
- a. 문서 승인이 필요할 때마다 테스터가 리뷰에 참여한다.
- b. 해당 개발 활동 종료 후, 즉시 테스트 설계를 시작한다.
- c. 프로젝트의 모든 테스트 단계는 동일한 테스트 목적을 가진다.
- d. 모든 개발 활동에는 대응하는 테스트 활동이 있다.
- 다음 프로젝트 및 제품 특성 중 소프트웨어 개발 수명주기 모델을 선택하고 조정하는 기준으로 적절하지 않은 것은?
- a. 테스트 팀이 선호하는 접근법
- b. 개발 대상 제품 유형
- c. 소프트웨어 출시 시기
- d. 식별된 제품 및 프로젝트 리스크
14번 문제 정답: d
15번 문제 정답: a