V-Model로 설계하는 검증과 확인 중심의 품질 보증

V-Model의 검증과 확인 단계 대응, 요구사항 추적성, 품질 게이트를 통해 SDLC 품질 보증 체계를 설계하는 방법

2026-08-15 · 최초 발행 2025-12-14

개발 산출물과 테스트 기준을 함께 설계하는 방식

V-Model은 폭포수 개발 모형의 단계적 생명주기에 각 단계와 대응하는 테스트 활동을 연결한 SDLC 품질 보증 프레임워크다. 요구사항에서 설계와 구현으로 내려가는 과정은 왼쪽에, 단위·통합·시스템·인수 테스트로 올라가는 과정은 오른쪽에 둔다. 각 개발 산출물에 맞는 테스트를 사전에 계획하고, 단계 사이의 추적성을 유지하는 것이 중심이다.

Verification은 명세를 지켰는지 검토하는 활동이다. 산출물이 상위 명세와 맞는지 정적 분석, 리뷰, 검토와 시험으로 확인하며 “올바르게 만드는가”를 다룬다. Validation은 사용자와 비즈니스 요구에 부합하는지 시험하는 활동으로, 동적 테스트, 운영 시나리오 검증, 인수 테스트, 현장 시험, UAT와 수락 기준을 통해 “올바른 것을 만드는가”를 확인한다.

요구사항에서 아키텍처, 상세 설계, 구현으로 내려가며 내용을 정련하고, 구현 뒤에는 단위·통합·시스템·인수 테스트를 거쳐 위로 검증한다. 이 양방향 흐름을 요구사항부터 테스트까지 연결하는 것이 V-Model의 핵심이다.

설계 단계에서 이미 정해지는 테스트의 역할

요구사항 분석은 인수 테스트 계획과 연결된다. 시스템 설계는 시스템 테스트 계획으로, 상세 설계는 통합 테스트 계획으로, 구현은 단위 테스트 설계로 이어진다. 테스트 계획을 앞당겨 세우는 Shift-left 방식은 결함을 일찍 찾고 수정 비용을 줄이며, 결함이 다음 단계로 전이되거나 증폭되는 것을 막는 데 목적이 있다.

요구사항–설계–코드–테스트 케이스 사이에는 양방향 추적성 매트릭스(RTM)를 둔다. 단계별 출구 기준(Exit Criteria)과 품질 게이트를 정하고, 커버리지·결함 밀도·리뷰 적합성 같은 정량 지표로 통과 여부를 판단한다. 단계 종료 시에는 SRR, PDR, CDR 같은 리뷰와 심사로 산출물 적합성을 확인하며, 안전·법규·성능 리스크는 등급화해 테스트 깊이와 커버리지 가중치에 반영한다.

정적 분석, 설계 리뷰, 표준 준수 점검은 구현 전 결함을 제거하는 수단이다. 위험 기반 테스트(Risk-based Testing)는 일정과 예산이 제한된 상황에서 결함 검출 효율을 높이기 위한 우선순위 기준이 되며, 안전·규제 요구가 있는 경우에는 관련 증적(Artifacts)을 축적해야 한다.

형상관리(SCM)와 변경관리(CCB)는 문서·코드·테스트의 버전과 라인을 유지한다. 요구·설계·코드·테스트 아티팩트는 모두 형상 관리 대상이며, 변경이 발생하면 영향도를 분석하고 회귀 테스트 자동화와 연계한다. 변경 요청은 영향 분석, 승인, 수정, 재검증으로 닫히는 폐루프로 운영하고, 베이스라인을 기준으로 산출물의 일관성을 관리한다.

산출물이 흘러가는 경로

요구사항 분석 단계에서는 비즈니스 목표, 이해관계자 요구, 규제 요구를 받아 요구를 수집·정제하고 우선순위를 정한다. 비기능 요구와 수용 기준, 추적성 식별자도 이때 정한다. 결과물은 SRS, 인수 테스트 초안, RTM 초기 버전이다. 모호성이 발견되면 변경 요청을 발행해 요구사항을 다시 정의한다.

시스템·아키텍처 설계에서는 SRS, 제약 조건, 기술 기준을 바탕으로 아키텍처 대안을 비교하고 인터페이스와 품질 속성 시나리오를 정의한다. SAD, 시스템 테스트 전략, 인터페이스 명세가 뒤따른다. 상위 명세를 바탕으로 PDR/CDR과 테스트 설계를 연계하며, 설계 결함은 영향 분석, 수정, 재검토로 처리한다.

상세 설계는 SAD와 데이터·인터페이스 명세를 입력으로 삼는다. 컴포넌트를 설계하고 시퀀스·상태를 모델링하며 오류 처리를 설계한다. 설계 명세서, 통합 테스트 설계, 테스트 데이터 전략이 이 단계의 산출물이다.

구현에서는 상세 설계와 코딩 표준을 기준으로 개발, 정적 분석, 코드 리뷰, 단위 테스트 작성·자동화를 수행한다. 소스 코드, 단위 테스트 리포트, 빌드 아티팩트가 생성된다. 실패한 테스트 케이스는 버그 티켓 발행, 수정, 재테스트로 이어진다.

확인 단계에서는 단위 테스트부터 통합, 시스템, 인수 테스트 순으로 계획 대비 실행을 점검한다. 테스트 계획·케이스·데이터와 릴리스 후보를 사용해 실행, 로그 수집, 커버리지 측정, 결함 관리와 회귀 자동화를 수행한 뒤 테스트 리포트, 커버리지·성능·안정성 지표, 릴리스 승인 또는 권고를 남긴다.

출구 기준을 충족하지 못하거나 결함 임계치를 초과하면 릴리스를 보류하고 해당 개발·시험 단계의 재작업 루프로 돌아간다. 요구사항의 모호성은 요구사항 정의로, 설계 결함은 설계 검토로, 구현 또는 시험 실패는 수정과 재테스트로 되돌아간다. 이때 영향도 분석과 추적성 갱신이 필요하다. 결함은 Priority/Severity별 해결 SLA에 따라 관리하고, 핫픽스와 릴리스를 분리한다. 변경은 CCB 승인, RTM 업데이트, 영향 범위 회귀 테스트, 베이스라인 재설정의 흐름으로 처리한다.

단계별 검증과 확인의 연결

확인(Validation)검증(Verification)검증 활동: 리뷰·정형 기법·합의검증 활동: 설계 리뷰·정적 분석검증 활동: 코드/설계 일치성점검설계 기준 단위 검증인터페이스/시퀀스 기준품질 속성/성능 기준수용 기준 충족도결함/요구 변경 발생영향도 분석·RTM 갱신요구사항 분석시스템/아키텍처 설계상세 설계구현단위 테스트통합 테스트시스템 테스트인수 테스트변경관리(CCB)

안전성, 통합 복잡도, 공급망이 만나는 지점

자동차 제어기(ISO 26262), 항공 소프트웨어(DO-178C), 철도 시스템(EN 50128), 의료 기기(IEC 62304)처럼 안전 요구가 강한 시스템은 V-Model의 적용 대상이 된다. 요구사항 분해와 HARA/FMEA 등의 위험 분석을 RTM에 결합하면 안전 요구의 검증·확인 증적을 한 흐름으로 관리할 수 있다. 독립적 검증 조직인 IV&V를 운용하기도 한다.

의료기기·헬스케어 환경에서는 IEC 62304, ISO 13485와 함께 위험 관리와 테스트 심도를 연계하고, 인수 테스트를 임상 시나리오 기반으로 운영한다.

대규모 엔터프라이즈 구축과 고도화, 공공·금융 SI 프로젝트에서는 데이터 마이그레이션 및 다수 인터페이스를 고려해 통합 테스트 계획을 먼저 세운다. 계약상 수락 기준을 관리하고 단계별 품질 게이트로 일정 리스크를 통제한다. 성능·부하 기준의 시스템 테스트 시나리오와 운영 전환 DR 리허설도 그 범위에 포함된다.

임베디드와 클라우드가 결합된 환경에서는 디바이스 펌웨어의 단위·통합 테스트와 클라우드 API 계약 테스트를 함께 운영한다. E2E 시나리오 검증은 Validation을 강화하는 수단이 된다. 레거시 리팩토링이나 모듈 교체에서는 공통 인터페이스 계약(API 계약 테스트)으로 통합 리스크를 줄일 수 있다.

공급망 협업 프로젝트에서는 Jira+Xray, Azure DevOps, Polarion 같은 ALM 도구로 사양과 테스트 사이의 추적성을 공유한다. CCB를 릴리스 기차 모델과 결합하면 다중 공급사의 변경을 동기화할 수 있다.

품질 비용과 규제 대응에 미치는 영향

결함 수정 비용 상승 곡선은 요구·설계 단계와 비교해 운영 단계에서 10배 이상이라는 경험치 기반 가정을 둔다. 선행 테스트 계획과 정적 검증을 도입하면 결함 유출률은 3050% 감소하고, 재작업 비용은 2035% 절감 가능하다고 추정한다. 초기 결함 검출률을 높이면 재작업 비용을 20~40% 절감할 수 있으며, 도메인·성숙도에 따라 편차가 존재한다.

요구 추적성 완성도를 90% 이상 달성하면 기능 누락과 불일치 같은 누락 결함 유형을 줄일 수 있다. 회귀 자동화는 반복 결함 재발률을 40% 이상 낮추고 안정적인 릴리스 주기 확보에 기여한다. 단계 게이팅은 일정 예측 가능성을 높이고, 변경 이력과 재검증 기록은 신뢰성을 높인다.

산출물과 테스트 증적의 일관성은 평가·감사 준비 기간을 단축하고 불합치 리스크를 낮춘다. 표준 준수 수준을 가시화하면 인증 리드타임 단축도 기대할 수 있다. 표준화된 산출물 템플릿과 워크플로는 온보딩을 단축하고, 생산 라인형 품질 관리 체계를 만드는 기반이 된다.

워터폴·애자일 사이에서의 선택

V-Model은 조기 테스트 설계로 결함 전이를 억제하고 성능 리스크를 사전에 식별하기 쉽다. 워터폴은 후행 테스트 경향으로 성능 이슈가 후반에 집중될 수 있으며, 애자일/Scrum은 반복적 성능 튜닝에는 유리하지만 전사적 성능 목표 관리는 난도가 존재한다.

대형·규제 프로젝트와 분업이 필요한 환경에서는 V-Model이 확장성과 산출물·심사 체계에 따른 운영 예측성을 제공한다. 워터폴도 대형화는 가능하지만 변경 비용이 높고 문서 중심의 일관성은 확보할 수 있어도 테스트 연계가 약할 수 있다. 애자일/Scrum은 기능 증분 확장과 협업·피드백에 유리하지만, 팀 자율성이 높아 일관성이 변동할 수 있어 표준화와 대규모 거버넌스가 필요하다.

변경 빈도가 낮거나 규제·안전 요구가 높은 환경에는 V-Model이 적합하다. 요구사항이 자주 바뀌고 탐색적 개발이 중심인 환경에서는 애자일과 결합한 하이브리드 적용을 권장한다. 이때 지속 통합, TDD, 자동화 테스트와 함께 추적성 매트릭스, 단계별 품질 게이트, 리스크 기반 테스트 전략, 변경 관리-재검증 폐루프를 최소 구성으로 둘 수 있다.

조직의 개발 흐름에 맞춰 경량화하기

도입 시에는 개발 단계와 테스트 단계의 매핑부터 정하고, 결함 밀도·커버리지·성능 SLT 같은 출구 기준과 품질 지표를 확정한다. 요구 ID 규칙과 링크 정책을 포함한 RTM 구조를 설계하고 템플릿을 표준화한다.

도구 체인은 ALM의 요구·테스트 관리, 워크플로우, 대시보드와 품질 게이트를 연결한다. 정적 분석(SonarQube), 보안 분석(SAST/DAST), 테스트 자동화(CI/CD)를 연계할 수 있다. 운영에서는 정기 CCB, 결함 분류 규칙, 영향도 분석 가이드, 위험 기반 테스트 우선순위와 회귀 테스트 선정 기준을 마련한다.

문서화와 추적성이 강화되어 안전성과 예측성을 얻는 대신, 초기 문서화·계획 비용은 늘고 변화가 잦은 환경에서는 민첩성이 저하될 수 있다. 스프린트 안에서 미니 V를 적용하거나 탐색적 테스트를 보완하고, 행동 주도 개발(BDD)과 결합해 요구와 테스트의 일치성을 강화하는 방식으로 보완할 수 있다.

V-Model소프트웨어 테스트요구사항 추적성품질 보증검증과 확인