페어와이즈 테스트(Pairwise Testing)란 무엇인가?
테스트 케이스를 작성하다 보면 이런 고민이 생깁니다.
- 모든 경우의 수를 테스트해야 할까?
- 테스트 케이스가 너무 많아지지 않을까?
실제로 여러 조건이 조합되는 기능에서는 테스트 케이스가 기하급수적으로 증가합니다.
이럴 때 사용하는 테스트 기법이 페어와이즈 테스트(Pairwise Testing) 입니다.
페어와이즈 테스트는
👉 모든 조합을 테스트하지 않고
👉 각 조건의 “쌍(pair)” 조합을 최소 한 번씩 테스트하는 방법입니다.
즉, 적은 테스트 케이스로도 많은 조합을 검증할 수 있는 테스트 기법이라고 이해하면 쉽습니다.
왜 페어와이즈 테스트가 필요한가
테스트 케이스를 작성할 때 조건이 많아지면 경우의 수가 급격히 증가합니다.
예를 들어 이런 상황을 생각해보겠습니다.
어떤 서비스에서 다음과 같은 조건이 있다고 가정합니다.
브라우저
- Chrome
- Edge
- Safari
OS
- Windows
- macOS
언어
- 한국어
- 영어
이 경우 가능한 모든 조합은 다음과 같습니다.
3 × 2 × 2 = 12가지 테스트 케이스
조건이 조금만 더 많아지면 테스트 케이스는 금방 수십 개, 수백 개가 됩니다.
하지만 실제로 많은 결함은 두 가지 조건의 조합에서 발생하는 경우가 많습니다.
그래서 모든 조합을 테스트하기보다는 각 조건의 쌍(pair)을 최소 한 번씩 테스트하는 방식을 사용하는 것이 바로 페어와이즈 테스트입니다.
페어와이즈 테스트의 핵심 개념
페어와이즈 테스트의 핵심은 간단합니다.
👉 모든 조건 조합을 테스트하는 것이 아니라
👉 조건의 "쌍"을 최소 한 번씩 테스트하는 것
예를 들어
브라우저와 OS
브라우저와 언어
OS와 언어
이처럼 각 요소의 조합이 최소 한 번씩 등장하도록 테스트 케이스를 구성합니다.
이 방법을 사용하면 테스트 케이스 수를 크게 줄일 수 있습니다.
페어와이즈 테스트 예시
다시 위 예시를 사용해보겠습니다.
조건
브라우저
- Chrome
- Edge
- Safari
OS
- Windows
- macOS
언어
- 한국어
- 영어
모든 조합을 테스트하면 12개 케이스가 필요합니다.
하지만 페어와이즈 테스트를 사용하면 다음처럼 줄일 수 있습니다.
예시 테스트 케이스
- Chrome / Windows / 한국어
- Chrome / macOS / 영어
- Edge / Windows / 영어
- Safari / macOS / 한국어
이렇게 구성하면
- 브라우저 + OS
- 브라우저 + 언어
- OS + 언어
모든 쌍 조합이 최소 한 번씩 등장하게 됩니다.
즉, 12개의 테스트 케이스를 4개 정도로 줄일 수 있는 것입니다.
페어와이즈 테스트의 장점
페어와이즈 테스트의 가장 큰 장점은 효율적인 테스트 케이스 설계입니다.
✔ 테스트 케이스 수를 크게 줄일 수 있음
✔ 제한된 시간 안에 더 많은 조합을 검증 가능
✔ 테스트 효율성 증가
특히
- 여러 환경 조합 테스트
- 다양한 설정값 테스트
- 옵션이 많은 기능 테스트
같은 상황에서 많이 사용됩니다.
페어와이즈 테스트의 한계
페어와이즈 테스트가 항상 완벽한 방법은 아닙니다.
몇 가지 한계도 존재합니다.
✔ 세 가지 이상 조건의 복합 결함은 발견하기 어려울 수 있음
✔ 시스템 특성에 따라 모든 결함을 찾지 못할 수 있음
그래서 실제 프로젝트에서는
- 중요한 기능 → 모든 조합 테스트
- 일반 기능 → 페어와이즈 테스트
처럼 테스트 전략을 함께 사용하는 경우가 많습니다.
정리
페어와이즈 테스트는 테스트 케이스를 효율적으로 줄이기 위한 테스트 설계 기법입니다.
핵심은 다음과 같습니다.
👉 모든 조합을 테스트하지 않는다
👉 조건의 쌍(pair)을 최소 한 번씩 테스트한다
👉 테스트 케이스 수를 줄이면서 효율적으로 테스트한다
테스트 케이스를 작성하다 보면 경우의 수가 너무 많아지는 상황이 자주 발생합니다.
이럴 때 페어와이즈 테스트 같은 테스트 설계 기법을 활용하면 테스트 효율을 높일 수 있습니다.
QA 테스트 기법을 공부하면서 이런 개념들도 계속 정리해볼 예정입니다.
'QA 이론 & 테스트 기법' 카테고리의 다른 글
| 🔖 리스크 기반 테스트(Risk-Based Testing)란 무엇인가? QA 테스트 우선순위 정하는 방법 (0) | 2026.05.15 |
|---|---|
| 🔖 에러 추측 테스트(Error Guessing)란 무엇인가? QA 경험 기반 테스트 기법 쉽게 이해하기 (0) | 2026.05.13 |
| 🔖 회귀 테스트(Regression Testing)란 무엇인가? QA 실무에서 꼭 필요한 이유 (0) | 2026.03.06 |
| 🔖 리스크 기반 테스트(Risk-based Testing)란 무엇인가? (QA 실무 정리) (0) | 2026.03.04 |
| 🔖 정적 테스트 vs 동적 테스트 차이 한 번에 이해하기 (QA 이론 정리) (1) | 2026.03.02 |