PMDEXIT 프로젝트 용어사전

블랙박스 테스트

Black-box Test

내부를 모른 채 입출력으로 검증하는 명세 기반 테스트.

블랙박스 테스트란

블랙박스 테스트(Black-box Test)는 소프트웨어의 내부 구조나 구현 코드를 들여다보지 않고, 주어진 입력에 대해 기대한 출력이 나오는지만으로 동작을 검증하는 명세 기반 테스트 기법이다. 검증의 기준은 소스 코드가 아니라 요구사항과 명세이며, 시스템을 들여다볼 수 없는 상자로 간주한다는 의미에서 이런 이름이 붙었다.

코드를 모르더라도 명세만 있으면 설계할 수 있어 개발자가 아닌 검증 인력이나 사용자 관점의 검증에 적합하다. SWEBOK에서도 명세 기반 기법은 구조 기반 기법과 함께 테스트 설계의 두 축으로 정리된다.

01명세 확인02입력 설계03출력 비교04요구 추적
명세 기반 검증 흐름

명세에서 출발하는 검증

블랙박스 테스트는 사용자가 무엇을 기대하는가에서 시작한다. 시스템이 어떤 알고리즘으로 결과를 만드는지는 검증의 관심사가 아니며, 약속된 입력에 약속된 결과가 돌아오는지가 전부다.

이 관점은 구현이 바뀌어도 동작 명세가 같다면 테스트가 그대로 유효하다는 장점을 낳는다. 덕분에 코드 리팩터링이나 내부 구조 변경에 흔들리지 않는 안정적인 검증 자산을 쌓을 수 있다.

입력 공간을 다루는 기법

가능한 모든 입력을 다 넣어 볼 수는 없으므로, 블랙박스 테스트는 적은 수의 입력으로 넓은 영역을 대표하게 만드는 설계 기법에 의존한다. 동등 분할은 같은 처리를 받는 입력들을 묶어 그중 하나만 검증하면 그룹 전체를 대표한다고 본다.

경계값 분석은 결함이 자주 숨는 구간의 경계, 곧 최솟값과 최댓값 언저리를 집중적으로 검증한다. 여러 조건이 얽힌 경우에는 원인과 결과의 조합을 표로 정리해 누락 없이 시나리오를 도출한다.

이런 기법들은 무작위 입력보다 적은 횟수로 더 많은 결함을 드러내는 것을 목표로 한다.

설계 기법핵심목적
동등 분할그룹 대표 1개입력 축약
경계값 분석최소·최대 언저리경계 결함
원인·결과표조합 정리누락 방지
입력 공간 설계 기법

화이트박스와의 역할 분담

블랙박스 테스트는 내부 로직과 경로를 직접 검증하는 화이트박스 테스트와 짝을 이루어 서로를 보완한다. 화이트박스 테스트는 코드의 분기와 흐름을 촘촘히 살피지만, 명세 자체가 잘못되었거나 요구가 누락된 경우는 잡아내기 어렵다.

반대로 블랙박스 테스트는 요구 충족 여부를 확인하지만 내부의 특정 경로가 검증되지 않은 채 남아 있을 수 있다. 두 기법은 우열이 아니라 검증 층위가 다른 보완 관계이며, 인수와 시스템 단계는 명세 기반을, 단위 단계는 구조 기반을 중심에 두는 배치가 흔하다.

한계와 보완

블랙박스 테스트는 입출력만 본다는 특성상, 우연히 정답이 나왔으나 내부적으로 잘못된 경로를 거친 경우를 구분하지 못한다. 또한 코드 어느 부분이 검증되지 않았는지 알 수 없어, 검증의 충분함을 내부 기준으로 증명하기 어렵다.

이 빈틈은 화이트박스 테스트의 커버리지 측정으로 보완되며, 두 관점을 병행해야 명세 충족과 경로 검증을 함께 확보할 수 있다. 명세가 부실하면 블랙박스 테스트 역시 부실해지므로, 검증의 품질은 결국 요구사항 정의의 품질에 좌우된다.

실무에서의 적용

현장에서 블랙박스 테스트는 인수 테스트와 시스템 테스트의 주된 방식으로 쓰이며, 발주사나 사용자가 합의된 명세를 기준으로 결과를 확인하는 검수의 토대가 된다. 테스트 케이스는 요구사항 항목과 추적 가능하도록 연결해, 어떤 요구가 어떤 케이스로 검증되는지를 명확히 남기는 것이 바람직하다.

이렇게 해야 요구 누락이나 변경이 발생했을 때 영향 범위를 즉시 파악할 수 있다. 자동화된 회귀 검증과 결합하면, 기능 추가가 기존 명세를 깨뜨리지 않는지를 반복적으로 확인하는 안전망으로 작동한다.

관련 용어