V&V

한승주·2024년 11월 12일

V&V(Verification and Validation)는 소프트웨어 개발 과정에서 제품의 품질과 신뢰성을 보장하기 위해 사용하는 중요한 프로세스입니다. Verification(검증)과 Validation(확인)은 각각 서로 다른 목적을 가진 활동으로, 각 단계에서 소프트웨어의 요구사항을 충족하는지 확인하고, 최종 제품이 실제 사용자 요구를 만족하는지 평가합니다.

1. Verification (검증)

Verification은 "소프트웨어가 올바르게 만들어지고 있는가?"에 대한 질문을 다루는 과정입니다. 이는 소프트웨어 개발의 각 단계에서 제품이 사양에 맞게 개발되고 있는지 확인하는 활동으로, 주로 개발 프로세스와 관련이 깊습니다.

  • 목적: 소프트웨어가 설계 명세서와 요구사항을 준수하고 있는지 확인하여 오류를 초기에 발견하고 수정하는 것입니다.
  • 활동: 설계 검토, 코드 검토, 인스펙션, 워크스루, 정적 분석 등이 포함됩니다.
  • 검증의 특징:
    • 개발 과정에서 각 단계가 올바르게 수행되고 있는지 확인합니다.
    • 설계 문서, 코드, 명세서 등 제품의 산출물을 검토하여 오류를 조기에 발견합니다.
    • 주로 내부 팀에 의해 수행됩니다.
    • 실제 실행 없이 정적 분석 기법을 활용할 수 있습니다.

2. Validation (확인)

Validation은 "소프트웨어가 올바른 제품인가?"에 대한 질문을 다루는 과정입니다. 즉, 최종 제품이 사용자의 실제 요구와 기대를 만족하는지 확인하는 활동으로, 주로 제품 자체에 집중합니다.

  • 목적: 최종 제품이 사용자가 요구한 기능을 올바르게 수행하는지, 그리고 실제 환경에서 사용자의 기대를 충족하는지 확인하는 것입니다.
  • 활동: 기능 테스트, 통합 테스트, 시스템 테스트, 사용자 수락 테스트(UAT) 등이 포함됩니다.
  • 확인의 특징:
    • 최종 제품이 요구사항을 충족하는지 검증합니다.
    • 실제 사용자 환경에서 수행되며, 제품의 외부 행동에 초점을 맞춥니다.
    • 사용자, QA 팀 또는 외부 이해 관계자에 의해 수행됩니다.
    • 실행 기반 테스트 기법(예: 동적 분석)을 통해 제품의 기능을 확인합니다.

3. Verification과 Validation의 차이점

항목Verification (검증)Validation (확인)
목적소프트웨어가 올바르게 만들어지고 있는지 확인소프트웨어가 올바른 제품인지 확인
주안점개발 단계 산출물이 요구사항을 준수하는지 검토최종 제품이 사용자 요구를 충족하는지 평가
방식문서 검토, 코드 리뷰 등 정적 검토 기법 사용실행 기반 테스트를 통한 동적 검증
수행 시점개발 과정의 각 단계개발이 완료된 후 최종 제품에 대해
담당자개발 팀 내부QA, 사용자, 외부 이해 관계자

4. Verification과 Validation의 중요성

  • 초기 오류 발견: Verification은 소프트웨어 개발 초기 단계에서 오류를 발견하여 수정하는 비용을 절감합니다.
  • 품질 향상: Validation은 제품이 실제 사용자 환경에서 잘 동작하도록 보장하여, 고객 만족도를 높이고 제품 품질을 강화합니다.
  • 리스크 감소: V&V 활동을 통해 미리 결함을 찾아내어 이후 단계에서의 문제를 예방할 수 있습니다.

5. V&V와 QA의 관계

V&V는 소프트웨어 품질 보증(QA)의 핵심 구성 요소입니다. QA는 소프트웨어의 전반적인 품질을 확보하기 위한 시스템적인 접근을 의미하며, V&V는 QA가 요구하는 품질 목표를 달성하기 위한 필수적인 활동으로 포함됩니다.

V&V 활동을 통해 제품이 개발 과정에서 요구되는 품질을 유지하고, 최종적으로 사용자의 요구를 충족하는지를 확인함으로써 품질을 보장할 수 있습니다.

profile
QA Engineer

0개의 댓글