스물두줄

정보관리기술사 · 개념서 · 소프트웨어 공학

블랙박스 테스트

설명 영상 블랙박스 테스트 설명 · 2:20

왜 배우는가: 블랙박스 테스트는 구현을 알지 못해도 요구사항을 기준으로 시험 케이스를 만들 수 있어 실무 테스트 설계의 기본이다. 입력 범위와 경계를 체계적으로 다루는 능력을 보여주므로 시험에서 반복해 출제된다.

출제 이력: 제122회 3교시 4번, 제89회 3교시 6번

1. 한 줄 정의와 핵심 키워드

블랙박스 테스트는 소프트웨어의 내부 구조를 보지 않고 명세에 따라 입력에 대한 출력을 검증하는 명세 기반 시험 기법이다.

핵심 키워드는 다음과 같다.

  • 블랙박스 테스트
  • 명세 기반 시험
  • 입력과 기대 결과
  • 동등분할
  • 경계값 분석
  • 결정 테이블
  • 상태전이 테스트
  • 오류추정

2. 개념 풀이

쉬운 말로 하면 기계의 뚜껑을 열지 않고 넣은 것과 나온 것만 보고 맞는지 틀리는지를 가리는 시험이다. 자판기에 돈을 넣고 음료가 맞게 나오는지만 확인하고 내부 회로는 살피지 않는 것과 같다.

정식 정의는 다음과 같다. 블랙박스 테스트는 소프트웨어를 내부 구현을 알 수 없는 상자로 보고, 요구사항과 명세에서 테스트 케이스를 도출하여 입력에 대한 출력이 기대 결과와 같은지 판정하는 기법이다. 테스터는 소프트웨어가 무엇을 해야 하는지는 알지만 어떻게 하는지는 알지 못한다.

테스트 케이스는 입력값, 기대 결과, 판정의 세 부분으로 구성된다. 실제 출력이 기대 결과와 일치하면 통과, 다르면 결함으로 판정한다.

핵심 용어는 다음과 같다.

  • 명세 기반 시험: 요구사항 명세가 시험 기준이다. 테스트 케이스에는 입력과 함께 기대 결과를 미리 적는다.
  • 동등분할(Equivalence Partitioning): 입력 도메인을 같은 방식으로 처리될 것으로 보는 유효 클래스와 무효 클래스로 나누고, 각 클래스에서 대표값을 하나씩 고른다. 대표값이 맞으면 그 클래스 전체가 맞을 것으로 본다.
  • 경계값 분석(Boundary Value Analysis): 클래스의 경계값과 그 바로 안쪽·바깥쪽 값에서 오류가 집중된다는 가정으로 시험한다. 경계에 인접한 값은 입력의 표현과 명세에 맞춰 정한다.
  • 결정 테이블(Decision Table): 여러 조건의 조합과 그때의 동작을 표로 정리하여 빠진 조합을 찾는다.
  • 상태전이 테스트(State Transition Testing): 상태와 사건의 조합에 따라 상태가 바뀌는 과정을 검증한다.
  • 오류추정(Error Guessing): 시험 담당자의 경험으로 오류가 날 만한 입력을 골라 시험한다.

동등분할과 경계값 분석은 함께 쓰는 것이 일반적이다. 동등분할로 케이스 수를 줄이고, 경계값 분석으로 클래스 사이의 빈틈을 메운다. 예를 들어 월 입력의 유효 클래스는 1~12 이고 무효 클래스는 0과 13 이상이다. 경계값은 0, 1, 12, 13 이며 각 경계의 양쪽 값을 모두 시험한다.

날짜 모듈에서 2월 29일은 윤년에서만 유효하다. 윤년은 천문법 제2조 제5호에 따라 그레고리력에서 2월 29일을 추가하여 1년이 366일이 되는 해다. 이 조건은 명세에서 확인해야 하는 경계 규칙이다.

블랙박스 테스트는 기능이 요구대로 동작하는지 확인하는 기능 테스트가 대부분이다. 비기능 특성도 명세에 있으면 대상이 될 수 있다.

3. 등장 배경과 필요성

소프트웨어 규모가 커지면 내부의 모든 경로와 조건 조합을 시험하는 것이 현실적으로 어렵다. 구현 코드를 기준으로 한 시험만으로는 사용자가 요구한 기능이 실제로 되는지 확인하기 어렵다. 그래서 요구사항을 기준으로 입출력을 검증하는 방법이 필요해졌다.

블랙박스 테스트는 시험의 출발점을 요구사항 명세에 둔다. 명세가 곧 기대 결과의 근거가 되므로 테스트 케이스를 개발 초기에 설계할 수 있다. 요구사항 분석 단계에서 명세의 모호함을 함께 찾아낼 수 있다는 점도 장점이다.

테스트 케이스 수의 문제도 있다. 입력값의 조합은 입력 항목 수에 따라 빠르게 늘어난다. 동등분할은 같은 방식으로 처리될 입력을 한 묶음으로 보아 케이스 수를 줄인다. 이 점은 시험 시간과 비용을 줄이는 근거가 된다.

또 시험 담당자가 구현 지식이 없어도 된다. 테스터는 기능 명세와 입출력 예만 알면 되므로 개발자와 독립된 조직이 시험을 맡을 수 있다. 사용자 관점의 인수 시험과 시스템 시험에서 특히 많이 쓰인다.

다만 블랙박스 테스트에는 한계가 있다. 명세가 불완전하면 시험도 불완全하게 된다. 내부의 특정 경로나 자원 사용 문제는 보이지 않는다. 따라서 명세 기반 시험은 기능 정확성 확보에 필요하지만, 복잡하거나 위험도가 높은 상황을 막기에는 부족하다고 알려져 있다. 이 한계는 화이트박스 시험과 함께 사용해 보완한다.

4. 구성요소·원리·절차

블랙박스 테스트는 내부 구조를 보지 않고 명세를 기준으로 입력과 출력의 관계를 검증한다. 시험자는 소프트웨어가 무엇을 해야 하는지만 알고, 어떻게 하는지는 알지 못한다. 따라서 테스트 케이스는 명세서와 요구사항에서 도출한다.

블랙박스 테스트의 구성요소는 다음과 같다.

구성요소역할주요 산출물
명세 원천기대 동작을 정의함요구사항명세서
입력 도메인 분할유효·무효 입력 집합을 나눔동등분할 클래스
경계 식별클래스 경계값을 찾음경계값 분석 값 목록
테스트 케이스입력, 기대 결과를 짝지음테스트 케이스 표
판정실제 출력과 기대 결과를 비교함합격·불합격 기록

원리는 두 가정에 있다. 첫째, 같은 클래스의 입력은 같은 방식으로 처리된다. 둘째, 오류는 경계와 그 인접값에 집중된다. 이 두 가정 덕분에 모든 입력을 시험하지 않고도 적은 수의 케이스로 결함을 찾을 수 있다.

블랙박스 테스트는 입력 클래스의 대표값과 경계값으로 명세 준수 여부를 판정하는 기법이다

절차는 다음과 같다.

  • 명세에서 입력 속성과 제약을 추출한다.
  • 입력 속성별로 유효 클래스와 무효 클래스를 나눈다(동등분할).
  • 각 클래스의 경계값을 찾고 경계의 양쪽 값을 정한다(경계값 분석).
  • 입력 조합과 기대 결과를 테스트 케이스 표로 정리한다.
  • 케이스를 실행하고 실제 출력을 기대 결과와 비교한다.
  • 결함이 나오면 명세 결함인지 구현 결함인지 구분하여 보고한다.

경계값 분석에서는 경계와 인접한 입력을 시험한다. 인접값은 입력의 표현과 명세에 맞춰 정한다. 예를 들어 범위가 1~48인 정수 입력에서는 최소·최대 경계와 인접한 값을 선정한다.

5. 관련 법령·기준·표준

블랙박스 테스트는 특정 법령이 정한 기법이 아니라 소프트웨어 테스트 방법론에 속한다. 따라서 적용 기준은 프로젝트의 요구사항명세서와 발주처가 정한 시험 절차서다. 국제 품질 모델로는 ISO/IEC 25010의 기능 적합성 특성이 블랙박스 시험의 평가 기준으로 자주 연결된다.

아래 표는 블랙박스 테스트 설계에서 흔히 쓰는 기준값과 조건을 모은 것이다. 값은 기법의 정의와 이 절의 사례에서 가져왔다.

항목기준값·조건적용 대상근거
동등분할클래스마다 최소 1개 케이스유효·무효 입력 전체테스트 설계 원칙
경계값 분석경계와 인접한 값정수 범위 입력경계값 분석 정의
경계값 세트경계값과 인접값, 대표값범위 입력경계값 분석 일반 기법
정수 무게 범위1~48 정수, 오름차순사례 입력문제 조건
품명 길이영문 2~15자사례 입력문제 조건
날짜 월 범위1~12YYYY-MM-DD 입력달력 규칙
날짜 일 범위1~31, 월별 말일 적용YYYY-MM-DD 입력달력 규칙
윤년 판정2월 29일 허용 여부날짜 처리천문법 제2조 제5호

표의 두 번째 행과 세 번째 행은 블랙박스 기법의 일반 정의다. 시험 수 산정이나 합격 기준은 프로젝트마다 다르므로 발주 문서를 따른다.

윤년 판정은 천문법 제2조 제5호에 따라 그레고리력에서 2월 29일이 추가되어 1년이 366일이 되는 해다. 따라서 2020-02-29는 정상이고 2019-02-29는 무효다.

이어지는 내용

로그인하면 하루 2페이지까지 무료로 전체를 읽을 수 있습니다.

앱에서 이 단원 읽기