매거진 QA의 시작

Validation과 Verification의 차이

기초 테스팅 관련

by 제임스

소프트웨어 개발에서 Validation(검증)Verification(확인)은 마치 두 쌍둥이처럼 자주 언급되지만, 서로 다른 역할과 목표를 가지고 있습니다.

이 둘을 헷갈린다면, 소프트웨어 품질 보증 과정에서 잘못된 방향으로 노력할 수 있습니다.

Validation과 Verification의 차이를 명확히 이해하면, 테스트 프로세스는 훨씬 더 체계적이고 효율적으로 이루어질 수 있습니다.


Validation: 검증


Validation은 “우리가 올바른 제품을 만들고 있는가?”를 묻는 과정입니다.

즉, 소프트웨어가 사용자의 요구와 기대를 충족하는지 확인하는 활동입니다. Validation은 사용자 관점에서 소프트웨어가 실제로 유용하고 필요한 기능을 제공하는지를 평가합니다.


Validation의 주요 특징


주요 목적: 사용자의 요구와 기대를 충족하는지 확인

수행 시점: 개발 완료 후 또는 프로토타입 단계에서 주로 진행

방법

• 사용자 테스트(User Testing)

• 사용자 인터뷰와 설문조사

• 사용성 테스트(Usability Testing)

예시

새롭게 추가된 채팅 기능이 실제 사용자 그룹의 기대에 부합하는지를 평가하기 위해 테스트를 진행합니다.


Validation은 마치...


Validation은 새로운 요리를 만들고 손님들에게 맛을 평가받는 과정과 같습니다.

아무리 요리사가 멋진 플레이팅을 완성했더라도, 손님들이 맛이 없다고 느낀다면 그 요리는 실패입니다.

Validation은 손님(사용자)의 입맛을 만족시키기 위해 필요한 작업입니다.



Verification: 확인


Verification은 “우리가 제품을 올바르게 만들고 있는가?”를 묻는 과정입니다.

소프트웨어가 설계 명세와 요구사항을 정확히 따르고 있는지 내부적으로 점검하며, 주로 개발 단계에서 이루어집니다.


Verification의 주요 특징


주요 목적: 설계 명세와 요구사항을 정확히 구현했는지 확인

수행 시점: 개발 초기 및 중간 단계에서 주로 진행

방법

• 코드 리뷰(Code Review)

• 정적 테스트(Static Testing)

• 요구사항 문서 검토

예시

로그인 기능이 “ID와 비밀번호를 입력하면 인증 API를 호출한다”는 설계 명세를 정확히 따르고 있는지를 코드 리뷰로 점검합니다.


Verification은 마치...


Verification은 건축 설계도를 검토하는 과정과 같습니다.

건축가가 설계도를 그린 대로 집이 제대로 지어지고 있는지 확인하는 것처럼, Verification은 소프트웨어가 요구사항을 정확히 구현하고 있는지 점검합니다.



Validation과 Verification의 주요 차이점

스크린샷 2024-12-11 18.48.21.png Validation과 Verification의 주요 차이점


실제 사례로 이해하기


1. Verification 단계

QA 팀이 결제 기능의 요구사항 문서를 검토합니다.

문서에 “결제 완료 버튼 클릭 시 서버에 결제 데이터를 전송한다”고 명시되어 있다면, Verification에서는 이 과정이 코드에 정확히 구현되었는지 확인합니다.

질문: “이 코드는 요구사항 문서에 적힌 대로 작성되었는가?”


2. Validation 단계

이후, 실제 사용자가 이 결제 기능을 사용하는 동안 원활하고 직관적인 사용자 경험을 제공하는지 평가합니다.

예를 들어, UI가 직관적인지, 결제 과정에서 혼란이 없는지 등을 테스트합니다.

질문: “이 기능은 사용자의 요구와 기대를 충족시키는가?”


Validation과 Verification은 함께 움직인다


Validation과 Verification은 각각 다른 목표를 가지고 있지만, 서로 보완적인 역할을 합니다.

Verification은 설계 명세에 따라 기초를 단단히 쌓는 과정이고, Validation은 사용자의 기대에 맞게 집을 아름답게 꾸미는 과정입니다.


이 둘을 적절히 조화시키면, 내부적으로 정확하고 외부적으로 유용한 소프트웨어를 만들 수 있습니다.



Verification: 내부적으로 정확한 소프트웨어

Validation: 외부적으로 유용한 소프트웨어


이 둘을 구분하고 제대로 수행하면, 결함을 예방하고 사용자 만족도를 극대화할 수 있는 성공적인 소프트웨어를 만들 수 있습니다.

keyword
매거진의 이전글Test Environment