QA/ISTQB

ISTQB - CTFL [테스트 분석과 설계] 테스트 기법 개요, 블랙박스 테스트 기법 정리

devrabbit22 2026. 7. 14. 02:54

테스트 기법은 테스터의 테스트 분석(무엇을 테스트할지)과 테스트 설계(어떻게 테스트 할지) 작업을 지원한다.

테스트 기법은 적은 수이지만, 충분한 테스트 케이스를 체계적인 방식으로 개발할 수 있도록 해준다.

또한 테스트 기법은 테스터가 테스트 분석과 설계에서 테스트 컨디션을 정의하고, 커버리지 항목과 테스트 데이터를 식별하는 데 도움을 준다.

블랙박스 테스트 기법(명세 기반 테스트 기법)

  • 내부 구조를 참조하지 않고, 테스트 대상의 명시된 동작에 대한 분석을 기반으로 한다.
  • 따라서 테스트 케이스는 소프트웨어 구현 방식에 의존하지 않는다.
  • 결국 구현이 바뀌더라도 필요한 동작이 동일하다면, 테스트 케이스는 여전히 유효하게 된다.

화이트박스 테스트 기법(구조 기반 테스트 기법)

  • 테스트 대상의 내부 구조와 처리에 대한 분석을 기반으로 한다.
  • 테스트 케이스는 소프트웨어 설계 방식에 의존하기 때문에 테스트 대상의 설계나 구현이 끝난 후에 만들 수 있다.

경험 기반 테스트 기법

  • 테스터의 지식과 경험을 테스트 케이스의 설계 및 구현에 효과적으로 활용하게 한다.
  • 이런 기법의 효과성은 테스터의 능력에 따라 크게 달라진다.
  • 경험 기반 테스트 기법은 블랙박스 테스트 기법과 화이트박스 테스트 기법으로는 식별하지 못할 수 있는 결함을 찾을 수 있게 해준다.
  • 따라서 경험 기반 테스트 기법은 블랙박스 테스트 기법과 화이트박스 테스트 기법을 보완한다.

블랙박스 테스트 기법

많이 사용되는 블랙박스 테스트 기법

  • 동등 분할
  • 경계값 분석
  • 결정 테이블 테스팅
  • 상태 전이 테스팅

동등 분할(Equivalence Partitioning)

동등 분할(EP)은 테스트 대상이 하나의 분할(동등 분할이라고도 함)에 포함된 모든 요소를 동일한 방식으로 처리할 것이라는 가정하에 데이터를 분할 단위로 나눈다.

이 기법의 근거 이론

  • 동등 분할에 속한 특정 값을 테스트하는 테스트 케이스로 결함을 식별할 수 있다면, 같은 동등 분할의 다른 어떤 값을 테스트하는 테스트 케이스라도 해당 결함을 식별할 수 있어야 한다는 것이다.
  • 따라서 각 분할에 대해 하나의 테스트만 수행하면 충분하다.

동등 분할은 입력, 출력, 형상 항목, 내부 값, 시간 관련 값, 인터페이스 매개변수 등 테스트 대상과 관련된 모든 데이터 요소에 대해 식별할 수 있다.

분할은 연속적이거나 연속적이지 않을 수 있으며, 정렬돼있거나, 유한 또는 무한일 수도 있다. 

분할을 서로 겹치지 않아야 하며, 값이 없는 공집할일 수는 없다.

 

단순한 테스트 항목의 경우, 동등 분할을 적용하기가 쉬울 수 있지만, 실제로는 테스트 대상이 다양한 값을 어떻게 처리하는지 이해하기 어려울 때가 많다. 따라서 분할 식별은 신중하게 해야한다.

 

유효분할 (valid values)

  • 유효한 값을 포함하는 분할

비유효분할 (invalid values) 

  • 유효하지 않은 값을 포함하는 분할

→ 유효한 값과 유효하지 않은 값의 정의는 팀과 조직마다 다를 수 있다.

ex) 테스트 대상이 처리해야 하는 값 또는 명세에 처리가 정의된 값을 유효 값으로 해석할 수 있다.

비유효 값은 테스트 대상이 무시하거나 거부해야 하는 값, 또는 테스트 대상 명세에 처리방법이 정의되어 있지 않은 값으로 해석할 수 있다.

 

동등분할에서 커버리지 항목은 각 분할이 된다.

  • 이 테스트 기법으로 100% 커버리지를 달성하려면 테스트 케이스로 각 분할을 최소 한 번씩 다뤄서 식별한 모든 분할(비유효 분할 포함)이 실행되도록 해야 한다.
  • 커버리지는 하나 이상의 테스트 케이스로 실행한 분할 수를, 식별한 총 분할 수로 나눈 값으로 측정하며 백분율로 표시한다.

많은 테스트 항목이 다수의 분할집합(입력 변수가 2개 이상인 테스트 대상)을 가지고 있기 때문에 테스트 케이스는 입력 변수가 여러 개이므로, 각 변수의 동등 분할을 조합해 테스트 케이스를 설계한다.

이치 초이스 커버리지(Each Choice coverage)

  • 분할 집합이 다수인 경우, 가장 간단한 커버리지 기준이다.
  • 이치 초이스 커버리지는 테스트 케이스가 모든 분할 집합의 각 분할을 최소 한 번은 실행할 것을 요구한다.
  • 이치 초이스 커버리지에서는 분할의 조합을 고려하지 않는다.

→ 조합은 고려하지 않고, 각 입력 조건이 최소 한 번씩 테스트되도록 설계한다.

경계값 분석(BVA) - Boundary Value Analysis

  • 동등 분할의 경계 실행을 기반으로 하는 테스트 기법이다.
  • 경계값 분석은 정렬된 분할에만 사용할 수 있다.
  • 분할의 최솟값과 최댓값이 경계값이 된다.
  • 경계값 분석에서 두 값이 같은 분할에 속하는 경우, 둘 사이의 모든 값도 해당 분할에 속해야 한다.
  • 개발자가 분할의 경계에 있는 값을 다룰 때 오류를 범할 가능성이 높기 때문에 경계값 분석은 분할의 경계에 있는 값에 초점을 두게 된다.
  • 경계값 분석으로 많이 찾는 결함은 구현된 경계가 의도한 위치보다 위나 아래에 잘못 배치됐거나 아에 누락된 결함이다.

아래 두 가지 유형은 100% 커버리지 달성을 위해 실행해야 하는 경계별 커버리지 항목의 수에서  차이가 난다.

두 개 선택(2-Value) 경계값 분석

  • 각 경계값에 대해 두 개의 커버리지 항목을 도출한다.
  • 경계값과 인접 분할에 속한 가장 가까운 값이 커버리지 항목이다.
  • 두 개 선택 경계값 분석에서 100% 커버리지를 달성하려면, 테스트 케이스로 모든 커버리지 항목, 즉 식별한 모든 경계값을 실행해야 한다.
  • 커버리지는 실행한 경계값의 수를 식별한 경계값의 총수로 나눈 값으로 백분율로 표시한다.

세 개 선택(3-Value) 경계값 분석

  • 세 개 선택 경계값 분석은 두 개 선택 경계값 분석으로 발견하지 못한 결함을 식별할 수 있으므로 두 개 선택 경계값 분석보다 더 엄격하다고 할 수 있다.
  • 각 경계값에 대해 세 개의 커버리지 항목을 도출한다.
  • 경계값과 이웃한 양쪽의 값 모두가 커버리지 항목이다.
  • 세 개 선택 경계값 분석에서는 경계값이 아닌 커버리지 항목도 있을 수 있다.
  • 세 개 선택 경계값 분석에서는 100% 커버리지를 달성하려면, 테스트 케이스로 모든 커버리지 항목, 즉 식별한 경계값과 그 이웃 값을 실행해야 한다.

ex) if(x<=10) 이라는 결정 구문이 if(x=10)으로 잘못 구현된 경우, 두 개 선택 경계값 분석으로 도출한 테스트 데이터(x = 10, x = 11)는 결함을 식별할 수 없다. 그러나 세 개 선택 경계값 분석으로 도출한 x = 9는 이를 식별할 가능성이 크다.

결정 테이블 테스팅

  • 결정 테이블은 서로 다른 조건 조합으로 달라지는 결과를 나타내는 방식으로 요구사항이 제대로 구현되었는지를 테스트하는 데 사용한다.
  • 결정 테이블은 비즈니스 규칙과 같은 복잡한 논리를 기록하는 효과적인 방법이다.
  • 결정 테이블을 만들 때 조건들과 그에 따른 시스템의 동작 결과를 정의한다. 이것이 테이블의 행을 구성한다.

제한-입력(limited-entry) 결정 테이블

모든 조건과 동작 결괏값(관련 없거나 실행 불가능한 값 제외)을 부울값(Boolean value 참 또는 거짓)으로 표시한다.

확장-입력(extended-entry) 결정 테이블

조건 및 동작 결괏값의 일부 또는 전부가 복수의 값(숫자 범위, 동등 분할, 불연속 값)을 취할 수 있다.

조건의 표기법

  • T(참): 조건이 충족됨을 의미한다.
  • F(거짓): 조건이 충족되지 않음을 의미한다.
  • -: 해당 조건 값이 결과에 영향이 없음을 의미한다.
  • N/A: 해당 규칙에서 조건이 실행 불가능함을 의미한다.

결과 동작

  • X: 동작이 발생해야 함을 의미한다.
  • 공백: 동작이 발생하지 않아야 함을 의미한다.
  • 기타 표기법도 사용 가능하다.

전체 결정 테이블에는 모든 조건 조합을 포함할 수 있는 충분한 열이 있다. 실현 불가능한 조건 조합열을 삭제해 테이블을 더 단순화 할 수 있다.

일부 조건이 결과에 영향을 미치지 않는 열들을 하나로 병합해 테이블을 최소화할 수도 있다.

결정 테이블 테스팅에서 커버리지 항목은 실현 가능한 조건 조합을 가진 열이 된다. 이 기법으로 100% 커버리지를 달성하려면, 테스트 케이스가 이런 열을 모두 실행해야 한다.

커버리지는 실행된 열의 수를 실행 가능한 열의 층수로 나눈 값으로 측정하며 백분율로 표시한다.

결정 테이블 테스팅의 강점

  • 간과했을 수도 있는 조합을 포함한 모든 조건 조합을 식별하는 체계적인 방법을 제공한다.
  • 누락되거나 모순되는 요구사항을 찾는 데 도움이 된다.

결정 테이블 테스팅의 단점

  • 조건의 수에 따라 규칙의 수는 기하급수적으로 늘어나기 때문에, 조건이 많으면, 모든 결정 규칙을 실행하는 데 오랜 시간이 걸릴 수 있다.
  • 이런 경우 실행해야 하는 규칙의 수를 줄이기 위해 결정 테이블을 최소화하거나, 리스크 기반 접근법을 사용할 수 있다.

상태 전이 테스팅

  • 상태 전이 다이어그램(State Transition Diagram)은 가능한 상태와 유효한 상태 전이를 표시해 시스템 동작을 모델링한다.
  • 전이는 하나의 이벤트에 의해 발생하며, 별도의 가드(guard) 조건이 있을 수 있다.
  • 전이는 즉각적인 것으로 간주되며, 가끔 소프트웨어의 어떤 동작으로 연결되기도 한다.

전이를 표시하는 형식

  • "이벤트[가드 조건]/동작"
    - 가드 조건과 동작이 없거나, 테스터와 관련이 없는 경우 생략될 수 있다.

상태 테이블은 상태 전이 다이어그램을 다르게 표현한 모델이다.

행(rows)

  • 상태를 나타낸다.

열(columns)

  • 이벤트를 (가드 조건이 있는 경우 함께) 나타낸다.

테이블 항목(셀, cell)

  • 전이(transition)를 나타내며, 정의되어 있는 경우에는 목표 상태(target state)와 그에 따른 결과 동작도 포함한다.
  • 상태 전이 다이어그램과 달리 상태 테이블은 유효하지 않은 전이를 빈 셀로 명확하게 보여준다.

상태 다이어그램이나 상태 테이블을 기반으로 하는 테스트 케이스는 보통 일련의 이벤트 순서와 그 결과로 생기는 상태 변화로 (그리고 필요하다면 동작으로도) 표현한다.

하나의 테스트 케이스는 대부분의 경우 여러 개의 상태 전이를 포함한다.

상태 전이 테스팅 커버리지 측정 기준 세가지

모든 상태 커버리지(All state coverage)

  • 커버리지 항목은 상태이다.
  • 100% 상태 커버리지를 달성하려면, 모든 상태가 실행되도록 테스트 케이스를 구성해야 한다. 
  • 커버리지는 실행된 상태 수를 전체 상태 수로 나눈 값으로 측정하고 백분율로 표시한다.

유효 전이 커버리지(valid transitions coverage, 0-스위치 커버리지라고도 한다.)

  • 각 유효 전이가 커버리지 항목이 된다.
  • 유효 전이 커버리지 100%를 달성하려면, 테스트 케이스가 모든 유효 전이를 실행해야 한다.
  • 커버리지는 실행된 유효 전이 수를 총 유효 전이 수로 나눈 값으로 측정하며 백분율로 표시한다.

모든 전이 커버리지(All transitions coverage)

  • 커버리지 항목은 상태 테이블에 표시된 모든 전이들이다.
  • 모든 전이 커버리지 100%를 달성하려면 테스트 케이스로 모든 유효 전이를 실행하고, 유효하지 않은 비유효 전이의 실행도 시도해야 한다.
  • 하나의 테스트 케이스에서 오직 하나의 비유효 전이만을 테스트하는 것은 결함 마스킹(fault masking)을 방지하는 데 도움이 된다. 즉 하나의 결함이 다른 결함 탐지를 방해하는 상황을 방지할 수 있다.
  • 커버리지는 실행된 테스트 케이스로 수행하거나, 커버하려고 시도한 유효 및 비유효 전이 수를 총 유효 및 비유효 전이 수로 나눈 값으로 측정하며 백분율로 표시한다.

모든 상태 커버리지는 일반적으로 모든 전이를 실행하지 않고도 달성할 수 있기 때문에, 유효 전이 커버리지 보다 약하다.

유효 전이 커버리지는 가장 널리 사용하는 커버리지 조건이다.

유효 전이 커버리지 100%를 달성하면, 모든 상태 커버리지도 달성된다.

모든 전이 커버리지를 100% 달성하면, 모든 상태 커버리지와 유효 전이 커버리지도 모두 보장된다.

미션(mission)과 안전에 치명적인 소프트웨어의 경우, 이 것을 충족해야 할 최소 기준으로 삼아야 한다.

정리

명세 기반 테스트 기법이란?

명세 기반 테스트 기법은 요구사항, 기획서, 명세서 등 문서에 기반하여 테스트를 설계하는 방법이다.

  • 코드를 보지 않고도 요구사항 만으로 테스트 케이스를 도출할 수 있는 기법이다.

명세 기반 테스트 기법의 특징

구분 내용
기준 요구사항, 명세서
코드 이해 필요 없음
테스트 관점 사용자, 기능 중심
활용 시점 개발 전, 개발 후 모두 가능
QA 적합도 매우 높음

동등 분할(Equivalence Partitioning)

동등 분할은 입력값을 유효한 그룹과 유효하지 않은 그룹으로 나누는 기법이다.

같은 그룹에 속한 값들은 비슷한 동작을 할 것이라고 가정한다.

예시

  • 입력값 범위가 1 ~ 100
  • 유효하지 않은 값: 0 이하, 101이상

모든 값을 테스트하지 않고도 대표값만으로 효율적인 테스트가 가능하다.

경계값 분석 (BVA) - Boundary Value Analysis

경계값 분석은 오류가 경계에서 자주 발생한다는 특성을 활용한 기법이다.

동등 분할 vs 경계값 분석

내용 동등 분할 경계값 분석
초점 그룹 대표값 경계 지점
테스트 수 적음 조금 더 많음
목적 효율성 오류 발견
실무 활용 높음 매우 높음

경계값 예시

입력값이 1 ~ 100일 경우

  • 유효 경계값: 1, 100
  • 비유효 경계값: 0, 101

실무에서는 경계값 테스트에서 이슈가 나오는 경우가 많다고 한다.

결정 테이블 테스트(Decision Table Testing)

결정 테이블은 여러 조건과 결과의 조합을 표 형태로 정리하는 기법이다.

  • 조건이 많고 경우의 수가 복잡할 때 아주 효과적인 테스트 기법이다.

활용 예시

  • 권한별 기능 접근
  • 결제 수단 조합
  • 조건에 다른 화면 분기

QA 실무에서 정책성 기능 테스트할 때 자주 사용된다고 한다.

상태 전이 테스트(State Transition Testing)

상태 전이 테스트는 시스템 상태 변화에 따라 동작을 검증하는 기법이다.

  • 로그인 전 → 로그인 → 로그아웃
  • 주문 완료 → 배송중 → 배송 완료

상태 간 이동이 중요한 서비스에서 특히 효과적이다.

명세 기반 테스트 기법의 핵심

  • 요구사항을 잘 이해할수록 테스트 품질이 높아진다.
  • 모든 경우를 테스트할 수 없기 때문에 기법이 필요하다.
  • 기법은 암기 대상이 아니라 도구다

동등 분할과 경계값 분석은 테스트 케이스 설계의 가장 기본이 되는 기법이다.


Reference

https://www.kstqb.org/sw/sw3.asp

 

KSTQB

ISTQB® SW 테스팅 자격시험 --> ISTQB ® Certified Tester Foundation Level (CTFL) --> ISTQB® Certified Tester Foundation Level (CTFL) 자격명 (Name) ISTQB® Certified Tester Foundation Level (CTFL) 인증기관 (Certification Body) International S

www.kstqb.org

 

https://qa-note.tistory.com/23

 

📗 ISTQB 실러버스 정리 4-1 — 명세 기반 테스트 기법 (동등 분할·경계값 분석)

들어가며ISTQB CTFL 실러버스 4장은 테스트 기법을 본격적으로 다루는 장입니다.그중에서도 명세 기반 테스트 기법은 QA 실무에서 가장 자주 사용되고,시험에서도 반드시 출제되는 핵심 파트예요.

qa-note.tistory.com