검증(Varification)과 확인(Validation)
검증과 확인은 줄여서 V&V
로 칭하기도 합니다. 소프트웨어를 개발하다보면 제품은 올바르게 생성하고 있는지, 사용자의 요구사항에 맞게 올바르게 생성하고 있는지를 검사합니다.
그렇다면 검증과 확인은 무엇인지 정확히 알아보겠습니다.
📌 Varification(검증)
검증은 소프트웨어가 요구사항 문서에 부합하게 구현되었는지를 확인하는 것을 의미합니다.
📌 검증의 특징
- 정적(Static) 테스팅 에서 많이 활용
- (개발자의 관점에서) 개발하고 있는 시스템이 요구사항에 맞는지
- 요구사항 문서에 부합하게 구현되었는지를 확인하는 것
- 제공된 요구사항이 실제 요구사항과 일치하다는 가정하에 요구사항대로 잘 만들어지고 있는지
- 제품을 올바르게 만들고 있는지 예방하는 과정
👀 Validation (확인)
👀 확인의 특징
- 동적(Dynamic) 테스팅 에서 많이 활용
- (사용자 관점) 개발되고 있는 시스템이 요구사항에 맞는지
- 실제 고객의 요구사항의 빠진 요소 없이 모든것을 포함하는지
- 요구사항에 맞게 만들고있는지 수정의 과정
💭 검증(Varification)과 확인(Validation) 작업을 수행하기 위한 방법
그렇다면, 검증과 확인에서 정적 테스팅과 동적 테스팅은 무슨 말일까?
🙇 정적(Static)인 방법
- 소프트웨어를 실행하지 않고, 결함을 찾아내는 방법
- 기본적으로 프로그램을 실행하지 않고, 분석하기에 소프트웨어 개발 과정 중에 생성되는 모든 산출물들에 대해서 적용 가능
- 대표적인 예시 : 검토, 인스펙션
🕺 동적(Dynamic)인 방법
- 소프트웨어를 실행하여 결합을 찾아내는 방법
- 테스트 데이터로 실제 프로그램을 실행하여 나타나는 결함을 찾고, 발견된 결함은 디버깅 활동으로 확인 및 수정
- 대표적인 예시 : 테스팅