ALLPAIRS
설치본 다운로드
설치 가이드
폴더에 압축해제하기만 하면 끝이다.
올페어즈는 각각의 파라매터 셋의 개별 값이 최소한 한번 이상 쌍의 조합이 되는 합리적인 테스트 케이스 셋을 만드는 펄 스크립트이다. 솔직히 내가 말하는게 정확하게 맞는 건지 모르지만, 한번 얘기해보도록 하겠다. 만일 테스트 셋에서 포함해야 한 2개의 파라메터 즉, 프린터와 운영 체제를 예로 들면 다음과 같이 구성될 수 있을 것이다.
운영체제
Win98
Win2K
WinXP
프린터
HP 4050
HP 4100
모든 쌍의 조합을 테스트 하려면 테스트 케이스는 다음과 같을 것이다.
CASE |
OS |
Printer |
1 |
Win98 |
HP 4050 |
2 |
Win98 |
HP 4100 |
3 |
Win2K |
HP 4050 |
4 |
Win2K |
HP 4100 |
5 |
WinXP |
HP 4050 |
6 |
WinXP |
HP 4100 |
두 매개변수의 경우에서 모든 쌍은 모드 가능한 조합을 의미한다. 하지만 세번째 매개변수를 추가했을 때는 무슨 일이 발생하는지 보자.
듀플렉스 프린트
Y
N
CASE |
OS |
Printer |
Duplex |
1 |
Win98 |
HP 4050 |
Y |
2 |
Win98 |
HP 4100 |
Y |
3 |
Win2K |
HP 4050 |
Y |
4 |
Win2K |
HP 4100 |
Y |
5 |
WinXP |
HP 4050 |
Y |
6 |
WinXP |
HP 4100 |
Y |
7 |
Win98 |
HP 4050 |
N |
8 |
Win98 |
HP 4100 |
N |
9 |
Win2K |
HP 4050 |
N |
10 |
Win2K |
HP 4100 |
N |
11 |
WinXP |
HP 4050 |
N |
12 |
WinXP |
HP 4100 |
N |
저 매개변수들의 각각의 경우에 대한 모든 조합은 12개의 테스트 케이스를 생성하게된다. 하지만 우리에게 진정으로 필요로 한 것이 최소한 하나의 케이스에 각 파라메터의 한 개의 조합을 보장하는 테스트 케이스라면? 그러면 더 적은 테스트 케이스를 얻을 수가 있을 것이다. 아래를 보면 6개가 도출된다.
CASE |
OS |
Printer |
Duplex |
1 |
Win98 |
HP 4050 |
Y |
2 |
Win98 |
HP 4100 |
N |
3 |
Win2K |
HP 4050 |
N |
4 |
Win2K |
HP 4100 |
Y |
5 |
WinXP |
HP 4050 |
Y |
6 |
WinXP |
HP 4100 |
N |
세 파라메터 중 어느 하나의 값이 다른 하나 혹은 둘의 값과 한 쌍이 되었을 때, 버그가 발생한다면 이 테스트 케이스로 발견할 수 있을 것이다. 만일 세 개의 특정한 값이 조합되었을 때만 버그가 발생한다면, 이 조합의 케이스로는 발견할 수 없을 것이다. 하지만 적어도 모든 쌍에 대해서는 수행하게 된다.
올페어 커버리지는 모든 조합보다 수행하기 훨씬 수월하다. 예를 들면 26개 값을 가진 10개의 매개변수를 테스트 한다면, 모든 조합은 141,167,095,653,376 개의 테스트 케이스가 필요하게 될 것이다. 올페어는 1094 개가 필요할 뿐이다.
Allpairs 를 사용하려면 탭으로 구분된 매개변수의 테이블을 준비해야 한다. 가장 쉬운 방법은 엑셀을 사용하는 것이다.
Operating System |
Printer |
Duplex |
Win98 |
HP 4050 |
Y |
Win2K |
HP 4100 |
N |
WinXP |
|
|
그리고 나서 엑셀 테이블을 복사하여 텍스트 파일에 붙여넣기 하라. 그리고 다음과 같이 DOS 커맨드 라인에서 Allpairs 프로그램을 실행해라.
ALLPAIRS VARS.TXT > TESTCASES.TXT
PERL ALLPAIRS.PL VARS.TXT > TESTCASES.TXT
결과물의 첫번재 부분이 테스트 케이스이다. "pairings" 컬럼은 Allpairs 가 발견한 유일한 쌍의 갯수를 알려준다.
결과물의 두번째 부분은 어떻게 쌍의 조합이 이뤄졌는지를 알 수 있게 해준다. 각각의 쌍을 나열하고, 테스트 케이스 테이블 내에 그 쌍이 몇 번이나 나타나는지를 보여준다. 그리고 그런 쌍이 발생하는 특정 테스트 케이스 혹은 케이스들을 나열한다.
때때로 모든 조합의 쌍이 이미 수행되었기 때문에 테스트 케이스 테이블의 특정 셀의 값은 의미가 없다. 이런 경우에 선택된 값이 그 테스트 케이스의 다른 셀들에 비해 상대적으로 가장 적은 수만큼 쌍이 된 것이다. 또한 그 셀은 Allpairs 가 선택한 값을 다른 값으로 대체할 수 있으며 all-pairs 커버리지 목표를 여전히 달성하고 있음을 알려줄 수 있도록 "~" 기호로 표기된다.
예제
zip 파일에 포함된 마이크로소프트 워드 파일에 실제 테스트 예제가 포함되어 있다. Printing.txt 는 데이터 파일, The Printing.xls 에는 결과가 담겨있다.(좀 더 읽기 편하도록 일부 수정하였다.)
조언
테스트 설계
매개변수를 치환할 때, 매개변수를 더 많이 선택할 수록, 각 테스트 케이스를 위해 해야 할 일이 더 많아진다. 그렇기 때문에 적당하게 서로 연관이 있는 매개변수를 선정하는 것이 좋다. 게다가 버그 발생의 중요성에 대해 고민해야 한다. 만일 애매한 2개의 매개변수의 두 값이 동시에 사용되었을 때만 문제가 발생한다면, 결과는 아무도 수정하려고 하지 않을 버그가 될 것이다.
값이 "중요하지 않음"(~) 이라면 실패 가능성을 최대화 하거나 발생시 실패 영향력을 최대로 하는 값을 선택하라.
다른 도구들
내 도구는 최적화된 해결책을 제시하지는 못한다. 하지만 스스로 최적화 된 해결책을 찾는데 있어 신경을 끄는데 충분한 정도는 된다. 10개의 값을 가진 10개의 매개변수로 이뤄진 테스트 케이스를 고려하자. allpairs 는 177개의 조합을 찾을 것이다. 가장 적은 숫자의 가능한 테스트 케이스는 100~177 개 사이가 될 것이다. 나는 대략 130 개 이하가 될 것으라 예상한다. 하지만 모든 순열을 수행하기 위한 10억개의 테스트 케이스와 비교햇을 때 177개 정도는 나쁘지 않은 수준이다.
Telcordia Technologies (<http://www.argreenhouse.com>) 에서 Allpairs 보다 더 좋은 웹 기반 툴을 제공한다. 예를 들어 3개의 값을 지닌 40개의 매개변수로 그 툴은 21개의 테스트 케이스로 모든 쌍을 커버할 수 있다. Allpairs 는 29를 필요로 한다. 하지만 그 툴은 자그마치 $6000 의 비용을 필요로 한다. 무료 버전과 한번 비교해보면...
'IT와 생활' 카테고리의 다른 글
WACK (Windows App Certification Kit) for Windows 8 (0) | 2012.10.22 |
---|---|
MySQL 데이터베이스 크기 확인 방법 (0) | 2010.12.20 |
KVM-over-IP 구매 가이드 (0) | 2010.11.10 |
라리탄 Dominion KX2 KVM 사용자 가이드 (0) | 2010.11.09 |
Import Export Tool for QC를 사용한 TCL 엑셀 출력하기 (0) | 2010.07.07 |
WRITTEN BY