Combinational Test - 3. PictMaster

Dahun Yoo·2021년 4월 26일
0

QA or Test

목록 보기
12/38
post-thumbnail

PICT는 CLI 프로그램이라, 사용하기 조금 불편합니다. 마침 일본의 모 개발자가 엑셀을 이용해서 간편하게 조합테스트를 구성할 수 있는 프로그램을 오픈소스로 오래전부터 공개하고 있어서, 소개하고자합니다.
스크롤이 꽤나 깁니다.


이 글은 아래 글들로 부터 이어집니다.
Combinational Test - 1. Orthogonal array and Pairwise
Combinational Test - 2. PICT and CIT-BACH


앞에서 부터 장황하게 설명했던 것은, 사실 이번 포스트를 위함이나 다름없습니다.


PictMaster

PictMaster は事実上日本国内で唯一、直交表を用いた組み合わせ生成をサポートしているフリーでオープンソースなツールです。約300種類の直交表テンプレートを内蔵し、モデルに最適なテンプレートを決定してテストケースを生成します。またMicrosoftのフリーソフトであるPICTと大阪大学の土屋教授が開発したフリーソフトであるCIT-BACHをペアワイズ法(オールペア法)の組み合わせ生成エンジンとして使用しています。さらに独自の機能追加を行なったExcelベースのフリーソフトです。
無償でPictMasterを公開する理由は、業務で実用的に使用できる組み合わせテストツールが入手できない現状を打破し、誰もが自由に使用できるツールを提供することによって、ソフトウェアテスト技術者の技術向上の一助になればとの思いからです。
https://ameblo.jp/pictmaster

PictMaster - Excel based Pairwise testing tool. This is an Excel based, free software called PictMaster, which automatically creates test cases for the combinatorial testing of the software on Excel.
PICT , which is free software from Microsoft that uses the pairwise method, is used for the engine part of test case creation. PICT is software that runs from the command prompt, but PictMaster is something that allows the easy use of PICT by using the GUI in Excel.

http://www.qatestingtools.com/testing-tool/pictmaster

(개발자가, 소개문에서, 무료 소프트로 공개하는 이유는, 대부분에 사용하기 쉬운 조합테스트케이스 작성용 소프트웨어를 구할 수 없음에 개탄하여 자신이 직접 만들었다 합니다..)

PictMaster 는 Excel로 Othogonal array(직교법)와 Pairwise(페어와이즈)의 조합을 생성해주는, 일종의 툴입니다.

직교법의 경우 몇가지 template를 준비하여 빠르게 생성할 수 있도록 준비해놓았고, Pairwise의 경우는, PICTCIT-BACH을 back-end engine으로 사용하고 있습니다.
표의 형태를 하고 있는 Excel의 특성과, VisualBasic을 이용하면 좀 더 사용하기 쉽기 때문에, Excel로 만든 것이라 생각합니다.
조합의 수가 많으면 많을수록, 테스트케이스를 작성하는 입장에서는 골머리 터지는데요, 정말 너무나도 감사한 Tool이 아닐 수 없습니다.

단, Excel의 VisualBasic기반이고, 필요조건으로 PICT.exe의 설치가 요구되는 만큼,
본 툴은 Windows환경에서만 구동됩니다. 또한,
영어와 일본어의 입력만 지원됩니다. 따라서 한국어의 입력을 원하시는 분들은, 예를들어 A=짜장면, B=탕수육... 이런식으로 정해놓으신 후, 조합 생성 후에 치환기능을 이용해서 한 번에 바꾸시는 것도 좋을 것 같습니다.

Download & Setup

영어버전도 있고, 일어버전도 있는데요, 차이점은 아래와 같습니다.

  • 영어버전 : 기본적인 페어와이즈 생성 가능, 제약조건 추가 가능, 통계 가능
  • 일어버전 : 꾸준한 업데이트로 인하여 64bit버전 엑셀 대응 / 직교법과 페어와이즈 두 가지 방법 가능 / 제약조건 추가 가능 / 생성된 테스트케이스 조합결과에 대한 통계, coverage 도출가능 / 제약조건 입력 시 느려짐을 막기 위해 조합가지수 생성엔진에서 CIT-BACH 를 선택할 수 있음. / 최대 5-way까지 생성가능

일단 이번 포스트에서는 영어버전으로 간단한 조작에 대해 설명하고자 합니다. 영어버전이나 일어버전 모두 다운받으시면 압축파일 안에 pdf로 사용설명서가 들어있으니까요, 일본어 가능하신분들은 일본어버전 다운받으셔서 사용설명서 확인해보셔도 문제없으실 것 같습니다.

구글에 검색해보니 조금 오래된 자료들 중에서는 Windows의 언어설정을 일본어로 바꾼 후에 재부팅하라고는 기재하신 분들의 자료가 있었는데요, 저는 일본어 정발버전의 Windows10에서 실행해서 그런지 별 문제가 없이 잘 돌아가고 있습니다.

Excel file 다운로드

설치는 아래 링크에서 zip파일을 받으실 수 있습니다. 적당한 위치에 압축 풀기를 해주세요.

내부에는 사용설명서를 비롯한 엑셀파일과, 일본어 버전의 경우 cit.jar가 포함되어 있습니다. 기본적으로 cit.jar 를 실행하기 위해서는 JAVA가 설치되어 있어야 합니다.

PICT 다운로드

PICT는 별도로 다운로드하셔야 합니다.
https://github.com/microsoft/pict/releases/download/release/pict.exe
여기서 다운로드한 것을, 아래와 같은 디렉토리 트리에 옮겨주세요. (PICT 폴더를 만드셔야합니다.)
C:\Program Files (x86)\PICT\

Excel 버전 확인

본 툴은 Excel파일인만큼, Excel의 버전도 중요합니다. Excel은 일단 2007 이상 버전이면 문제없이 동작할 것 입니다.
일본어 버전의 경우, 64비트의 Excel을 사용하신다면, PictMaster64.xlsm 을 사용하시면 됩니다.


Getting started


처음에 실행시키면 이렇게 나옵니다. 뭔가 좀 허접해보이기까지도 합니다...

상단에 이 부분은, User manual에 따르면, 사용자가 임의로 사용하라고 만들어놓은 부분이라고 합니다.


다음은 아래부분입니다. Parameter와 Level값들입니다. Parameter 50개, Level은 한 parameter당 50개까지 작성할 수 있습니다.
각 아이템별로 스페이스는 사용할 수 없고, 콤마(,) 로 구분합니다.

기본적인 간단한 실행


일단 이렇게 넣고, 상단에 Build 버튼을 누르면, a.xls 파일이 열리면서 결과가 표시됩니다.

결과물의 정렬

실행 후, 상단의 Edit를 눌러주세요.

그럼 이렇게 간단하게 정렬순서를 3개의 parameter까지 지정해줄 수 있고,
Excel인만큼 경계선이나 행번호, 열너비 조정등의 간단한 기능이 있습니다.

좀 더 보기 깔끔하게 정렬되었습니다.

환경설정

상단의 Settings 를 눌러주세요.

저도 모든 기능을 사용하는것은 아니라서.. 간단히 쓰는 메뉴만 소개하겠습니다.

  • Enable auto edit : 조합가지수를 생성하기 전에, 해당 체크박스를 선택한 후, 실행하면 자동으로 결과물이 정렬됩니다.
  • Use constraints table : 나중에 소개해드릴 제약표를 사용하고자한다면, 위 옵션을 체크합니다.
  • Use Expected results table : 나중에 소개해드릴 결과표를 사용하고자한다면, 위 옵션을 체크합니다.
  • Number of combined parameters : n-way하게 지정하고 싶을 때 사용합니다. 페어와이즈는 기본적으로 2개의 임의의 파라미터를 Pair-wise하게 작성하는 것인데요, 여기서 파라미터값을 3개로 변경한다면, 3-way에 대해 작성하게 됩니다. 그만큼 테스트케이스가 늘어나게됩니다.
  • Show statistical information : 체크를 하고 build를 실행하면, 통계데이터를 보여줍니다. 몇개의 테스트케이스를 얼마만의 시간안에 만들어냈는지를 보여줍니다.
  • Show coverage : Show statistical information를 선택하면 활성화됩니다. 통계데이터에, 파라미터간의 coverage는 어느정도인지를 보여줍니다.
  • Show model file : 사용자가 입력한 값 및 제약조건들을, PICT에 입력할 때, PICT에서 읽어들이는 형태로 만들어 a.txt 파일로 생성합니다. 실제로 CLI환경에서 실행하고자 할때는 어떻게해야하는지, 이 model파일을 뜯어보고 이해하면 좋을 것 같습니다.
  • Generate with specified coverage : 3-way에서 특정 커버리지를 충족하기 위한 테스트케이스가 필요할 때 씁니다. 지정한 커버리지 퍼센트에 가장 근접한 값을, 지정한 반복값(Number of repetitions)동안 실행해서 찾아냅니다.

    위 예시의 경우 8번 반복실행하는 동안 3개의 파라미터의 커버리지를 최대한 충족(80%를 설정하고 실행결과, 77.8%)하는 테스트케이스의 갯수를 28개를 찾아내었네요.

이외에도 일본어버전에는 직교법 생성조건과, 생성엔진을 선택할 수 있는 옵션이 있습니다.

Constraints table, 제약표 생성하기

조건을 짜다보면, 어떠한 조합은 짜면 안되는데~ 하는 조합이 있기 마련입니다. 위에서 제가 생성한 예시로 들자면, 존재하면 안되는(무시할 수 있는 조합)은 아래와 같을 것입니다.

  • Windows10 / Safari
  • macOS / Internet_Explorer
  • chromeOS / Internet_Explorer, Safari

제약표를 생성해줌으로 인해서 특정 조합을 무시할 수 있습니다.

제약표 표시해보기

일단 Settings 에서 Use constraints table 를 선택하고, OK를 눌러 저장해주면, 아래와 같이 테이블이 표시될 것 입니다.

존재하는 파라미터를 읽어서 생성이 되었습니다. 제약조건은 최대 50개까지 지정할 수 있습니다.

제약조건 지정해보기

기본적인 제약조건 설정

이 제약조건이라는 것이 조금은 헷갈릴 수 있는데요, 특정 파라미터를 기준으로 하여서, 이 파라미터에는 이러한 조합만 올 수 있다~ 라고 이해하셔야합니다.

  1. 기준이 되는 파라미터의 값이 기재된 셀의 배경색을, 흰색 혹은 배경색없음 이외의 임의의 색으로 해줍니다.
  2. 해당 파라미터를 기준으로, 해당값과 조합시에 조합이 가능한 목록을 작성합니다.


생셩된 결과입니다. Windows10에는 Safari와의 조합이 기재되어있지 않습니다. (포스트 상단에 보여드린 첫 실행 결과물에는, Windows10-Safari와의 조합이 생성되어 있음을 확인하실 수 있습니다.)

동일 parameter값들 간의 OR 설정

chromeOS에서도 동일하게 Safari를 무시하고 싶기 때문에, 아래와 같이 설정해봅니다.

이렇게 하면 Windows10 OR chromeOS 에서는~~ 이란 조건으로 설정됩니다.

다른 parameter값들 간의 AND 설정

예를들어 Windows10에서 Firefox의 경우, v1.3만 확인하고 싶을 때는 아래와 같이 합니다.

연산자 사용해보기

역제약, #

위에서 설명해드린 것 처럼, 특정 제약조건일 때, 올 수 있는 값들 이 기본입니다만, 거꾸로 특정 제약조건일 때, 올 수 없는 값들 로 지정해줄 수 있습니다. 셀의 내용 앞에 # 을 붙여줍니다.
chromeOS에서는 조합되면 안되는 Internet_Explorer, Safari 를 지정해주고자 한다면, 아래와 같이 지정해줄 수 있습니다.


내용값에 제일 앞에 # 을 붙여주어 역제약 설정을 할 수 있습니다.


실행 결과, chromeOS에는 설정한 Internet Explorer, Safari는 표기되지 않았음을 확인할 수 있습니다.

숫자의 대소 구분, 「<」「>」

숫자의 크고 작음을 구분할 수 있습니다.
예를 들어 chromeOS 의 경우, 1.3 version 이상만 된다는 제약을 걸고 싶은 경우에는 아래와 같이 합니다.

chromeOS의 경우, 1.4 version만 조합된 것을 확인할 수 있습니다.

와일드 카드, *

비슷한 단어들끼리 묶어서 생성하고 싶을때는, 와일드 카드를 사용합니다.
중복되는 단어를 제외하고는 애스터리스크(*) 를 사용해줍니다.
예를 들어 이름에 OS가 들어간 OS들은 전부 1.4 version 이상만 조합한다 라는 제약을 걸고 싶은 경우에는 아래와 같이 합니다.

chromeOSmacOS1.4 version만 조합이 된 것을 알 수 있습니다.


이 외에도 다양한 연산자들을 사용할 수 있습니다. 좀 더 자세한 것은 zip파일 안에 같이 첨부되어있는 매뉴얼을 참고해주시면 좋겠습니다.

Expected result table, 결과표 작성하기

테스트케이스의 조합에 따라, 테스트결과가 크게 바뀌는 경우가 있습니다. 테스트 케이스의 수가 많은 경우에는, 기대하는 결과값(결과내용) 을 기입하는대에도 상당한 시간이 걸립니다. 결과표를 사용하여 이러한 번거로움을 줄일 수 있을 것 입니다.

결과표 표시해보기

Settings에서 Use expected results table 을 클릭하여, 표를 출력해봅시다.

그러면 하단에 이렇게 출력이 됩니다.

기본적으로 15개의 기대결과를 입력할 수 있고, 최대 50개의 기대결과까지 입력할 수 있습니다. 디폴트값의 기대결과행이 모자르다면, 하단에 숨겨진 셀을 비표시 해제하여 확인하시면 됩니다.

결과표 지정해보기

기본적인 입력방법

특정 parameter간의 조합 시에 어떠한 결과가 기대되는지, 기대결과값을 Result에 기재합니다.
예를 들어 아래와 같은 조건들을 넣어보고자 합니다.

  • chromeOS이거나 Windows10 이면서 브라우저가 Safari 인 경우에는 N/A(해당사항 없음) 으로 표기
  • Windows10 이면서, version이 1.2인 경우에는 Fail(실패) 로 표기
  • 그 외는 Pass(성공) 으로 표기

위와 같이 입력 후 Build를 실행하게 되면

위와 같은 결과가 나오게됩니다. Pairwise하게 결과를 조합하되, 조합 중에 결과표에 지정한 내용이 매칭된다면, 추가로 결과도 출력해줍니다. 결과표에 기재할때도 제약조건을 지정할 때 처럼 연산자나 특수기호 등을 이용하여 기재가 가능합니다.
이 결과표 기능을 사용한다면, 테스트케이스 작성도 좀 더 손쉽게 진행할 수 있을 것입니다.

결과표에 결과 추가법

예를들어, chromeOS 이면서, 동시에 Version이 1.4일 때 결과값에 Pass와 함께 A값을 추가하고 싶다면 어떻게 해야할까요? (최종 표시되는 결과값은 Pass / A를 표기하고자 할 때)

특정 조건이 만족된다면, 앰퍼샌드 & 로 연결되어서 사용할 수도 있습니다.


이렇게 CLI을 사용하기 쉽도록 해준 Excel tool 알아보았습니다. 테스트 조건의 조합을 구성할 때, 사람이 직접 하면 진짜 머리복잡해지기 쉽고, 누락되기 마련인데, 이러한 tool을 이용하면 효율적으로 테스트케이스를 작성할 수 있습니다.

단, 모든 수의 패턴은 망라하지 않는 만큼, 그만큼의 Risk 또한 내재되어있다는 점을 명심하시면 좋겠습니다.

※추가로, 가능하다면, 일본어버전을 사용하시는 것을 추천합니다. 영어버전은 버전이 오래되어서 구동이 안되는 환경이 있을 수 있는데요, (특히 visualBasic 실행 시) 일본어 버전은 꽤나 최근에도 업데이트가 되어서많은 부분에서 안심할 수 있다고 생각합니다.

Ref

profile
QA Engineer

0개의 댓글