ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 조합테스트기법 - 모든 단일 값 찾기
    Object & Test 2010. 12. 7. 23:24

    어떤 메소드나 프로시져를 테스트한다고 가정해 보겠습니다. 테스트 하려는 메소드는 여러 개의 파라미터를 갖고 각 파라미터는 또 여러 종류의 값을 취할 수 있습니다. 예를 들어 메소드가 3개의 파라미터를 갖고 각 파라미터는 10가지 경우를 갖는 다면, 파라미터가 조합될 수 있는 경우의 수는 10 X 10 X 10 이 되므로 총 1,000가지 경우가 됩니다.

    (이미지출처)

    이제 테스트를 작성하려고 합니다. 1,000가지의 경우에 대한 테스트 코드를 모두 작성해야 할까요? 아마도 다들 고개를 저으실 겁니다. 모든 경우를 다 테스트하려 한다면 큰 비용이 들기 때문입니다. 또한, 비용 대비 효과도 그닥 장담할 수 없습니다.

    이런 다양한 조합을 테스트할 수 있는 좋은 방법이 있을까요? 먼저 소개해 드릴 방법은 모든 단일 값 찾기입니다.

    이 방법을 수행하기 위해서는 영역 분할 및 대표 값을 먼저 찾아야 합니다. 먼저 각 변수가 가질 수 있는 값들의 분포를 잘 살펴보고 각 변수를 대표할 수 있는 값들을 찾습니다. 위와 같은 경우 각 변수의 대표 값을 3개 정도로 한정하여 영역을 좁힌다면, 3 X 3 X 3 개의 경우로 조합이 줄어들어 총 27개의 조합이 됩니다. 하지만 여전히 테스트하기에는 많다고 느껴집니다. 이를 더 줄이기 위해 모든 단일 값 찾기를 적용합니다. 단일 값 찾기는 각 변수들이 겹치지 않고 유일한 조합을 갖도록 만드는 과정입니다.

    각 변수 마다 3개의 대표 값을 갖는다면 다음과 같이 3개의 단일 값 조합을 찾아 낼 수 있습니다.

     
     변수1
    변수2
    변수3 
     case 1  A  I  V
     case 2  B  J  W
     case 3  C  K  X

    이 방법은 조합의 경우를 테스터가 관리할 수 있는 수준으로 줄이기 위해 사용하는 방법입니다. 대표 값을 찾고 이를 단일 값을 갖도록 조합함으로써 무작위적인 변수의 조합 보다는 더 근사적인 방법으로 테스트를 작성할 수 있게 됩니다. 하지만 기계적인 방법을 통해 조합을 찾아 내기 때문에 중요한 변수의 조합을 놓칠 수 있습니다. 만약, 명확히 알고 있는 변수의 조합이 있다면 그걸 우선적으로 테스트 해야 합니다.


Designed by Tistory.