반응형

제목: 직교 배열표 테스팅 기법(Orthogonal Array Testing Strategy Technique)

저자: Jeremy M. Harrell

문서유형: 기술 문서(총 8페이지), 2009년 

Tags: 테스트 설계, 통계적 테스트 설계


직교 배열표 테스팅 기법에 대해 간단한 예를 들어 소개한 자료



직교 배열표 테스팅 기법

  • 모든 변수 쌍 조합에 대한 대표(균일하게 분배된) 커버리지를 제공하는 체계적이고 통계적인 테스팅 방식
  • 변수의 가능한 모든 조합을 테스팅하는 것보다 훨씬 적은 수의 테스트케이스 셋을 효율적으로 생성할 수 있게 해줌
  • 상호 작용(Interactions)과 통합(integrations)이 결함의 주요 근원이다라는 결함 모델을 기본으로 깔고 있음
  • 소프트웨어 컴포넌트들의 통합 테스팅이나 또는 구성 옵션(configurable options)들의 조합을 테스팅하는데 특히 유용한 기법


직교 배열표 관련 용어

직교 배열표(orthogonal arrays)’는 숫자들의 2차원 배열표이며, 주요 용어가 아래와 같다.

  • (Runs): 배열표에서 행의 수. 직교 배열표 기법에 의해 생성되는 테스트케이스 수
  • 인자(Factors): 배열표에서 열의 수. 해당 배열표가 취급할 수 있는 변수들의 최대 수
  • 레벨(Levels): 개별 인자가 취할 수 있는 값들의 최대 수. 직교 배열표가 0에서부터 레벨-1까지의 값들을 포함하게 됨
  • 강도(Strength): 서브셋 열의 수 t. 선택된 t개 열의 모든 레벨 조합이 동등한 빈도로 직교 배열표에 등장함

 

직교 배열표는 대개 LRuns(LevelsFactors) 형식으로 이름 붙여진다. 아래 예와 같은 강도 2(t=2)의 직교 배열표에서는 어떤 두 개 열을 선택하더라도 그 값들의 모든 페어와이즈 조합이 균등하게 분배되어 있다.

[=9, 인자=4, 레벨=3, 강도=2L9(34) 직교 배열표]


직교 배열표 테스팅 적용 방법

직교 배열표 테스팅 기법은 선택된 변수(인자)들의 모든 페어와이즈 조합을 테스팅하는 것을 보장하는 테스트케이스 셋을 효율적으로 생성할 수 있는 수단을 제공한다. 직교 배열표 테스팅 기법을 적용하는 단계가 아래와 같다.

    단계1: 얼마나 많은 독립 변수들이 상호 작용 측면에서 테스트 될지 결정한다. 이게 직교 배열의 인자(Factors)로 매핑된다.

    단계2: 각 독립 변수가 취하게 될 값들의 최대 수를 결정한다. 이게 직교 배열의 레벨(Levels)로 매핑된다.

    단계3: 최소 런(Runs) 수를 가지는 적절한 직교 배열표를 찾는다. 적절한 직교 배열표란 최소한 단계1에서 결정된 인자 수와 단계2에서 식별된 각 인자의 레벨 수 만큼이 포함될 수 있는 것을 말한다.

    단계4: 인자와 그 값들을 직교 배열표 상에 매핑한다.

    단계5: “남겨진(left over)" 레벨이 있는 경우 이를 위한 값들도 결정하여 할당한다.

    단계6: 각 런을 테스트케이스로 변환한다. 직교 배열표에 의한 생성에는 포함되지 않지만 특별히 의심스러운(우려가 되는) 조합이 있다면 이를 테스트케이스 셋에 추가한다



직교 배열표 적용 예

웹 페이지가 상단, 중간, 하단의 세 구획(sections)으로 구분되어 있고, 사용자가 각 구획을 개별적으로 보이게 하거나 감출 수 있음. 이 세 구획들의 상호 작용을 테스트하고자 할 때, 직교 배열표 기법을 사용하여 아래와 같이 테스트케이스 셋을 생성한다. 

단계1: 3개의 독립 변수(웹페이지의 세 개 구획)가 존재함

단계2: 각 변수가 2개의 값(숨김, 보임)을 취할 수 있음

단계3: 레벨=2이고 인자=3이므로 이 시스템을 테스트하기 위해 L4(23) 직교 배열표를 선택함. 적절한 직교 배열표를 고르는데 있어서 런의 수는 필수적이지 않음

단계4: 이 예를 선택된 직교 배열표에 매핑하면 아래와 같음. 숨김(Hidden)=0, 보임(Visible)=1


단계5: 남겨진 레벨이 없음(, 배열표에서 모든 레벨에 매핑된 값이 있다).

단계6: 각 런으로부터 테스트케이스를 취하면 총 4개의 테스트케이스가 생성됨. , 3개 변수 간의 모든 페어와이즈 상호 작용을 테스트하는데 필요한 테스트케이스 수가 4이다. 이 테스트케이스들을 해석하면 아래와 같다.  

-        Test 1. 홈 페이지를 디스플레이하고 모든 구획을 감춘다.

-        Test 2. 홈페이지를 디스플레이하고 상단(Top) 구획을 제외한 모든 구획을 보이게 한다.

-        Test 3. 홈페이지를 디스플레이하고 중간(Middle) 구획을 제외한 모든 구획을 보이게 한다.

-        Test 4. 홈페이지를 디스플레이하고 하단(Bottom)을 제외한 모든 구획을 보이게 한다.

 

멀티레벨 직교 배열표 예

5개의 독립 변수(A, B, C, D, E)가 있는 시스템에서 변수 AB가 각각 2개 값, 변수 CD는 각각 3개 값, 그리고 변수 E6개 값을 가지고 있음. 이 시스템의 가능한 조합 전부를 테스트하려면 216개의 테스트케이스(2 x 2 x 3 x 3 x 6 = 216)가 필요함. 반면 직교 배열표 기법을 사용하면 18개의 테스트케이스로 모든 페어와이즈 조합을 테스트하는게 가능함 

단계1: 5개의 독립 변수가 존재함

단계2: 5개의 변수 중 2개 변수는 2개 값을 취할 수 있고, 다른 2개 변수는 3개 값을 취할 수 있으며, 나머지 한 개 변수는 6개 값을 취할 수 있음

단계3: 적절한 직교 배열표를 찾기 위해 직교 배열표 카달로그에서 적어도 5개 인자와 6개 레벨을 갖는 배열표를 찾는다. 이 조건에 맞는 가장 작은 배열표로 L49(78)이 있음. 단일 레벨을 가진 이 배열표를 선택하면 49개의 테스트를 생성하게 됨. 레벨 수가 하나로 통일되지 않은 혼합 레벨 직교 배열표도 일부 존재하는데, 그 중 우리 조건에 맞는 최소 배열표로 L18(3661)가 있다(7개 인자를 위한 18개 런이 존재하며, 6개 인자는 3레벨을 나머지 한 개 인자는 6레벨을 가짐). 이 멀티레벨 배열표를 선택하면 테스트 셋의 테스트케이스 수가 처음 식별된 49개에서 18개로 감소됨

단계4: 선택한 멀티레벨 배열표에 아래 값들을 매핑한다.

-        변수 A: A1=0; A2=1.

-        변수 B: B1=0; B2=1.

-        변수 C: C1=0; C2=1; C3=2.

-        변수 D: D1=0; D2=1; D3=2.

-        변수 E: E1=0; E2=1; E3=2; E4=3; E5=4; E6=5.


[인자 매핑 전의 직교 배열표]


[인자 매핑 후의 직교 배열표]


단계5: 배열표에 필요하지 않는 여분의 인자가 있는데 이는 무시하고 빈칸 처리한다(그림에서 회색 빈칸 부분). 또한 배열표에 남겨진(left over)" 레벨들도 존재한다. 변수 A B를 위해 원래 배열표에는 3개 레벨이 주어졌지만 해당 변수들이 단지 두 개 값만을 취하므로 매핑 후에 한 개의 레벨이 남겨지게 됨(그림에서 노란색으로 표시됨). 완전 명세된 테스트케이스를 얻기 위해서 이 남겨진 레벨의 셀에 테스터가 임의로 인자 값을 채워 넣게 됨

단계6: 18개 테스트케이스가 직교 배열표 기법에 의해 생성됨

 

 

NOTE. 이 문서에서는 강도 2의 직교 배열표와 쌍 조합(pair-wise combinations)에 대해서만 다루고 있다. 다른 강도의 직교 배열표는 테스트를 선택하는데 있어 다른 컬럼 수(t 2)를 요구하게 된다.

 

NOTE. 직교 배열표 카달로그는 고급 통계학 책의 부록이나 다구치 방법에 대한 책에서 찾아볼 수 있다. 또한 N. Sloane의 웹 사이트(http://neilsloane.com/oadir/)에서도 찾을 수 있다.



반응형

+ Recent posts