검증 대 타당성 확인

두 가지 활동. 두 가지 증거 자료. 둘 다 요구사항입니다.

검증(Verification)과 확인(Validation)은 다루는 문제가 다르고, 필요한 활동도 다르며, 도출되는 증거도 다릅니다. 규제 대상 산업에서는 ISO 26262, DO-178C, IEC 61508에 따라 이 두 가지에 대해 서로 다른 필수 문서화 요구사항이 적용됩니다. 이 두 가지를 동의어로 취급하는 개발 팀은 대개 감사라는 최악의 순간에야 비로소 그 차이를 깨닫게 됩니다.

핵심적인 차이점

이 둘을 구분하는 가장 간단한 방법은 다음과 같습니다:

검증

우리가 소프트웨어를 제대로 개발했나요?

검증

우리가 제대로 된 소프트웨어를 만들었을까?

검증은 소프트웨어가 사양을 올바르게 구현했는지 확인하는 과정입니다. 타당성 검사는 사양이 최종 사용자나 시스템이 필요로 하는 바를 올바르게 반영하고 있는지 확인하는 과정입니다.

실무에서의 검증

검증 활동은 소프트웨어의 내부적 정확성에 중점을 둡니다. 여기에는 다음이 포함됩니다:

  • 정적 코드 분석: 소스 코드를 실행하지 않고 결함 및 표준 위반 사항을 검사하는 것
  • 단위 테스트: 개별 구성 요소를 사양에 따라 독립적으로 평가하는 것
  • 코드 범위 검사: 테스트가 코드를 적절히 실행하고 있는지 확인
  • 요구사항 기반 테스트: 모든 test 케이스를 특정 요구사항과 연결하는 것
  • 동료 검토 및 검사: 코드와 문서를 체계적으로 검토하는 과정

 

검증의 결과물은 문서화된 증거입니다. 즉, 어떤 요구사항이 어떻게 검증되었는지를 보여주는 평가 결과, 커버리지 보고서 및 추적성 매트릭스 등이 있습니다.

실무에서의 검증

검증 활동은 시스템이 단순히 사양서에 명시된 내용뿐만 아니라 실제로 요구되는 기능을 제대로 수행하는지 확인하는 과정입니다. 이러한 활동은 일반적으로 개발 생명주기의 후반부에 이루어지며, 다음을 포함합니다:

  • 최종 사용자 요구사항 또는 운영 시나리오에 따른 시스템 테스트
  • 임베디드 시스템을 위한 Hardware-in-the-Loop(HIL) 테스트
  • 고객 또는 규제 기관이 참여하는 인수 평가

 

검증을 통해 올바르게 구축된 시스템이 동시에 올바른 시스템임을 확인합니다.

규제 대상 산업에서 두 가지 요구사항이 모두 필요한 이유

ISO 26262, DO-178C, IEC 61508 및 IEC 62304를 비롯한 표준들은 검증 및 확인 활동을 모두 명시적으로 요구하며, 각 활동에 대한 문서화된 증거를 제시해야 합니다. 검증 증거에는 일반적으로 단위 테스트 보고서, 정적 분석 결과 및 coverage data가 포함됩니다. 확인 증거에는 시스템 수준 테스트 결과 및 인수 기록이 포함됩니다.

VectorCAST와 PC-lint Plus는 이러한 표준에서 요구하는 검증 가능한 증거를 생성함으로써, 이 과정의 검증 측면을 지원하도록 설계되었습니다.