자 오늘도 어김없이 계획을 세우고 테스트를 진행해보자.
교육을 마치고 필드에 나와 느끼는 일반적인 QA들의 기본적인 생각은 배의 배가 되는 테스트 대상의 복잡성일 것이다. 또한 테스트경우의 수는 가히 기하학적이다.
“ 내가 너에게 오늘 백만원을 주겠다. 조건이 있다 첫날은 1원을 나에게 둘째 날은 첫날의 두배를 셋째 날은 둘째 날의 두 배의 돈을 주는 식으로 1달간 준다면 난 당장 너에게 100만원을 주겠다. “
컴퓨터 관련 공부를 한사람이면 2의 10승 == 1024라는건 기본이다. 어림짐작해서 1달이면 100만 원이 안될꺼 같은데 .. “ OK “
이 100만원을 받는 다면 당신은 한달(31일)뒤에 약 10억7천2백만원의 손해를 보게 된다. 설마 10억이었을 줄이야~!
위에 이야기를 한 이유는 바로 요소가 많아지면 많아 질수록 수의 증가가 엄청나진다는 것이다.
( 현재 위 이야기가 은근히 관련없음을 느낀다…….. 하지만 잘 생각해보면 관련이 없진 않다.ㅜㅜ)
두 배의 위력이 이 정도인데 요소 요소가 가질 수 있는 값이 2개 이상일 경우 경우의 수는 엄청나게 늘어난다.
여기 많은 수의 조합에 관련된 테스트케이스가 나올 “테스트”노다지가 있다.
자! 당신이라면 어떻게 테스트를 시작 하겠는가? 맞다 바로 그거다!
“ 일단 다하지는 않는다 ^^; “
모두 하지 않으려면 상당히 머리를 써야 한다. 머리 잘 쓰면 몸이 상당히 편하다.
그럼 PairWise 조합테스팅 기법을 이용해보자
가상의 예를 들어 보면 이렇다
5개의 파라미터가 있고 각 파라미터가 가질 수 있는 값은 각 각 10가지일 경우
10만 가지의 테스트 케이스가 생긴다. 혹시나 더 다양한 값을 가지게 되면 엄청난 케이스가 만들어 진다. 테스트를 다하지 못 하는건 물론이겠거니와 TC작성 자체에 소비되는 시간도 엄청날 것 이다.
아래의 상황이 주어 졌다고 하자 ( 아래정보는 단순입력 값 이라 생각하자 )
( OS) ( WAS ) ( INTERMAX.ver)
XP Jeus4 sp1
Win2003 jeus5 sp2
Winpro jeus6 sp3
Vista weblogic6 sp4
Sun weblogic7 sp5
hp weblogic8 sp6
linux websphere sp7
7*7*7 = 343 총 343가지의 테스트가 이루어져야 한다
모두 할 수 있다면 더 할 나위 없이 좋겠지만 할 수 없다면 의미를 부여한 TC를 작성하자
PairWise방법은 대부분의 결함이 2개 요소의 상호작용에 기인한다는 것에 착안하여 2개 요소의 모든 조합을 다루는 것이다.
즉 페어와이즈 조합의 의미는 테스트를 하는데 필요한 각 값들이 다른 파라미터의 값과 최소한 한번씩은 조합을 이룬다는 것이다.
위의 정보로 작성한 PairWise조합은 다음과 같다
1 |
XP |
Jeus4 |
sp1 |
3 |
2 |
XP |
jeus5 |
sp2 |
3 |
3 |
XP |
jeus6 |
sp3 |
3 |
4 |
XP |
weblogic6 |
sp4 |
3 |
5 |
XP |
weblogic7 |
sp5 |
3 |
6 |
XP |
weblogic8 |
sp6 |
3 |
7 |
XP |
Websphere |
sp7 |
3 |
8 |
Win2003 |
Jeus4 |
sp2 |
3 |
9 |
Win2003 |
jeus5 |
sp1 |
3 |
10 |
Win2003 |
jeus6 |
sp4 |
3 |
11 |
Win2003 |
weblogic6 |
sp3 |
3 |
12 |
Win2003 |
weblogic7 |
sp6 |
3 |
13 |
Win2003 |
weblogic8 |
sp5 |
3 |
14 |
Win2003 |
Websphere |
sp1 |
2 |
15 |
Winpro |
Jeus4 |
sp3 |
3 |
16 |
Winpro |
jeus5 |
sp4 |
3 |
17 |
Winpro |
jeus6 |
sp1 |
3 |
18 |
Winpro |
weblogic6 |
sp2 |
3 |
19 |
Winpro |
weblogic7 |
sp7 |
3 |
20 |
Winpro |
weblogic8 |
sp1 |
2 |
21 |
Winpro |
Websphere |
sp5 |
3 |
22 |
Vista |
Jeus4 |
sp4 |
3 |
23 |
Vista |
jeus5 |
sp3 |
3 |
24 |
Vista |
jeus6 |
sp2 |
3 |
25 |
Vista |
weblogic6 |
sp1 |
3 |
26 |
Vista |
weblogic7 |
sp1 |
2 |
27 |
Vista |
weblogic8 |
sp7 |
3 |
28 |
Vista |
Websphere |
sp6 |
3 |
29 |
Sun |
Jeus4 |
sp5 |
3 |
30 |
Sun |
jeus5 |
sp6 |
3 |
31 |
Sun |
jeus6 |
sp7 |
3 |
32 |
Sun |
weblogic6 |
sp1 |
2 |
33 |
Sun |
weblogic7 |
sp2 |
3 |
34 |
Sun |
weblogic8 |
sp3 |
3 |
35 |
Sun |
Websphere |
sp4 |
3 |
36 |
hp |
Jeus4 |
sp6 |
3 |
37 |
hp |
jeus5 |
sp5 |
3 |
38 |
hp |
jeus6 |
sp1 |
2 |
39 |
hp |
weblogic6 |
sp7 |
3 |
40 |
hp |
weblogic7 |
sp3 |
3 |
41 |
hp |
weblogic8 |
sp2 |
3 |
42 |
hp |
Websphere |
sp2 |
2 |
43 |
linux |
Jeus4 |
sp7 |
3 |
44 |
linux |
jeus5 |
sp1 |
2 |
45 |
linux |
jeus6 |
sp5 |
3 |
46 |
linux |
weblogic6 |
sp6 |
3 |
47 |
linux |
weblogic7 |
sp4 |
3 |
48 |
linux |
weblogic8 |
sp2 |
2 |
49 |
linux |
Websphere |
sp3 |
3 |
50 |
Win2003 |
jeus5 |
sp7 |
2 |
51 |
Winpro |
jeus6 |
sp6 |
2 |
52 |
Vista |
weblogic6 |
sp5 |
2 |
53 |
hp |
weblogic8 |
sp4 |
2 |
343의 테스트케이스를 53개로 줄였다
약 85%정도의 테스트케이스를 줄일 수 있다.
누군가는 이렇게 말할 수 있다.
“ 343의 테스트케이스를 53개로 줄인 것이 뭐 어떻다는 것이냐!
나머지 부분에 대한 보장은 어떻게 할 것이냐!”
앞에서 말한봐와 같이 페어와이즈 조합테스팅은 모든 조합을 고려해 테스팅했을 때 발견할 수 있는 결함을 모두 발견 할 수 있는 것은 아니다 그러나 페어와이즈 조합 테스팅 기법을 사용하여 테스팅한 결과에 결함이 없다는 것까지는 보장성을 제공해준다.
위의 테스트케이스는 어디까지나 보장성의 한계를 설정하고 테스트를 좀더 효율적으로 하는데 목적이 있다.
특정 모듈에 대한 테스트에 한가지 기법만을 적용하지는 않는다. 위와 같은 보장한계를 명확히 할 수 있는 많은 기법들의 상호보완되는 점을 알고 테스트기법을 적용하고 테스트를 시행해서 주적 버그를 잡는 것이다.
'엑셈 기업문화 > 엑셈 사람들' 카테고리의 다른 글
[정동기]모든것은 적재적소가 있다 (0) | 2008.09.26 |
---|---|
[이동하]처음이라는 단어가 주는 의미 (0) | 2008.09.18 |
[이명진]교육의 효과가 나타나다 - Online index rebuild (1) | 2008.08.29 |
[오우경]Wiki와 Oracle Reference를 애용합시다!! (1) | 2008.08.22 |
[김종민]다시 한번 돌아보자, 뮤텍스 (1) | 2008.08.11 |
댓글