Combinational Test - 1. Orthogonal array and Pairwise

Dahun Yoo·2021년 4월 17일
0

QA or Test

목록 보기
10/38


테스트 설계 시에 고려해야할, 테스트 대상 / 조건 간에 조합에 대해 추려낼때 쓰는 방법인 직교표와 페어와이즈 테스팅에 대해 기재해봅니다.


Combinational Test (조합 테스트)

테스트를 함에 있어서, 특정 테스트 대상, 테스트 조건들을 조합해서 고려해야할 상황이 많이 있습니다.
예를 들어, 라면표 발매기의 테스트를 한다고 가정해봅시다. 라면의 종류는 아래와 같습니다.

  • 스프의 종류 : 간장, 된장, 고기육수
  • 면의 익힘정도 : 딱딱함, 보통, 부드러움
  • 면의 굵기 : 얇음, 보통, 두꺼움

이 것을 모두 조합하여 테스트를 한다는 가정을 한다면, 고려해야할 조합으로는
스프 3종류 x 면의 익힘정도 3개 x 면의 굵기 3개 = 총 27패턴을 고려해야합니다.
당장 27패턴정도면 그냥 다 해버리면 되는거 아니야...? 라고 생각하실 수 있겠지만, 각각의 선택지를 1개씩 증가시켜본다면, 4x4x4=64 패턴이 도출됩니다. 게다가 실제 필드에서는 고려해야할 사항들이 많이 도출됩니다.

실행환경으로는 OS, OS의버전, 브라우저, 브라우저의 버전, 단말기, 제조사, 프로그램 버전 등도 고려해야할 것입니다.
서비스 내적인 정책을 고려하자면 유저의 본인인증에 따른 유저 레벨이나 사용빈도, 구독하고 있는 유료 서비스 종류 등등.. 셀 수 없이 많아질 것 입니다.

모든 패턴을 확인하는 것이 제일이겠으나, 시간, 비용, 사람 등 여러 resource가 부족한 것이 현실입니다.
우리는 이러한 조합들로부터 가장 효율적이면서 최소한의 조합으로 최대한의 품질을 보증하기 위한 방법을 강구해야합니다.

그러한 방법들 중에 Orthogonal array(직교표)와 Pair-wise(페어와이즈) 방법을 소개하고자 합니다.

Parameter와 level

직교표와 페어와이즈 방법을 소개하기 전에, 간단히 용어의 뜻에 대해 설명하고자 합니다.

Parameter

보통 표에서의, 열에 해당하는 값을 parameter라고 합니다. 좀 더 쉽게 말하자면, 테스트 대상의 카테고리 라고도 이해하시면 될 것 같습니다.
위의 예시로 든다면, parameter는 아래와 같을 것 입니다.

  • 스프의 종류 / 면의 익힘정도 / 면의 굵기

Level

각각의 Parameter가 취할 수 있는 값들의 최대개수를 의미합니다.
위 예시로 든다면, 각각의 parameter들은 동일하게 최대레벨이 2입니다.

1. Orthogonal Array Test (직교표 테스트)

직교표란, 소프트웨어 테스트를 하기 훨씬 이전부터 작성되고 있는 하나의 방법입니다.
보통 강도2 의 직교표 라고 한다면, 임의의 2개 열 또는 2개의 행에 나타나는 모든 level의 조합이 동일한 개수로 나타나는 표를 의미합니다.
수학적인 개념들이 많이 포함되어서.. 수포자라 설명드리기가 조금 어렵네요.

1234
parameter 10011
parameter 21100
parameter 31010
parameter 40101

위와 같이 값이 고르게 분포되어있을 것입니다.

위에서 설명드린 예시를 좀 더 바꾸어 다르게 설명드려봅니다.

  • 스프 종류 : 간장, 된장, 고기육수
  • 면의 익힘정도 : 딱딱함, 보통, 부드러움
  • 면의 굵기 : 얇음, 보통, 두꺼움
  • 면의 양 : 적음, 보통, 많음

위의 예시로, 모든 경우의 수를 커버한다면 81개의 패턴이 나올 것 입니다. 여기서 직교표로 나타내어 본다면, 아래와 같이 될 것 입니다.

면의 익힘정도스프의 종류면의 양면의 굵기
딱딱함간장적음얇음
딱딱함된장보통보통
딱딱함고기육수두꺼움두꺼움
보통간장보통두꺼움
보통된장두꺼움얇음
보통고기육수적음보통
부드러움간장두꺼움보통
부드러움된장적음두꺼움
부드러움고기육수보통얇음

위의 표에서, 임의의 2개 열(parameter)의 조합의 커버리지는 100% (조합이 균일하게 분포) 가 되어있음을 확인할 수 있습니다.
또한 각각의 행의 결과값들은 중복되지 않는다는 것을 확인할 수 있습니다. (고르게 확인)
전체적으로 고른 분포이기에, 임의의 3개 parameter의 조합 커버리지도 약 80%이상이 됩니다.
전체 테스트케이스 수도 9개패턴으로 생성된 것을 확인할 수 있습니다. 즉, 모든 패턴을 전부 커버하진 않지만, 적어도 9개의 패턴으로 parameter간의 조합을 커버한다는 것입니다.

2. Pair-wise Test (페어와이즈 테스트)

직교표와 비슷한 방법으로, Pair-wise방법이 있습니다. all-pair라고도 하는 방법인데, 대부분의 결함은 2개의 parameter의 상호작용으로 인해서 발생한다는 근거 로부터 시작된 방법입니다.
페어와이즈는 임의의 두 개의 parameter가 하나의 pair가 되도록 작성합니다.
2개의 Parameter가 하나의 pair가 되므로, 즉 직교법처럼 2개의 parameter조합의 커버리지는 100%가 됩니다. 이것은 직교법과 동일합니다. 그러나 3개 이상의 parameter간의 조합에서 커버리지는, 직교법에 비하면 많이 낮아지게 됩니다. 이 것은 위에서 말씀드린 2개의 parameter의 상호작용으로 인해 발생한다는 논리에서 비롯합니다. (중복된 값이 발생하는 경우가 있음)

면의 익힘정도스프의 종류면의 양면의 굵기
딱딱함간장두꺼움보통
딱딱함고기육수보통얇음
딱딱함된장적음보통
딱딱함된장적음두꺼움
보통간장보통얇음
보통간장적음두꺼움
보통고기육수두꺼움보통
보통된장두꺼움두꺼움
부드러움간장보통보통
부드러움간장적음얇음
부드러움고기육수적음두꺼움
부드러움된장보통두꺼움
부드러움된장두꺼움얇음

위의 표를 본다면, 직교법보다는 수가 늘어나있고, 간간히 같은 행에 중복된 값들이 있는 것을 확인할 수 있으나, 임의의 2개의 열(parameter)을 pair하게 매칭하고 있음을 알 수 있습니다.
(각각 임의의 2개 열의 parameter간의 서로 매칭되는 최소필요조건)

Pair-wise와 Othogonal array의 차이점

두 방법의 차이점은,

  • 페어와이즈는 2개의 parameter간의 pair를 중점으로 작성
  • 직교표는 표 전체적으로 고른 parameter의 level 조합을 중점으로 합니다.
    • (3개 parameter이상의 조합에서도 커버리지가 높음.)

또한 직교표의 경우, 각 행과 열이 서로 Pair-wise합니다. 즉, 각각의 행은 서로 겹치는 값이 없고, 각각의 열도 서로 겹치는 값이 없다는 의미입니다.
그리고 많은 경우에서, 직교표보다 페어와이즈의 경우가 확인해야할 패턴의 수가 적다고 합니다.


Combinational Test에서 중요한 점...

결국, 모든 경우의 수를 테스트할 수는 없음으로, 가장 효율적인 조합으로 최대한의 품질을 보증해야하기에, 위와 같은 방법들을 사용하지만, 어찌되었던 모든 패턴을 확인하지 않는다는 것은, 그만큼의 Risk를 부담한다는 것입니다.

프로덕트와 서비스의 요건에 의해서는 꼭 확인이 필요한 요소도 있고, 필요하지 않은 요소도 있을 것 입니다. 테스트케이스를 설계하고 작성할때는 그러한 조건들을 사전에 확인하고, 관계자들과의 충분한 논의가 필요할 것 입니다.

Ref

profile
QA Engineer

0개의 댓글