하드웨어 개발에서 verification과 validation의 차이를 알아보세요. V&V 계획, V-Model, 그리고 피해야 할 일반적인 실수들을 살펴보세요.
하드웨어 설계는 때때로 테스트 벤치에서는 완벽해 보일 수 있습니다. MCU는 160MHz에서 안정적으로 동작하고, 센서는 I²C로 통신하며, 전원 공급 장치는 최대 부하에서도 12V를 유지합니다. 하지만 모든 요구사항을 충족하는 제품이라도 실제 사용자에게 전달되면 기대에 못 미칠 수 있습니다.
검증과 타당성 확인(V&V)은 요구사항 충족과 실제 사용 환경에서의 요구 충족 사이의 간극을 다룹니다. 일부 하드웨어 팀은 이 두 용어를 혼동합니다. V&V를 하나의 단계로 취급하거나, 프로토타입이 작동하는 것처럼 보인다는 이유로 둘 중 하나를 건너뛰는 팀은 감사 단계나 제품이 현장에 배치된 이후에 문제를 발견할 수 있습니다.
이 글에서는 하드웨어 개발에서 verification과 validation이 무엇을 의미하는지, 그리고 둘이 어떻게 다른지 설명합니다. 또한 V-Model을 통해 V&V가 요구사항과 어떻게 연결되는지, V&V 계획을 어떻게 수립하는지, 그리고 흔히 발생하는 실수를 어떻게 피할 수 있는지도 다룹니다.
Verification은 하드웨어가 정의된 요구사항 및 엔지니어링 사양과 일치하는지 확인하는 과정입니다. 즉, 다음 질문에 답합니다: 우리는 제품을 올바르게 만들고 있는가?
Verification의 목적은 가정을 증거로 대체하는 것입니다. 회로가 제대로 동작할 것이라고 추정하는 대신, 팀은 설계 또는 실제 프로토타입을 정의된 요구사항과 비교하고, 이를 충족하는지 여부를 보여주는 증거를 확보합니다.
Verification에는 다음과 같은 활동이 포함될 수 있습니다:
실무에서는 어떻게 보이는가하드웨어 개발에서 verification은 최종 제품이 나오기 훨씬 전부터 시작됩니다. 예를 들어 '12V 입력은 최대 부하에서 ±5% 이내를 유지해야 한다'는 요구사항을 생각해 봅시다. 이 요구사항은 단계적으로 verification됩니다. 먼저 회로도에서 부품 정격을 확인하고, 그다음 전력 시뮬레이션을 수행하며, 마지막으로 벤치에서 프로토타입을 측정합니다. 각 단계는 증거를 추가합니다. |
Validation은 하드웨어가 의도된 용도, 사용자, 그리고 운영 환경에서 실제로 제대로 작동하는지 확인하는 과정입니다. 즉, 다음 질문에 답합니다: 우리는 올바른 제품을 만들고 있는가?
Validation의 주요 목적은 제품이 실제로 해결하도록 설계된 문제를 해결한다는 증거를 제공하는 것입니다. 설계가 모든 기술 요구사항을 충족하더라도, 실제 운용 조건에서 기대한 대로 성능을 내지 못하면 부족할 수 있습니다. Validation은 완전한 시스템이 이해관계자가 실제로 필요로 하는 작업에 적합하다는 확신을 제공합니다.
Validation에는 다음과 같은 활동이 포함될 수 있습니다:
실무에서는 어떻게 보이는가상업용 드론이 벤치 테스트를 모두 통과했다고 가정해 봅시다. 이를 validation하려면 드론을 설계된 환경에서 운용해야 합니다. 높은 습도로 인해 센서 드리프트가 발생하거나, 직사광선 때문에 상태 LED를 읽을 수 없다는 사실이 발견된다면, 이 제품은 기술 요구사항에 대해서는 verification을 통과했더라도 의도된 용도에 대해서는 validation에 실패한 것입니다. |
하드웨어 개발 프로세스에서의 verification과 validation.
V&V는 시험, 측정, 검사, 해석과 같은 동일한 엔지니어링 도구를 사용하는 경우가 많습니다. 차이는 그 결과로 무엇을 입증하려는가에 있습니다.
예를 들어, 열 챔버 시험은 제품이 명시된 −20°C~60°C 범위에서 동작함을 verification할 수 있습니다. 반면 validation은 그 범위가 실제 요구와 맞는지를 묻습니다. 제품이 햇빛에 노출되는 인클로저에 설치되어 내부 온도가 75°C에 도달한다면, verification은 통과해도 실제 사용에서는 실패할 수 있습니다. 동일한 챔버도 완성된 제품이 현장에서 겪을 것으로 예상되는 온도 프로파일로 시험을 수행하면 validation을 지원할 수 있습니다.
Verification은 일반적으로 정의된 요구사항에 대해 더 직접적인 합격/불합격 결과를 제공하며, 개별 요구사항, 설계, 또는 하드웨어 요소에 적용할 수 있습니다. Validation은 통합된 시스템을 더 넓은 관점에서 보고, 그 전체 동작이 의도된 용도에 대해 수용 가능한지를 평가합니다.
요구사항 중심 프로세스에서 verification은 개별 기술 요구사항이 충족되었다는 증거를 축적합니다. 그리고 validation은 완성된 제품이 실제 운용 조건에서 이해관계자의 요구를 충족하는지 확인하며, 요구사항 자체가 불완전하거나 잘못되었음을 드러낼 수도 있습니다.
항목 | Verification | Validation |
질문 | 우리는 제품을 올바르게 만들고 있는가? | 우리는 올바른 제품을 만들고 있는가? |
비교 대상 | 요구사항, 사양, 설계 특성 | 의도된 용도와 이해관계자의 요구 |
초점 | 각 시스템 수준에서의 개별 요구사항, 설계 파일, 기술적 특성 | 의도된 사용 맥락에서의 완성된 제품 전체 |
시점 | 초기부터 시작해 개발 전반에 걸쳐 지속됨 | 요구사항 타당성 확인에서 시작해 완성된 제품의 형태가 갖춰질 때 다시 수행됨 |
사용 방법 | 검토, 검사, 해석, 시뮬레이션, 입증, 그리고 정의된 요구사항에 대한 시험 | 사용 사례 시험, 환경 시험, 사용자 평가, 현장 시험, 그리고 이를 뒷받침하는 해석 |
결과 | 하드웨어가 정의된 기술 요구사항을 충족한다는 증거 | 완성된 제품이 의도된 용도에서 이해관계자의 요구를 충족한다는 증거 |
V-Model은 하드웨어 개발 프로젝트 전반에서 V&V를 어떻게 구성할지 보여줍니다.
V-Model은 시스템 수명주기를 V자 형태로 나타냅니다. 왼쪽은 이해관계자의 요구와 기대에서 시작해 이를 시스템 및 서브시스템 요구사항으로 바꾸고, 다시 아키텍처와 상세 설계로 구체화합니다. V의 바닥은 구현 단계입니다. 오른쪽은 통합 과정을 거쳐 다시 위로 올라가며, 부품, 서브시스템, 완성 제품 수준에서 시험이 수행됩니다.
시스템 엔지니어링 프로세스의 V-Model.
왼쪽의 각 수준은 오른쪽의 시험 수준과 짝을 이루며, 이러한 대응 관계가 추적성을 만들어 냅니다. 각 요구사항은 이를 확인하는 V&V 활동 및 증거와 연결되며, 팀은 설계가 진행 중일 때 이미 그 활동을 계획합니다.
예를 들어, 12V 입력이 최대 부하에서 ±5% 이내를 유지해야 한다는 요구사항은 여러 수준에서 확인할 수 있습니다. 회로도상의 부품 정격 확인, 보드의 전력 시뮬레이션, 그리고 조립된 제품에서의 측정이 그 예입니다.
이 구조 안에서 V&V는 서로 다른 역할을 합니다:
하드웨어가 시험 단계에 도달할 무렵이면, 팀은 이미 무엇을 확인할지, 그것이 어떤 요구사항과 연결되는지, 결과를 어떻게 판단할지, 그리고 어떤 증거를 확보해야 하는지를 알고 있어야 합니다. V&V 계획은 이러한 결정을 하나의 문서로 정리합니다.
일반적으로 V&V 계획은 여섯 가지 결정을 포함합니다:
소프트웨어 버그는 업데이트로 수정할 수 있는 경우가 많지만, 하드웨어 설계의 문제는 보드가 제작되기 전에 수정하는 것이 가장 쉽습니다. 이러한 문제 중 상당수는 요구사항을 작성하는 방식과 V&V를 계획하는 방식에서 시작됩니다.
아래 표는 흔한 V&V 함정과 이를 방지하는 데 도움이 되는 모범 사례를 보여줍니다.
흔한 함정 | 피하는 방법 |
검증(Verification)과 타당성 확인(Validation)을 같은 활동으로 취급함 | 검증(요구사항 대비)과 타당성 확인(이해관계자 요구 대비)을 서로 구분되는 별개의 활동으로 계획합니다. |
모호하거나 시험할 수 없는 요구사항 작성 | 설계를 시작하기 전에 요구사항의 명확성과 시험 가능성을 검토하고, 요구사항과 함께 인수 기준도 작성합니다. |
하드웨어가 설계되고 제작된 뒤로 V&V 계획을 미룸 | 요구사항이 확보되는 즉시 V&V를 계획하고, 구현이 완료되기 전에 각 요구사항을 어떻게 검증할지 정의합니다. |
V&V 활동 간 우선순위를 명확히 정하지 않음 | 안전 중요 요구사항, 기술적 위험, 운영 조건을 기준으로 V&V 활동의 우선순위를 정합니다. |
실제 하드웨어 시험에만 의존함 | 각 요구사항에 가장 적합한 방법(리뷰, 검사, 해석, 시뮬레이션, 시연 또는 시험)을 대응시킵니다. |
관련 이해관계자의 의견을 누락함 | 초기 요구사항 단계부터 최종 타당성 확인까지 사용자와 주요 이해관계자를 참여시키고, 검증 단계에는 설계 엔지니어도 포함합니다. |
V&V 결과와 증거를 문서화하지 않음 | 각 V&V 활동에 대한 기록과 증거를 유지하여, 관련 요구사항까지 완전한 추적성을 확보합니다. |
개발 후반의 하드웨어 변경은 소프트웨어 변경보다 비용이 더 많이 드는 경향이 있습니다. 보드 재설계, 금형 변경, 또는 인증 시험 실패는 실제로 시간과 예산을 소모하며, 이미 출하된 장치의 하드웨어는 패치하기가 어렵습니다. 이 때문에 하드웨어 개발에서 검증과 타당성 확인은 특히 중요합니다. 두 가지를 함께 사용하면 팀은 네 가지 주요 이점을 얻을 수 있습니다:
하드웨어 개발에는 많은 요구사항과 시험 결과가 수반되며, 이를 프로젝트 전반에 걸쳐 수작업으로 추적하는 것은 어려울 수 있습니다. 그 결과 팀은 다음과 같이 흩어진 파일과 서로 연결되지 않은 도구들의 조합에 의존하게 될 수 있습니다:
공유 작업 공간에서 요구사항과 함께 V&V 활동을 계획하고 추적하려는 팀에게, Requirements Portal은 요구사항을 검증 계획, 테스트 실행, 증거, 변경 이력과 연결해 줍니다. 이를 통해 팀은 무엇이 이미 검증되었고 무엇에 아직 주의가 필요한지 확인할 수 있습니다.
요약하면, 검증은 하드웨어가 사양을 충족한다는 것을 입증하고, 타당성 확인은 그것이 실제로 사용자에게 제대로 작동한다는 것을 입증합니다. 이를 제대로 수행하려면 V&V는 마지막 점검표에 그쳐서는 안 됩니다. 제품 개발 프로세스의 첫날부터 내재화되어야 합니다.
V&V 프레임워크에 대한 이해를 더 깊게 하고 싶다면, 다음 자료들이 유용합니다:
이론에서 실무로 옮길 준비가 되었다면, Requirements Portal을 사용해 테스트 케이스를 요구사항 및 전자 설계와 연결하고, 커버리지를 추적하며, 엔지니어링 증거를 수집해 보세요.
아니요. Verification은 하드웨어가 정의된 요구사항을 충족하는지 확인합니다. Validation은 요구사항과 제품이 실제 사용에서 이해관계자의 필요를 반영하는지 확인합니다.
둘 다 초기에 계획되어야 하며, 어느 하나도 단일 단계로 끝나는 활동이 아닙니다. Verification은 설계가 진행됨에 따라 리뷰, 해석, 시뮬레이션으로 시작됩니다. Validation은 요구사항이 이해관계자의 필요와 맞는지 확인하는 것에서 시작하며, 통합된 제품의 형태가 갖춰질수록 그 비중이 커집니다.
일반적인 V&V 방법에는 리뷰, 검사, 해석, 시뮬레이션, 시연, 시험이 포함됩니다. 동일한 방법이라도 정의된 요구사항을 확인하는지, 아니면 의도된 사용 맥락에서 제품을 평가하는지에 따라 Verification 또는 Validation 모두를 지원할 수 있습니다.