오늘의 블로그 포스팅 내용은 ISTQB 자격증 대비를 위한 중요한 주제 중 하나인 '소프트웨어 개발 모델과 테스팅' 이다.
1. SDLC 모델별 테스팅
1.1. 폭포수 모델 (Waterfall Model)

- 설명
- SDLC의 고전적인 접근 방식으로, 단계가 순차적으로 진행된다. 각 단계는 명확하게 구분되며, 이전 단계가 완료된 후에만 다음 단계로 진행한다.
- 단계: 요구사항 분석 → 설계 → 구현 → 테스트 → 배포 → 유지보수
- 테스팅 특징
- 테스트는 주로 "테스트 단계"에서 집중적으로 수행된다.
- 요구사항 분석과 설계 단계에서 결함을 미리 발견하지 못하면 테스트 단계에서 더 큰 비용과 시간이 소요된다.
- 장단점
- 장점: 각 단계가 명확히 정의되어 관리가 용이
- 단점: 초기에 발견되지 않은 결함으로 인해 후속 단계에서 문제가 발생할 위험이 높음
시험 대비 포인트🎯
폭포수 모델에서 테스트는 주로 제품이 거의 완료된 시점에 수행되므로, 초기 결함 탐지의 중요성을 강조 !!
1.2. V-모델 (V-Model)

- 설명
- 폭포수 모델을 확장한 형태로, 각 개발 단계와 대응되는 테스트 단계가 병렬로 진행된다.
- 왼쪽: 개발 단계 → 요구사항 분석, 시스템 설계, 모듈 설계
- 오른쪽: 테스트 단계 → 인수 테스트, 시스템 테스트, 통합 테스트, 단위
- 테스팅 특징
- 단위 테스트(Unit Testing): 모듈 설계와 관련된 테스트
- 통합 테스트(Integration Testing): 시스템 설계와 관련된 테스트
- 시스템 테스트(System Testing): 시스템 요구사항과 관련된 테스트
- 인수 테스트(Acceptance Testing): 사용자 요구사항과 관련된 테스트
시험 대비 포인트🎯
V-모델에서 각 테스트 단계가 개발 단계와 어떻게 매핑되는지 이해하기 !!
1.3. 애자일 모델 (Agile Model)

- 설명
- 점진적이고 반복적인 개발 방법론으로, 소프트웨어를 작고 자주 배포 가능한 단위로 개발한다.
시험 대비 포인트🎯
짧은 주기마다 반복적인 테스팅의 중요성과 애자일 테스팅의 자동화 도구 활용
2. 테스팅 유형과 적용
2.1. 정적 테스팅 (Static Testing)
- 설명: 소프트웨어를 실행하지 않고 결함을 발견하는 방법.
- 예: 코드 리뷰, 설계 문서 리뷰, 정적 분석 도구 사용.
- 활용:
- 폭포수 모델: 초기 요구사항 분석 및 설계 단계에서 효과적.
- 애자일 모델: 매 스프린트마다 리뷰 활동을 병행.
정적 테스팅 자세히 알아보기
2.2. 동적 테스팅 (Dynamic Testing)
- 설명: 소프트웨어를 실제로 실행하여 결함을 발견하는 방법
- 예: 단위 테스트, 통합 테스트, 시스템 테스트, 회귀 테스트
- 활용:
- 모든 SDLC 모델에서 수행되며, 자동화 및 수동 테스트 방법으로 진행
3. 시험 대비 +α
1. 테스팅과 리스크 관리
각 SDLC 단계에서 발생할 수 있는 리스크를 식별하고, 리스크 기반 테스팅을 적용하는 방법
- 리스크 기반 테스팅:
- 고위험 영역(예: 복잡한 모듈, 사용자에 민감한 기능)에 우선순위를 둠
- 테스팅 시간과 리소스가 제한적인 상황에서 효과적
2. 테스팅과 품질 보증(Quality Assurance)
- 테스팅 활동이 품질 보증 프로세스의 일부로 어떻게 통합되는지 이해
3. 테스팅 역할과 책임
- 개발자와 테스터의 책임 분담
- 독립적인 테스팅의 중요성
istqb 시험 대비에 도움이 되었어요~