소프트웨어 결함의 영향 (Mistake → Fault → Error → Failure → Hazard → Accident → Harm, 결함 전파와 소프트웨어 안전 확보 참조)을 막기 위한 두 가지 활동.
Boehm의 정의
| 구분 | 정의 | 의미 |
|---|---|---|
| 검증 (Verification) | “Are we building the product right?” | 소프트웨어가 요구사항(Spec)에 부합하여 구현되었음을 보장 — spec-based |
| 확인 (Validation) | “Are we building the right product?” | 소프트웨어 사용자가 의도한 환경/목적에 맞게 만들어졌음을 보장 — user-intended |
소개팅 비유: “내가 말한 그 사람은 맞지만(Verification O) 내가 정말 원한 그 사람은 아닌데… (Validation X)“
SDLC 단계별 V&V 매핑
V-Model 위에 V&V 영역을 매핑:
| V-Model 좌측 | V-Model 우측 | 영역 |
|---|---|---|
| 요구사항 정의 | 인수 테스팅 (사용자 테스팅) | Validation |
| 요구사항 분석 | 시스템 테스팅 | Validation |
| 아키텍처 설계 | 통합 테스팅 | Verification |
| 상세 설계 | 단위 테스팅 | Verification |
| 구현/코딩 | — | Verification |
V&V 기법 분류
정적 (Static)
산출물 문서 및 소스 코드를 실행시키지 않고 수작업/자동화 도구로 분석. 모든 개발 산출물 대상.
- Review — 비공식 검토
- Inspection — 공식 결함 발견 절차 (마이클 페이건)
- Static Analysis based on Tool — MISRA 체크, Unused Code, 중복 코드 탐지
→ 상세: 정적 테스트.
동적 (Dynamic)
소스 코드를 실제로 실행시켜 테스트 수행
- White-box & Black-box Testing → 소프트웨어 테스팅 참조
- Unit, Integration, System, Acceptance Testing
A-SPICE SWE.4 — Software Unit Verification
The purpose of the Software Unit Verification Process is to verify software units to provide evidence for compliance of the software units with the software detailed design and with the non-functional software requirements.
Base Practices
| BP | 활동 |
|---|---|
| BP 1 | Develop software unit verification strategy (회귀 전략 포함) |
| BP 2 | Develop criteria for unit verification |
| BP 3 | Perform static verification of software units |
| BP 4 | Test software units |
| BP 5 | Establish bidirectional traceability |
| BP 6 | Ensure consistency |
| BP 7 | Summarize and communicate results |
→ BP3 (정적) + BP4 (동적) = V&V 양면 모두 수행.
A-SPICE SWE.6 — Software Qualification Test
The purpose of the Software Qualification Test Process is to ensure that the integrated software is tested to provide evidence for compliance with the software requirements.
→ 소프트웨어 요구사항에 기반한 인수 테스트 수행. 측정 가능 목표: 요구사항 충족률, 결함 해결률.
Base Practices
| BP | 활동 |
|---|---|
| BP 1 | Develop software qualification test strategy (회귀 포함) |
| BP 2 | Develop specification for software qualification test |
| BP 3 | Select test cases |
| BP 4 | Test integrated software |
| BP 5 | Establish bidirectional traceability |
| BP 6 | Ensure consistency |
| BP 7 | Summarize and communicate results |