페어와이즈 테스트(pairwise testing)는 두 매개변수 값의 가능한 모든 쌍을 적어도 한 테스트 케이스가 덮게 하는 블랙박스 기법이다.[1][2] NIST SP 800-142에 따르면 페어와이즈 테스트는 두 매개변수의 조합(2-way 조합)을 덮는 조합 테스트이고, 조합 테스트에서 흔히 쓰는 방식으로 자리 잡았다.[2]

조합 테스트

ISTQB 용어집은 조합 테스트(combinatorial testing)를 여러 매개변수 값의 특정 조합을 테스트 조건으로 삼는 블랙박스 기법으로 정의한다.[3]

NIST SP 800-142에 따르면 매개변수 개의 값 조합을 모두 덮는 테스트를 -way 조합 테스트라 하고, 를 강도(strength)라고도 부른다. 페어와이즈 테스트는 인 경우다.[2]

소프트웨어 failure는 대부분 매개변수 하나의 값이나 두 매개변수의 상호작용으로 일어나고, 얽힌 매개변수가 많을수록 그런 failure는 드물어진다. NIST와 다른 연구자가 조사한 분야에서는 모든 failure가 많아야 매개변수 4개에서 6개의 상호작용으로 일어났고, 이 관찰이 조합 테스트의 근거다.[2]

케이스 수

값이 10개씩인 입력 개를 모두 조합해 테스트하려면 입력 개가 필요하다. 이 문서의 예에서 값이 둘인 매개변수 10개의 모든 조합은 개지만, 그 3-way 조합은 모두 13개 케이스로 덮인다. 같은 매개변수 10개의 모든 쌍은 NIST의 ACTS(Automated Combinatorial Testing for Software)로 만든 커버링 배열이 10개 케이스로 덮었다. 값이 각각 3, 2, 2, 2, 3가지인 매개변수 5개의 구성 72가지는 10개 케이스로 모든 쌍을 덮는다.[2]

매개변수 개가 각각 값 개를 가질 때, -way 조합을 모두 덮는 케이스 수는 에 비례한다. 그래서 케이스 수는 매개변수 수의 로그로만 늘어난다.[2]

직교 배열과 커버링 배열

조합 테스트의 핵심 요소는 모든 -way 조합을 담은 커버링 배열이다. 커버링 배열에서 행 하나는 테스트 하나, 열 하나는 매개변수 하나다.[2]

두 배열의 정의는 다음과 같다.[2]

  • 직교 배열(orthogonal array): 어느 개 열을 골라도 값의 모든 -튜플이 정확히 같은 횟수씩 나오는 배열이다.
  • 커버링 배열(covering array): 어느 개 열을 골라도 값의 모든 -튜플이 적어도 정해진 횟수만큼 나오는 배열이다. 소프트웨어 테스트에서는 그 횟수를 1로 둔다.[2]

커버링 배열은 조합마다 같은 횟수씩 나와야 한다는 제약을 풀어서, 테스트가 겹칠 수는 있지만 직교 배열로는 다룰 수 없는 훨씬 큰 문제에도 계산할 수 있다.[2]

Kuhn, Kacker, Lei는 백과사전 항목에서, 값이 둘인 매개변수 4개와 셋인 매개변수 1개의 모든 쌍을 직교 배열을 고쳐 만든 배열로는 8행으로, 커버링 배열로는 6행으로 덮는 예를 들었다.[4]

도구

NIST SP 800-142에 따르면 모든 -way 조합을 덮는 테스트 집합을 효율적으로 만드는 일은 어려운 수학 문제여서, 테스트 데이터 생성 도구로 정한 강도까지의 조합을 덮는다. NIST의 ACTS가 그런 도구다.[2] Microsoft의 PICT(Pairwise Independent Combinatorial Testing)도 테스트 케이스를 생성하는 도구다.[5]

[1]
ISTQB, “ISTQB Glossary — pairwise testing.” 2026. Accessed: Oct. 03, 2026. [Online]. Available: https://glossary.istqb.org/en_US/term/pairwise-testing
[2]
D. R. Kuhn, R. N. Kacker, and Y. Lei, “Practical Combinatorial Testing,” NIST Special Publication 800–142, Oct. 2010. Accessed: Oct. 03, 2026. [Online]. Available: https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-142.pdf
[3]
ISTQB, “ISTQB Glossary — combinatorial testing.” 2026. Accessed: Oct. 03, 2026. [Online]. Available: https://glossary.istqb.org/en_US/term/combinatorial-testing
[4]
D. R. Kuhn, R. N. Kacker, and Y. Lei, “Combinatorial Testing,” in Encyclopedia of Software Engineering, 2012. Accessed: Oct. 04, 2026. [Online]. Available: https://tsapps.nist.gov/publication/get_pdf.cfm?pub_id=910001
[5]
Microsoft, “PICT: Pairwise Independent Combinatorial Testing.” 2026. Accessed: Oct. 03, 2026. [Online]. Available: https://github.com/microsoft/pict