Notice
Recent Posts
Recent Comments
Link
관리 메뉴

Douglas' Space

Verification & Validation 이란 본문

Development Diary/Verification and Validation

Verification & Validation 이란

똘키아빠 2023. 1. 29. 19:19

1. 들어가면서
 
약어로 IV&V라는 단어를 많이 접했을 것입니다. Independent Verification & Validation의 약자입니다. 소프트웨어 시스템에서는 Verification을 '검증', Validation을 '확인'이라는 말로 번역하여 사용합니다. 이 V&V를 해석하는 것이 학문분야별로 다른 것 같습니다. IV&V는 독립적인 V&V라는 의미로서 V&V의 활동을 개발조직과 독립성을 갖고 수행해야 한다는 품질활동의 어떤 방법적인 면을 나타내고 있습니다.  
 

칼과 방패는 서로 반대되는 개념의 무기입니다. 칼은 방패를 뚫을 수 있어야 하고, 방패는 칼을 방어해야 합니다. 우리가 시스템을 개발할 때 좋은 품질의 시스템을 개발해야 합니다. 그러나 개발하는 사람은 자기 개발하는 시스템의 결함이 존재하는 것을 싫어하기 때문에 결함이 존재하는지를 잘 발견하지 못합니다. 따라서 결함의 발견은 개발조직이 아닌 독립적인 조직이 잘 수행합니다. 마치 칼과 방패의 개념과 같습니다. 칼 만드는 사람이 개발자라면 방패를 만드는 사람이 품질을 담당하는 검증 및 확인하는 테스터들입니다.
 
2. 결함과 품질
 
아무리 잘 개발된 시스템이라 하더라도 결함(Defect)이 존재합니다.  특히 소트프웨어 시스템의 경우는 결함이 없다는 것을 보장할 수 없습니다.  다만, 결함을 발견하지 못할 뿐입니다. 특히 프로그램의 결함을 우리는 Fault 또는 Bug라고 합니다. 버그는 컴퓨터를 처음 만들었던 시절 진공관으로 구성되어 밤마다 컴퓨터의 진공관 불빛으로 벌레들이 침투하여 전기적으로 벌레가 컴퓨터의 오동작을 일으키어 fault를 대신하여 사용하게 되었습니다.
 

IEEE 1044에서의 Defect Model

 IEEE 1044에 따르면 defect에 따라 시스템의 Failure가 발생하고, 이것이 궁극적으로 어떤 문제를 야기하게 됩니다. 그리고 이러한 defect를 제거하는 것이 유지보수에서 Corrective Maintemence라고 합니다. 하여간 이러한 결함을 최소로 하는 것이 품질을 높이는 것이며, Verification과 Validation은 이 결함을 발견하는 품질보증활동이라고 할 수 있습니다. 특히 소프트웨어 시스템의 결함은 단순히 프로그램에 존재하는 결함만을 의미하는 것이 아니라 프로그램을 만들고 시험하기 위한 데이타 및 기술문서에 포함된 결함을 모두 의미한다.
 
3. Verification과 Validation의 정의
 
다양한 정의가 존재하지만 ISO 25000시리즈인 SQUARE 모델의 정의에 따라 이들의 정확한 정의와 개념을 설명하면 다음과 같습니다.
 
Verification: the process of evaluating a system or component during the development process to determine whether the products of the given phase of the life cycle fulfill the specified requirements
Validation: the process of evaluating a system or component during or at the end of the development process to determine whether it satisfies specified requirements.
 
위의 정의를 기준으로 생각해 보면 두 활동 모두 제품을 평가하는 활동, 즉 다시말해 제품의 결함이 존재하는 가를 검토하는 활동이라고 할 수 있습니다. 다른 관점에서는 검증인 verficiation은 개발과정에서 명시된 요구사항을 만족하도록 개발을 잘 진행하고 있는 가를 평가하는 활동이고, 확인인 validation은 개발된 최종 제품이 최초의 요구한 요구사항을 만족하는 가를 평가하는 활동입니다.
 
결론적으로 Validation(확인)은 최종 구현된 실행 프로그램의 품질인 Exernal Quality를 평가하는 테스트활동을 주로 의미하며, Verification(검증)은 프로그램 개발을 위해 산출되는 기술문서들과 같은 산출물의 품질인 Internal Quality를 평가하는 활동을 의미한다고 할 수 있습니다. 

'Development Diary > Verification and Validation' 카테고리의 다른 글

ISO 25000 Quality Model  (0) 2023.01.31