기출 V-Model 기반의 Waterfall Model 테스트

agnusdei·2025년 6월 18일

Software Engineering

목록 보기
24/59

❓ 문제

V-Model 기반의 Waterfall Model 테스트에 대해 설명하시오.


✅ 모범답안

1. 개념

**V-모델 (V-Model, Verification and Validation Model)**은 **전통적인 폭포수 모델(Waterfall Model)**에 테스트 활동을 병행 구조로 강화한 소프트웨어 개발 모델입니다.
개발 단계마다 **정확한 검증(Verification)**과 **적절한 검증(Validation)**을 위한 테스트 계획 및 실행이 **대칭 구조(V자형)**로 배치되어 있는 것이 특징입니다.


2. 역할 & 목적

  • 각 개발 단계에서 테스트 활동을 미리 계획하고 병행 수행하여 결함을 조기 발견하고 품질 향상 도모
  • 요구사항 누락, 설계 오류 등 전단계의 오류를 후속 단계에서 조기에 발견할 수 있도록 구조화
  • 테스트를 사후 작업이 아닌 동시 병행 작업으로 취급하여 품질 중심 개발 달성

3. 구조

V-모델은 왼쪽과 오른쪽 대칭 구조를 가집니다.

    요구사항 정의           ←    인수 테스트
        ↓                        ↑
   시스템 설계           ←    시스템 테스트
        ↓                        ↑
   아키텍처 설계        ←   통합 테스트
        ↓                        ↑
   모듈 설계             ←    단위 테스트
        ↓                        ↑
    구현(코딩)          
  • 왼쪽: 개발 단계 (요구사항 → 설계 → 구현)
  • 오른쪽: 테스트 단계 (단위 → 통합 → 시스템 → 인수)

4. 구성요소

구분개발 단계테스트 단계테스트 목적
사용자 요구사항 정의인수 테스트시스템이 사용자 요구 만족 여부
시스템 요구사항 분석시스템 테스트시스템 전체 기능 검증
아키텍처 설계통합 테스트모듈 간 인터페이스/데이터 흐름 확인
상세 설계단위 테스트개별 모듈의 기능 정확성 확인
구현없음개발 후 유닛 테스트 수행

5. 원리

  • 각 개발 단계에서 **명세서나 산출물(artifact)**이 생성되며
  • 대응하는 테스트 활동은 이 산출물을 기준으로 검증/검사 수행
  • Verification (검증): 올바르게 개발하고 있는가?
  • Validation (확인): 올바른 것을 개발하고 있는가?

6. 종류 (비교 용도)

모델특징
Waterfall Model단계별 순차적 개발, 테스트는 마지막 단계
V-ModelWaterfall 확장형, 테스트가 병행 구조로 포함됨
Agile Model반복 및 점진적 개발, 테스트는 반복 수행
Spiral Model리스크 기반 반복 모델, 프로토타입 중심

7. 핵심 용어 정리

용어정의
Verification요구사항에 맞게 정확히 개발되었는지 검증
Validation사용자의 요구를 만족하는지 확인
단위 테스트(Unit Test)개별 모듈 수준 테스트
통합 테스트(Integration Test)모듈 간 연결, 인터페이스 테스트
시스템 테스트(System Test)시스템 전체 기능 및 성능 테스트
인수 테스트(Acceptance Test)고객이 최종 수용 여부 판단 테스트

8. 특징

✅ 장점

  • 테스트 계획을 개발 초기부터 수립 가능
  • 결함을 조기에 발견하여 유지보수 비용 절감
  • 개발자와 테스터 간 명확한 역할 분리 가능

❌ 단점

  • 변경에 취약 (요구사항 변경 시 전체 흐름 재조정 필요)
  • 병행 개발 어려움, 유연성 낮음
  • 실제 코드 구현 전까지 테스트 코드 작성이 제한적

9. 비교 – Waterfall vs V-Model

항목Waterfall ModelV-Model
테스트 시점개발 완료 후개발 단계마다 병행
테스트 계획후속 단계선행 기획
구조직선형V자형 대칭
결함 발견 시점후기초기 가능
유연성낮음낮음 (같음)

10. 어린이 버전 요약 🧒

V-모델은 소프트웨어를 만들 때, 만드는 동시에 계속 테스트하는 모델이에요.
왼쪽에서는 계획을 세우고 만들고, 오른쪽에서는 만든 것을 하나씩 확인하고 검사해요.
이렇게 하면 문제를 빨리 찾아서 고칠 수 있어서 나중에 고치느라 고생하지 않아요!


✅ 결론

V-Model 기반의 Waterfall Model 테스트는 전통적인 순차적 개발 방식에 테스트를 병행함으로써, 소프트웨어의 품질을 강화하고 오류를 조기에 발견할 수 있도록 설계된 체계적인 개발 모델입니다.
기획과 테스트를 함께 생각하는 점이 핵심이며, 특히 기술사 시험에서는 단계별 연계와 검증 활동의 대응관계를 명확히 기술하는 것이 중요합니다.


✅ V-Model 단계별 연계 및 대응관계 표

개발 단계 (좌측)산출물연계 테스트 단계 (우측)테스트 목적테스트 기준 (Basis)
사용자 요구사항 정의 (User Requirement Specification)사용자 요구 명세서 (URS)인수 테스트 (Acceptance Test)사용자가 원하는 기능을 만족하는지 확인사용자 요구사항
시스템 요구사항 정의 (System Requirement Specification)시스템 요구 명세서 (SRS)시스템 테스트 (System Test)전체 시스템의 기능 및 성능 검증시스템 요구사항
아키텍처 설계 (High-Level Design, HLD)아키텍처 설계 문서통합 테스트 (Integration Test)모듈 간 데이터 흐름 및 인터페이스 검증모듈 간 인터페이스 정의
상세 설계 (Low-Level Design, LLD)상세 설계 문서단위 테스트 (Unit Test)각 모듈(클래스/함수)의 내부 로직 검증모듈 상세 설계
구현 (Coding)소스 코드– (테스트 실행 대상)

🔄 연계 흐름 요약 (단어 매칭)

  • 요구사항 정의 ↔ 인수 테스트
  • 시스템 요구 분석 ↔ 시스템 테스트
  • 아키텍처 설계 ↔ 통합 테스트
  • 모듈 설계 ↔ 단위 테스트
  • 구현 ↔ 테스트 수행 기반 대상

profile
DevSecOps, Pentest, Cloud(OpenStack), Develop, Data Engineering, AI-Agent

0개의 댓글