본문 바로가기
조각 메모/개발 과정에서 만난 용어

개발 과정에서 만난 용어: verification vs validation

by 테크 셰르파 2022. 8. 2.

썸네일-verification vs validation

 

전공 공부하는 과정에서 verification과 validataion이라는 단어를 많이 볼 수 있습니다. 영한사전으로 검색하면 둘 다 '확인'이라는 뜻으로 검색됩니다. 그래서 검색을 해보니, 저 이외에도 많은 분들이 비슷한 질문을 해주신 것을 볼 수 있었습니다. 두 가지를 비교하면 다음과 같습니다.

 

Verification은 개발자 관점에서의 시스템 검증 활동을 의미합니다. 즉, 개발하고 있는 시스템이 미리 정의한 사양 (specification)에 부합하고 있는지를 검증하는 것입니다. 아직 실제 시스템은 없기 때문에, 시뮬레이션 결과 등을 통해서 검증하는 과정이 필요합니다.

 

Validation은 사용자 관점에서의 시스템 검증 활동을 의미합니다. 즉, 개발 완료 된 시스템이 사용자의 요구 사항을 충족하는지 확인하는지를 검증하는 것입니다. 이 때에는 실제 시스템이 존재하기 때문에, 직접 타깃 시스템을 이용해 검증하게 됩니다.

 

제가 관심있는 SoC (System-on-Chip) 분야에서 예를 들면 다음과 같습니다. 실제 SoC가 생산되는 tape-out 단계를 전후로 구분하게 됩니다. 즉, verification은 specification, architecture, RTL design, physical design에서 개발자가 시뮬레이터를 이용해 검증하는 과정을 의미합니다. 반면, validation은 실제 생산 된 SoC를 이용해  기능이 올바르게 동작하는지 확인하는 과정을 의미합니다.

 

포괄적으로는 verification은 you built it rigit을 의미하고, validation은 you built the right thing을 의미합니다. 그러므로 verifcation한 후에 validation하는 것이라고 이해하기 보다는 두 가지 방식을 반복적으로 적용하면서 시스템이 잘 설계 되고 있는지를 확인하는 것이 중요합니다.

댓글