조합 테스트
더 많은 작업
조합 테스트(Combinatorial Testing, 조합 테스트 설계)는 테스트 대상의 입력 매개변수마다 고른 값들을 어떤 규칙으로 엮어 테스트케이스를 만들지 정하는 명세 기반 테스트 설계 기법의 묶음으로, 전체 조합·페어와이즈·각 선택·기본 선택 테스트가 여기에 든다.
매개변수가 여럿이면 값의 전체 조합 수는 각 매개변수 값 수의 곱이 되어 금방 감당할 수 없을 만큼 커진다. 조합 테스트 기법들은 "어떤 조합을 반드시 포함할 것인가"라는 기준(커버리지 기준)을 정해 그 기준을 만족하는 최소한의 조합만 고른다. ISO/IEC/IEEE 29119 파트 4는 조합 테스트 설계 기법으로 전체 조합(all combinations), 페어와이즈(pair-wise), 각 선택(each choice), 기본 선택(base choice) 테스트를 정의한다.[1]
매개변수가 k 개이고 i 번째 매개변수의 값이 ni 개라고 하자.[2]
| 기법 | 기준 | 테스트케이스 수 |
|---|---|---|
| 전체 조합(All Combinations) | 모든 값의 모든 조합 | n1 × n2 × … × nk |
| 각 선택(Each Choice) | 각 매개변수의 각 값이 적어도 한 번 나온다 | 최소 max(ni) |
| 페어와이즈(Pair-wise) | 임의의 두 매개변수의 값 쌍이 모두 한 번 이상 나온다 | 최소 (가장 큰 n) × (두 번째로 큰 n) 이상. 정확한 최소값은 조합표를 만들어 봐야 안다 |
| 기본 선택(Base Choice) | 기본 조합 하나 + 매개변수를 하나씩만 바꾼 조합 | 1 + (n1 − 1) + (n2 − 1) + … + (nk − 1) |
기본 선택 테스트는 먼저 매개변수마다 가장 흔하거나 중요한 값(기본값, base choice)을 하나씩 골라 기본 테스트케이스 하나를 만든다. 그다음 다른 매개변수는 기본값으로 둔 채 한 매개변수만 나머지 값으로 바꿔 가며 테스트케이스를 더한다. 한 번에 한 요소만 달라지므로 결함이 나면 원인이 된 값을 쉽게 짚을 수 있다.[2]
예를 들어 글꼴 이름 4가지(궁서·굴림·바탕·고딕), 글꼴 크기 5가지(10·12·14·16·18), 스타일 3가지(밑줄·기울임·보통)가 있고 기본 조합을 (굴림, 10, 보통)으로 정했다고 하자.
- 기본 테스트케이스 1개: (굴림, 10, 보통)
- 글꼴 이름만 바꾼 것 3개: 궁서·바탕·고딕
- 글꼴 크기만 바꾼 것 4개: 12·14·16·18
- 스타일만 바꾼 것 2개: 밑줄·기울임
- 합계 1 + 3 + 4 + 2 = 10개
같은 매개변수에서 전체 조합은 4 × 5 × 3 = 60개, 각 선택은 가장 값이 많은 글꼴 크기 기준으로 최소 5개, 페어와이즈는 최소 5 × 4 = 20개다.
- 각 선택은 값마다 한 번씩만 등장하면 되므로 가장 약한 기준이다. 값 사이의 상호작용은 거의 시험하지 못한다
- 기본 선택은 기본값과의 차이 하나씩을 시험한다. 기본값을 잘못 고르면 효과가 떨어진다
- 페어와이즈는 두 매개변수 상호작용을 모두 덮는다. 셋 이상으로 넓히면 t-way 테스트가 된다
- 전체 조합은 가장 강하지만 비용이 가장 크다
- ↑ 「ISO/IEC/IEEE 29119-4:2021 Software and systems engineering - Software testing - Part 4: Test techniques」, ISO, https://www.iso.org/standard/79430.html, 확인일: 2026-11-04.
- ↑ 2.0 2.1 Paul Ammann, Jeff Offutt, 『Introduction to Software Testing』 2판, Cambridge University Press, 2016, 6장 Input Space Partitioning(Combination Strategies Criteria).