테스트 기법은 테스터의 테스트 분석(무엇을 테스트할지)과 테스트 설계(어떻게 테스트 할지) 작업을 지원한다.
테스트 기법은 적은 수이지만, 충분한 테스트 케이스를 체계적인 방식으로 개발할 수 있도록 해준다.
또한 테스트 기법은 테스터가 테스트 분석과 설계에서 테스트 컨디션을 정의하고, 커버리지 항목과 테스트 데이터를 식별하는 데 도움을 준다.
블랙박스 테스트 기법(명세 기반 테스트 기법)
- 내부 구조를 참조하지 않고, 테스트 대상의 명시된 동작에 대한 분석을 기반으로 한다.
- 따라서 테스트 케이스는 소프트웨어 구현 방식에 의존하지 않는다.
- 결국 구현이 바뀌더라도 필요한 동작이 동일하다면, 테스트 케이스는 여전히 유효하게 된다.
화이트박스 테스트 기법(구조 기반 테스트 기법)
- 테스트 대상의 내부 구조와 처리에 대한 분석을 기반으로 한다.
- 테스트 케이스는 소프트웨어 설계 방식에 의존하기 때문에 테스트 대상의 설계나 구현이 끝난 후에 만들 수 있다.
경험 기반 테스트 기법
- 테스터의 지식과 경험을 테스트 케이스의 설계 및 구현에 효과적으로 활용하게 한다.
- 이런 기법의 효과성은 테스터의 능력에 따라 크게 달라진다.
- 경험 기반 테스트 기법은 블랙박스 테스트 기법과 화이트박스 테스트 기법으로는 식별하지 못할 수 있는 결함을 찾을 수 있게 해준다.
- 따라서 경험 기반 테스트 기법은 블랙박스 테스트 기법과 화이트박스 테스트 기법을 보완한다.
블랙박스 테스트 기법
많이 사용되는 블랙박스 테스트 기법
- 동등 분할
- 경계값 분석
- 결정 테이블 테스팅
- 상태 전이 테스팅
동등 분할(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
'QA > ISTQB' 카테고리의 다른 글
| ISTQB - CTFL [테스트 분석과 설계] 경험 기반 테스트 기법 정리 (0) | 2026.07.16 |
|---|---|
| ISTQB - CTFL [테스트 분석과 설계] 화이트박스 테스트 기법 정리 (0) | 2026.07.15 |
| ISTQB - CTFL [정적 테스팅] 피드백과 리뷰 프로세스 정리 (0) | 2026.07.13 |
| ISTQB - CTFL [정적 테스팅] 정적 테스팅의 기초 정리 (0) | 2026.07.13 |
| ISTQB - CTFL [소프트웨어 개발수명주기(SDLC)와 테스팅] 테스트 레벨, 테스트 유형, 유지보수 테스팅 정리 (1) | 2026.07.12 |