본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
Pairwise Testing; 페어와이즈 테스팅, 쌍대 조합 테스트, All-pairs Testing
테스트 대상의 입력 인자가 여럿일 때, 임의의 두 인자의 값 쌍(pair)이 모두 한 번 이상 나타나도록 최소한의 조합만 골라 테스트하는 블랙박스 테스트 기법

인자마다 가질 수 있는 값을 모두 곱한 전체 조합을 테스트하면 경우의 수가 기하급수적으로 늘어난다. 값이 3개씩인 인자 10개의 전체 조합은 310 = 59,049 가지다. 그런데 실제 결함의 상당수는 인자 하나의 값이나 두 인자의 상호작용으로 생긴다는 경험적 관찰이 있다. 페어와이즈 테스트는 이것을 근거로 "모든 두 인자 조합만은 빠짐없이" 시험하는 선에서 테스트케이스 수를 크게 줄인다.

이 기법은 조합 테스트(Combinatorial Testing)의 한 형태로, 두 인자 조합(2-way)을 보장한다. 셋 이상의 인자 조합을 보장하도록 넓힌 것을 t-way 테스트라 한다. 조합표는 직교 배열(Orthogonal Array)이나 PICT·ACTS 같은 도구로 만든다.

  1. 인자와 각 인자가 가질 수 있는 값을 나열한다
  2. 모든 인자 쌍(A-B, A-C, B-C …)에 대해 나와야 할 값 쌍을 적는다
  3. 한 행(테스트케이스)에 여러 쌍이 동시에 담기도록 행을 채워, 모든 값 쌍이 최소 한 번씩 나오게 한다
  4. 값 쌍마다 실제로 들어 있는지 표로 검증한다

인자 A(A1, A2, A3), B(B1, B2), C(C1, C2) 가 있다. 전체 조합은 3 × 2 × 2 = 12 가지다.

페어와이즈에서 반드시 나와야 할 쌍은 다음과 같다.

  • A-B 쌍 6개: A1B1, A1B2, A2B1, A2B2, A3B1, A3B2
  • A-C 쌍 6개: A1C1, A1C2, A2C1, A2C2, A3C1, A3C2
  • B-C 쌍 4개: B1C1, B1C2, B2C1, B2C2

A-B 쌍이 6개이므로 최소 6행이 필요하다. 아래 6행이면 16개 쌍이 모두 나온다.

행 A B C 새로 채우는 B-C 쌍
1 A1 B1 C1 B1C1
2 A1 B2 C2 B2C2
3 A2 B1 C1 (B1C1 반복)
4 A2 B2 C2 (B2C2 반복)
5 A3 B2 C1 B2C1
6 A3 B1 C2 B1C2
  • A 값마다 B1·B2 가 한 번씩 오고, C1·C2 가 한 번씩 오므로 A-B, A-C 쌍은 자동으로 채워진다
  • 남는 것은 B-C 쌍이다. 1~4행이 B1C1, B2C2 만 만들기 때문에, 5·6행에서 B2C1, B1C2 를 만들어야 한다. 5·6행의 B 를 B1, B2 순서로 두면 B1C1, B2C2 가 또 나와 B1C2·B2C1 이 빠진다
  • 결과적으로 12개 조합 대신 6개 테스트케이스로 모든 두 인자 조합을 시험한다
  • 장점: 테스트케이스 수를 크게 줄이면서도 두 인자 상호작용 결함을 놓치지 않는다. 도구로 자동 생성할 수 있다
  • 단점: 셋 이상의 인자가 동시에 특정 값일 때만 나는 결함은 보장하지 못한다. 인자 사이의 제약(함께 올 수 없는 값)을 따로 반영해야 한다

다른 블랙박스 기법과의 관계

편집 원본 편집
  • 동치 분할 테스트·경계값 분석 테스트로 인자별 대표값을 먼저 고르고, 그 대표값들의 조합을 페어와이즈로 줄이는 식으로 함께 쓴다
  • 원인-결과 그래프·결정 테이블은 조건 조합과 결과의 논리 관계를 다루고, 페어와이즈는 조합의 수를 줄이는 데 초점이 있다