본문 바로가기

유용한 정보들/소프트웨어 테스팅

조합 테스팅(Combination Testing)이란

조합 테스팅(combination testing)이란 입력 값을 조합하여 테스트 케이스를 생성하고 이를 테스트하는 것입니다. 조합 테스팅 중 가장 많이 사용하는 기법은 페어 와이즈 테스팅(pair-wise testing)이며 페어 와이즈 테스팅의 목적은 철저한 테스트가 아니라 테스트의 조합을 최소화하는 것입니다.

 

테스트 문자

 

조합 테스팅의 종류

All combination testing : 입력 값의 모든 조합을 모두 테스트

Pair-wise testing : 두 입력 값의 조합을 모두 테스트

Each choice(1-wise) testing : 입력 값을 최소 한 번 이상 테스트

Base choice testing : 기본 입력 값으로만 테스트

 

간단한 예제를 통해서 조합 테스팅의 테스트 케이스를 만들어 봅시다.

예를 들어, 아래와 같이 관광지, 여행 패키지 등급, 사용 언어에 따라 관광 안내 동영상을 재생하는 관광 소개 시스템이 있다고 가정해봅시다.

조합 테스팅 예제

 

All combination testing의 경우 모든 입력값에 대해서 조합이 가능한 경우는 다음과 같이 총 12개(2 × 3 × 2)의 테스트 케이스 생성이 가능합니다.

-TC01: 서울, 한국어, Elite

-TC02: 서울, 한국어, Good

-TC03: 서울, 영어, Elite

-TC04: 서울, 영어, Good

-TC05: 서울, 중국어, Elite

-TC06: 서울, 중국어, Good

-TC07: 제주, 한국어, Elite

-TC08: 제주, 한국어, Good

-TC09: 제주, 영어, Elite

-TC10: 제주, 영어, Good

-TC11: 제주, 중국어, Elite

-TC12: 제주, 중국어, Good

 

Pair-wise testing은 대부분의 결함이 2개의 요소의 상호 작용에 기인한다는 점에 착안하여 각 요소들이 최소한 한 번씩 조합을 이루게 하고, 이렇게 조합된 값을 바탕으로 테스트를 만드는 것입니다.

앞의 예제에서 2개의 요소 조합을 만들어 보면 다음과 같이 총 16개의 조합을 만들 수 있습니다.

(서울, 한국어) (서울, 영어) (서울, 중국어) (서울, Elite) (서울, Good)

(제주, 한국어) (제주, 영어) (제주, 중국어) (제주, Elite) (제주, Good)

(한국어, Elite) (한국어, Good) (영어, Elite) (영어, Good) (중국어, Elite) (중국어, Good)

 

하나의 테스트 케이스에는 둘 이상의 고유한 쌍을 포함할 수 있으며 16개의 조합 쌍을 아래와 같이 총 8개의 테스트 케이스를 만들어 포함할 수 있습니다.

여기서, TC07, TC08의 *는 모든 쌍을 다 포함하였기 때문에 어떤 값을 사용하여도 상관이 없습니다.

-TC01: 서울, 한국어, Elite

-TC02: 서울, 영어, Elite

-TC03: 서울, 중국어, Elite

-TC04: 제주, 한국어, Good

-TC05: 제주, 영어, Good

-TC06: 제주, 중국어, Good

-TC07: 서울, *, Good

-TC08: 제주, *, Elite

 

Each choice(1-wise) testing : 입력 값을 최소 한 번 이상만 테스트하면 되기 때문에 다음과 같이 3개의 테스트 케이스만으로 모든 입력 값을 테스트하는 것이 가능합니다.

-TC01: 서울, 한국어, Elite

-TC02: 제주, 영어, Good

-TC03: 서울, 중국어, Elite

 

Base choice testing : 이 테스트 방법은 Base가 되는 테스트 케이스를 하나를 우선 지정 후 Base 테스트 케이스에서 조건을 하나씩 변경하면서 테스트 케이스를 생성하는 것입니다.

-TC01: 서울, 한국어, Elite (Base)

-TC02: 제주, 한국어, Elite

-TC03: 서울, 영어, Elite

-TC04: 서울, 중국어, Elite

-TC05: 서울, 한국어, Good

 

조합 테스팅에서 가장 많이 사용하는 페어 와이즈 테스팅은 수행 시간을 줄일 수는 있으나, 모든 조합에 대한 테스트를 수행하는 것이 아니지 때문에 모든 결함을 발견하지는 못한다는 것에 주의해야 합니다.

 

페어 와이즈 테스팅의 경우 조합의 수가 증가하면 사람의 힘으로 모든 조합을 작성하는 것 불가능하므로 다음의 상용화된 Tool를 활용하는 것이 일반적입니다.

1. Allpairs

2. PICT

3. Jenny