매거진 QA의 시작

Verification

기초 테스팅 관련

by 제임스

Verification(확인)은 소프트웨어 개발 과정에서 “우리가 계획한 대로 제품을 제대로 만들고 있는가?”를 묻는 단계입니다.

이 과정은 소프트웨어가 설계 명세와 기준을 정확히 따르고 있는지 평가하며, 설계와 코드의 정확성을 점검하는 데 초점을 둡니다.


Verification이란?


Verification은 “올바르게 만들고 있는가?”를 평가합니다.

소프트웨어가 계획한 대로 만들어졌는지 확인하는 과정으로, 주로 개발 초기 단계에서 명세와 설계 문서를 기준으로 진행됩니다.


예를 들어, 쇼핑몰 앱에서 “장바구니 기능”을 구현한다고 가정해 봅시다.

• 요구사항 문서에는 “장바구니에 상품 추가, 삭제, 수량 변경 기능을 제공한다”고 명시되어 있습니다.

• Verification 단계에서는 개발된 코드와 기능이 이 요구사항에 정확히 부합하는지 확인합니다.

• 만약 “상품 삭제” 기능이 누락되었다면, 이는 Verification에서 문제로 발견됩니다.


Verification의 주요 특징


1. 개발 초기 단계에서 주로 수행

• 소프트웨어가 완성되기 전에, 설계 명세와 코드 작성이 올바르게 이루어지고 있는지를 초기에 점검합니다.

• 문제가 초기에 발견되면 수정 비용이 크게 줄어듭니다.

2. 문서를 기준으로 평가

• 요구사항 명세서, 설계 문서, 코드 리뷰 등을 활용해 소프트웨어가 정해진 기준을 따르고 있는지 확인합니다.

코드가 아니라 문서와의 일치 여부에 초점을 맞추는 것이 Verification의 핵심입니다.

3. 정적(Static) 테스트를 활용

• 소프트웨어를 실행하지 않고, 설계와 문서를 점검하거나 코드 리뷰를 통해 오류를 찾아냅니다.


Verification의 실제 사례


1. 설계 명세 확인

• 쇼핑몰 앱의 요구사항 문서에 “결제 화면에서 총 금액과 배송비를 별도로 표시한다”고 명시되어 있다고 가정합시다.

• Verification 과정에서 개발된 UI 설계가 이 명세를 충족하지 못한 것을 발견했다면, 이는 즉시 수정 대상이 됩니다.

2. 코드 리뷰

• 개발자가 작성한 코드를 동료 개발자들이 리뷰하면서, 설계 명세와 일치하지 않는 부분이나 논리적 오류를 발견합니다.

• 예를 들어, “할인 코드 적용” 기능의 코드를 검토한 결과, 할인이 잘못 계산되고 있다는 것을 찾아냅니다.

3. 테스트 케이스 기반 확인

• 요구사항에 따라 작성된 테스트 케이스를 실행하여, 결과가 설계 명세와 일치하는지 평가합니다.

• 예: “장바구니에 상품을 추가하면 총 금액이 자동으로 업데이트되어야 한다”는 테스트 케이스를 실행해 확인.


Verification의 비유: 건축 도면 점검


Verification은 마치 건축 도면을 검토하는 과정과 같습니다.

• 건물을 짓기 전에 설계 도면이 안전하고 정확하게 작성되었는지 점검하는 것처럼, Verification은 소프트웨어가 요구사항과 설계 명세에 따라 올바르게 만들어지고 있는지를 검토합니다.

• 도면에서 오류를 발견하면, 건물을 짓기 전에 수정할 수 있듯이, Verification을 통해 소프트웨어 설계 단계에서 문제를 조기에 해결할 수 있습니다.


Verification의 중요성


1. 초기 문제 발견으로 비용 절감

• 초기 단계에서 설계 명세와 일치하지 않는 부분을 발견하면, 제품이 완성된 후 발견되는 문제보다 훨씬 적은 비용으로 수정할 수 있습니다.

2. 소프트웨어 품질 확보

• Verification은 설계와 구현의 정확성을 확인하므로, 품질 문제를 사전에 예방하는 데 중요한 역할을 합니다.

3. 팀 간의 명확한 소통

• Verification은 문서를 기반으로 진행되기 때문에, 요구사항을 명확히 이해하고 개발 방향성을 팀원 간에 일치시키는 데 도움을 줍니다.


Verification의 한계


Verification은 소프트웨어가 “제대로 동작하는지”를 보장하지는 않습니다.

이는 Validation(검증)에서 다루게 되며, Verification은 설계와 문서의 일치 여부에만 초점을 맞춥니다.

쉽게 말해, Verification은 제품의 내적인 정확성을 평가하지만, 실제 사용자 경험은 Validation을 통해 확인됩니다.


Verification 없이는 무엇이 문제일까?


Verification 없이 소프트웨어를 개발하면, 설계와 요구사항이 제대로 반영되지 않아 다음과 같은 문제가 발생할 수 있습니다:

• 잘못된 방향으로 개발이 진행되어, 많은 재작업과 수정이 필요하게 됩니다.

• 개발 후반부에 결함이 발견되면, 수정 비용이 크게 증가합니다.

• 팀원 간의 오해로 인해 비효율적인 작업이 이루어질 수 있습니다.


Verification은 “우리가 올바르게 만들고 있는지”를 확인하는 중요한 과정입니다.

이를 통해 설계와 문서의 기준에 맞는 소프트웨어를 개발할 수 있으며, 품질 문제를 조기에 예방할 수 있습니다. Verification은 소프트웨어 개발의 기초 체력을 다지는 과정으로, 성공적인 프로젝트를 위한 필수 단계입니다.

keyword
매거진의 이전글Validation