BVT 테스트란 무엇인가? 배포 전 가장 먼저 확인하는 테스트

소프트웨어 개발 과정에서 새로운 기능을 추가하거나 버그를 수정한 뒤에는 여러 종류의 테스트가 진행됩니다. 하지만 모든 기능을 처음부터 세세하게 테스트하기 전에 반드시 확인해야 하는 것이 있습니다. 바로 프로그램이 정상적으로 실행되고 핵심 기능이 동작하는지를 확인하는 것입니다.

이때 사용하는 대표적인 테스트 방법이 BVT 테스트입니다.

BVT는 Build Verification Test의 약자로, 새로운 빌드가 테스트를 진행할 수 있을 정도로 정상적인 상태인지 확인하는 테스트를 의미합니다. 쉽게 말하면 본격적인 QA 테스트를 시작하기 전에 프로그램의 기본적인 상태를 확인하는 1차 점검 과정이라고 할 수 있습니다.

이번 글에서는 BVT 테스트란 무엇인지부터 진행 방법, 테스트 항목 그리고 스모크 테스트와의 차이까지 알아보겠습니다.

BVT 테스트란?

BVT(Build Verification Test)는 개발팀에서 새로운 소프트웨어 빌드가 생성되었을 때 해당 빌드가 기본적인 기능을 정상적으로 수행하는지 확인하는 테스트입니다.

소프트웨어에서는 기능 추가나 버그 수정이 이루어질 때마다 새로운 빌드가 만들어질 수 있습니다.

하지만 새로운 빌드라고 해서 반드시 정상적인 상태라는 보장은 없습니다.

예를 들어 프로그램을 실행했는데 로그인 화면 자체가 나오지 않거나 서버 연결이 되지 않을 수도 있습니다. 또는 개발 과정에서 발생한 문제 때문에 핵심 메뉴가 열리지 않는 상황도 발생할 수 있습니다.

이런 상태에서 QA 담당자가 세부적인 테스트 케이스를 하나씩 수행하는 것은 효율적이지 않습니다.

따라서 BVT 테스트를 통해 먼저 핵심 기능이 정상적으로 동작하는지 확인하고, 테스트가 가능한 빌드인지 판단하게 됩니다.

BVT 테스트가 필요한 이유

BVT 테스트의 가장 큰 목적은 테스트가 불가능한 빌드를 빠르게 걸러내는 것입니다.

예를 들어 쇼핑몰 서비스의 새로운 버전이 배포되었다고 가정해보겠습니다.

QA 담당자가 결제 기능을 테스트하려면 먼저 사이트 접속이 가능해야 하고, 회원 로그인이 가능해야 하며, 상품 조회와 장바구니 기능도 정상적으로 동작해야 합니다.

그런데 로그인 기능부터 작동하지 않는다면 결제 테스트를 진행하는 것 자체가 불가능합니다.

이런 상황을 테스트 초기에 발견하기 위해 BVT를 수행합니다.

즉, BVT는 전체 기능을 검증하는 테스트가 아니라 다음 단계의 테스트를 진행할 수 있는 상태인지 판단하는 테스트라고 이해하면 쉽습니다.

BVT 테스트에서 확인하는 항목

BVT 테스트에서는 모든 기능을 상세하게 검증하지 않습니다.

서비스 운영에 반드시 필요한 핵심 기능을 중심으로 테스트합니다.

예를 들어 웹 서비스라면 다음과 같은 항목을 확인할 수 있습니다.

  • 프로그램 또는 웹사이트가 정상적으로 실행되는가
  • 서버에 정상적으로 접속할 수 있는가
  • 회원 로그인이 가능한가
  • 주요 메뉴로 이동할 수 있는가
  • 데이터 조회가 정상적으로 이루어지는가
  • 핵심 기능을 실행할 수 있는가
  • 프로그램 실행 중 치명적인 오류가 발생하지 않는가

쇼핑몰이라면 로그인, 상품 검색, 장바구니, 주문 등의 기능이 포함될 수 있습니다.

은행 애플리케이션이라면 로그인, 계좌 조회, 이체 화면 접근 등이 BVT의 핵심 테스트 항목이 될 수 있습니다.

서비스의 목적에 따라 BVT 테스트 케이스도 달라집니다.

BVT 테스트 결과는 어떻게 판단할까?

BVT 테스트 결과는 일반적으로 Pass와 Fail로 구분합니다.

핵심 기능이 모두 정상적으로 동작하면 해당 빌드는 BVT Pass로 판단하고 이후 기능 테스트나 회귀 테스트를 진행합니다.

반대로 핵심 기능 중 하나라도 정상적으로 동작하지 않는다면 BVT Fail로 판단할 수 있습니다.

특히 프로그램 실행 불가, 로그인 불가, 서버 연결 실패, 주요 기능 접근 불가와 같은 치명적인 문제가 발견된다면 테스트를 계속 진행하기보다 개발팀에 빌드를 다시 요청하는 것이 효율적입니다.

이러한 과정을 통해 QA 담당자가 문제가 있는 빌드를 대상으로 불필요한 테스트를 진행하는 시간을 줄일 수 있습니다.

BVT와 스모크 테스트의 차이

BVT를 공부하다 보면 자주 등장하는 용어가 Smoke Test, 즉 스모크 테스트입니다.

실무에서는 BVT와 스모크 테스트를 거의 같은 의미로 사용하는 경우도 많습니다.

두 테스트 모두 새로운 빌드나 배포된 버전에서 핵심 기능이 정상적으로 동작하는지 빠르게 확인한다는 공통점이 있기 때문입니다.

다만 개념적으로 보면 BVT는 빌드 자체가 테스트 가능한 상태인지 검증하는 목적이 조금 더 강조됩니다.

스모크 테스트는 프로그램의 주요 기능을 넓고 얕게 확인하여 심각한 문제가 없는지 확인하는 테스트라는 의미로 사용되는 경우가 많습니다.

하지만 회사나 프로젝트마다 용어를 사용하는 방식이 다를 수 있기 때문에 실제 업무에서는 팀에서 정의한 테스트 프로세스를 확인하는 것이 가장 중요합니다.

BVT 테스트는 자동화하기 좋다

BVT 테스트는 반복적으로 수행되는 테스트이기 때문에 테스트 자동화에 적합합니다.

개발 과정에서는 하루에도 여러 번 새로운 빌드가 만들어질 수 있습니다.

그때마다 QA 담당자가 직접 프로그램을 실행하고 로그인하고 주요 기능을 확인한다면 많은 시간이 필요합니다.

따라서 자동화 테스트를 구축해 새로운 빌드가 생성될 때마다 BVT가 자동으로 실행되도록 만들 수 있습니다.

예를 들어 CI/CD 환경에서 개발자가 코드를 반영하면 새로운 빌드가 생성되고, 자동화된 BVT가 실행되도록 구성할 수 있습니다.

BVT가 성공하면 다음 테스트나 배포 과정으로 이동하고, 실패하면 개발자에게 즉시 결과를 전달하는 방식입니다.

이렇게 하면 개발 초기 단계에서 심각한 결함을 빠르게 발견할 수 있습니다.

BVT 테스트에서 중요한 점

BVT 테스트를 만들 때 가장 중요한 것은 테스트 케이스를 지나치게 많이 작성하지 않는 것입니다.

BVT의 목적은 전체 기능을 검증하는 것이 아니라 테스트 가능한 빌드인지 빠르게 확인하는 것이기 때문입니다.

따라서 서비스에서 반드시 동작해야 하는 핵심 기능을 선정해야 합니다.

예를 들어 기능 테스트 케이스가 1,000개 있다고 해서 BVT에서도 1,000개의 테스트를 수행하는 것은 적절하지 않습니다.

서비스 실행, 로그인, 핵심 기능 접근 등 반드시 필요한 테스트를 중심으로 구성하는 것이 좋습니다.

BVT 수행 시간이 지나치게 길어지면 빠르게 빌드 상태를 확인한다는 본래 목적에서 벗어날 수 있습니다.

QA에게 BVT가 중요한 이유

QA 업무에서는 얼마나 많은 테스트를 수행했는지도 중요하지만 언제 어떤 테스트를 수행하는지도 중요합니다.

새로운 빌드를 전달받은 직후부터 세부적인 테스트를 진행했는데 나중에 기본 기능에 문제가 있다는 사실을 발견한다면 많은 테스트 시간이 낭비될 수 있습니다.

BVT를 먼저 수행하면 이런 문제를 방지할 수 있습니다.

정리하면 QA 테스트 프로세스는 다음과 같은 흐름으로 이해할 수 있습니다.

새로운 빌드 생성 → BVT 수행 → 빌드 안정성 확인 → 기능 테스트 → 회귀 테스트 → 최종 배포 확인

따라서 BVT는 전체 QA 프로세스의 출발점 역할을 하는 테스트라고 볼 수 있습니다.

마무리

BVT 테스트는 Build Verification Test의 약자로 새로운 빌드가 본격적인 테스트를 진행할 수 있는 상태인지 확인하는 테스트입니다.

프로그램 실행, 로그인, 서버 연결, 주요 기능 접근 등 서비스의 핵심 기능을 빠르게 확인하는 것이 핵심입니다.

특히 새로운 빌드가 자주 생성되는 개발 환경에서는 BVT를 통해 문제가 있는 빌드를 조기에 발견할 수 있기 때문에 QA 업무 효율을 크게 높일 수 있습니다.

BVT를 이해할 때 가장 중요한 것은 하나입니다.

모든 기능을 완벽하게 테스트하는 것이 아니라 이 빌드로 다음 테스트를 진행해도 되는지를 가장 먼저 확인하는 테스트라는 점입니다.

이 개념을 이해하면 스모크 테스트, 회귀 테스트, 기능 테스트 등 다른 QA 테스트 방법과의 차이도 훨씬 쉽게 이해할 수 있습니다.

댓글 남기기