용어집 · 테스트 기초
검증과 확인(V&V)
영어: Verification and validation
다른 이름: V&V, verification vs validation, 검증과 타당성 확인, 베리피케이션과 밸리데이션
정의
검증(verification)은 명세 기준으로 "제품을 올바르게 만들고 있는가?"를, 확인(validation)은 실제 요구 기준으로 "올바른 제품을 만들고 있는가?"를 묻습니다.
검증과 확인은 서로 보완하는 두 가지 점검으로, 보통 배리 뵘(Barry Boehm)의 표현으로 설명합니다. **검증(verification)**은 작업 산출물이 명세에 부합하는지 확인합니다. 즉 제품을 올바르게 만들고 있는가? **확인(validation)**은 제품이 의도된 환경에서 사용자의 실제 요구를 충족하는지 확인합니다. 즉 올바른 제품을 만들고 있는가? 명세가 잘못되었다면 시스템은 검증을 완벽히 통과하고도 확인에서 실패할 수 있습니다.
예시
요구사항에 “내보내기 버튼은 전체 주문의 CSV 파일을 생성한다”고 적혀 있습니다.
- 검증: 팀은 설계를 리뷰하고 코드를 인스펙션하며, Export를 클릭하면 모든 주문이 담긴 올바른 형식의 CSV가 생성되는지 테스트합니다. 실제로 그렇게 동작하므로 검증은 통과합니다.
- 확인: 재무팀이 써 보니 실제로는 월별로 필터링된 주문이 필요하고, 세금은 별도 열에 있어야 하며, 사용하는 스프레드시트 템플릿은 세미콜론 구분자를 전제로 합니다. 기능은 명세를 충족하지만 요구는 충족하지 못합니다. 확인은 실패입니다.
한눈에 보는 차이
| 검증(Verification) | 확인(Validation) | |
|---|---|---|
| 질문 | 제품을 올바르게 만들고 있는가? | 올바른 제품을 만들고 있는가? |
| 비교 기준 | 요구사항, 설계, 표준 | 사용자 요구와 의도된 용도 |
| 대표 활동 | 리뷰, 워크스루, 인스펙션, 정적 분석, 단위·통합·시스템 테스트 | 사용자 인수 테스트, 베타 테스트, 사용성 연구, 데모, 운영 피드백 |
| 실행되는 소프트웨어가 필요한가? | 항상은 아님: 리뷰도 검증임 | 대체로 필요함, 또는 현실적인 프로토타입 |
| 주로 수행하는 사람 | 개발자와 QA | 사용자, 고객, 프로덕트 오너 |
요구사항 리뷰나 코드 리뷰 같은 정적 기법은 항상 검증입니다. QA가 명세를 기준으로 수행하는 동적 테스트도 대부분 검증입니다. 확인에는 제품의 실제 대상이 되는 사람들이 참여합니다.
왜 중요한가
검증에만 집중하는 팀은 결함 있는 요구사항과 정확히 일치하는 소프트웨어를 출시할 수 있습니다. 시프트 레프트 실천은 양쪽 모두에 도움이 됩니다. 인수 기준을 사용자와 일찍 리뷰하는 것은 비용이 적은 확인이고, 커밋마다 돌아가는 자동화 테스트는 지속적인 검증입니다. 의료기기 같은 규제 산업에서는 V&V가 별도로 문서화되는 활동이며, 감사관은 각각에 대한 증거를 요구합니다.