V&V(Verification & Validation, 검증 & 확인)는 소프트웨어 품질을 보증하기 위한 두 가지 핵심 프로세스입니다.
검증(Verification): "제품을 올바르게 개발하고 있는가?"
확인(Validation): "올바른 제품을 개발하고 있는가?"
소프트웨어 개발 생명주기의 각 단계별 검증 및 확인 활동을 시각화한 모델
요구사항 분석 ───────────────────────────────► 시스템 테스트
│ ▲
▼ │
시스템 설계 ───────────────────────────────► 통합 테스트
│ ▲
▼ │
아키텍처 설계 ───────────────────────────────► 시스템 통합 테스트
│ ▲
▼ │
상세 설계 ───────────────────────────────► 단위 테스트
│ ▲
▼ │
구현
| 용어 | 설명 |
|---|---|
| SQA(Software Quality Assurance) | 소프트웨어 품질 보증 활동 전반 |
| IV&V(Independent V&V) | 독립적인 검증 및 확인 활동 |
| QC(Quality Control) | 품질 통제 활동 |
| CMMI(Capability Maturity Model Integration) | 프로세스 성숙도 평가 모델 |
| SIL(Safety Integrity Level) | 안전 무결성 수준 |
| FMEA(Failure Mode and Effect Analysis) | 고장 모드와 영향 분석 |
| 구분 | 검증(Verification) | 확인(Validation) |
|---|---|---|
| 목적 | 제품을 올바르게 개발하고 있는지 확인 | 올바른 제품을 개발하고 있는지 확인 |
| 초점 | 프로세스와 방법론 준수 | 최종 제품의 품질과 적합성 |
| 대상 | 명세서, 설계서, 코드 등 중간 산출물 | 최종 시스템 |
| 시기 | 개발 과정 중 | 개발 후반부 또는 완료 후 |
| 방법 | 검토, 인스펙션, 정적 분석 등 | 테스트, 시뮬레이션, 시범 운영 등 |
| 질문 | "명세대로 만들고 있는가?" | "사용자가 원하는 것인가?" |
V&V는 '올바르게 만들었는지'와 '올바른 것을 만들었는지' 확인하는 두 가지 과정이에요. 마치 숙제를 할 때, 문제를 제대로 풀고 있는지(검증) 그리고 선생님이 낸 문제를 제대로 이해하고 풀었는지(확인) 점검하는 것과 같아요. 이렇게 두 가지를 모두 잘 확인해야 좋은 소프트웨어를 만들 수 있답니다!