정의 및 원리
테스트 아이템의 상태 모델 사용
상태 간의 전이, 이벤트 등을 테스트
유효(Valid) 테스트 케이스, 비 유효(Invalid)테스트 케이스

예제를 통해 알아보겠습니다.
- 시스템 명 : 시각/날짜 설정 가능
- 요구 사항
- 상태 전이 다이어그램

절차
- TD1: 기능 셋 식별
- 시각/날짜 설정 기능
- TD2: Valid 테스트 컨디션 도출
- 상태전이 다이어그램의 전이(Transition)을 테스트 컨디션으로 식별함
- TCOND1 : S1 to S2
- TCOND2 : S1 to S3
- TCOND3 : S3 to S1
- TCOND4 : S2 to S1
- TCOND5 : S2 to S4
- TCOND6 : S4 to S2
- 상태-이벤트 테이블 작성
- 상태전이 다이어그램의 전이(Transition)을 테스트 컨디션으로 식별함
|
모드변경 |
초기화 |
시간설정 |
날짜설정 |
시간표시 |
S2/날짜표시 |
S3/시간변경 |
|
|
날짜표시 |
S1/시간표시 |
S4/날짜변경 |
|
|
시간변경 |
|
|
S1/시간표시 |
|
날짜변경 |
|
|
|
S4/날짜표시 |
- TD2: Invalid 테스트 컨디션 도출
- 상태-이벤트 테이블에서 Invalid 케이스를 테스트 컨디션으로 식별함
- TCOND7 : S3 to S3 CM
- TCOND8 : S4 to S4 CM
- TCOND9 : S3 to S3 R
- TCOND10 : S4 to S4 R
- TCOND11 : S1 to S1 TS
- TCOND12 : S2 to S2 TS
- TCOND13 : S4 to S4 TS
- TCOND14 : S1 to S1 DS
- TCOND15 : S2 to S2 DS
- TCOND16 : S3 to S3 DS
- 상태-이벤트 테이블에서 Invalid 케이스를 테스트 컨디션으로 식별함
|
모드변경 |
초기화 |
시간설정 |
날짜설정 |
시간표시 |
S2/날짜표시 |
S3/시간변경 |
(TCOND11) |
(TCOND14) |
날짜표시 |
S1/시간표시 |
S4/날짜변경 |
(TCOND12) |
(TCOND15) |
시간변경 |
(TCOND7) |
(TCOND9) |
S1/시간표시 |
(TCOND16) |
날짜변경 |
(TCOND8) |
(TCOND10) |
(TCOND13) |
S4/날짜표시 |
- TD3: 테스트 커버리지 아이템 도출(테스트 컨디션과 테스트 커버리지 아이템이 동일함)
- 테스트 컨디션과 테스트 커버리지 아이템이 동일함
- 0-swich
- 유효한(Valid) 테스트 커버리지 아이템 도출
- TCOVER1 : S1 to S2 , 날짜표시 D
- TCOVER2 : S1 to S3 , 시간변경 AT
- TCOVER3 : S3 to S1 , 시간표시 T
- TCOVER4 : S2 to S1 , 시간표시 T
- TCOVER5 : S2 to S4 , 날짜변경 AD
- TCOVER6 : S4 to S2 , 날짜표시 D
- TCOVER7 : S3 to S3 , 모드변경 CM
- 비 유효한(Invalid) 테스트 커버리지 아이템 도출
- TCOVER8 : S4 to S4 , 모드변경 CM
- TCOVER9 : S3 to S3 , 초기화 R
- TCOVER10 : S4 to S4 , 초기화 R
- TCOVER11 : S1 to S1 , 시간설정 TS
- TCOVER12 : S2 to S2 , 시간설정 TS
- TCOVER13 : S4 to S4 , 시간설정 TS
- TCOVER14 : S1 to S1 , 날짜설정 DS
- TCOVER15 : S2 to S2 , 날짜설정 DS
- TCOVER16 : S3 to S3 , 날짜설정 DS
- 유효한(Valid) 테스트 커버리지 아이템 도출
- TD4 : 테스트 케이스 도출
- Valid 테스트 커버리지 아이템을 모두 커버 하기 위한 테스트 케이스
테스트 케이스 |
1 |
2 |
3 |
4 |
5 |
6 |
시작 상태 |
시간표시 |
시간표시 |
시간변경 |
날짜표시 |
날짜표시 |
날짜변경 |
이벤트 |
모드변경 |
초기화 |
시간설정 |
모드변경 |
초기화 |
날짜설정 |
기대 결과 |
날짜표시 |
시간변경 |
시간표시 |
시간표시 |
날짜변경 |
날짜표시 |
전이 상태 |
날짜표시 |
시간변경 |
시간표시 |
시간표시 |
날짜변경 |
날짜표시 |
테스트 커버리지 아이템 |
1 |
2 |
3 |
4 |
5 |
6 |
- Invalid 테스트 커버리지 아이템을 모두 커버 하기 위한 테스트 케이스
테스트 케이스 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
시작 상태 |
시간변경 |
날짜변경 |
시간변경 |
날짜변경 |
시간표시 |
날짜표시 |
날짜변경 |
시간표시 |
날짜표시 |
시간변경 |
이벤트 |
모드변경 |
모드변경 |
초기화 |
초기화 |
시간설정 |
시간설정 |
시간설정 |
날짜설정 |
날짜설정 |
날짜설정 |
기대 결과 |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
전이 상태 |
시간변경 |
날짜변경 |
시간변경 |
날짜변경 |
시간표시 |
날짜표시 |
날짜변경 |
시간표시 |
날짜표시 |
시간변경 |
테스트 커버리지 아이템 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
- TD5: 테스트 셋 구성(목적에 따라 구분)
- TS1 : Valid 전이 테스트 - Test Case 1, 2, 3, 4, 5, 6
- TS2 : Invalid 전이 테스트 - Test Case 7, 8, 9, 10, 11, 12, 13, 14, 15, 16
- TD6 : 테스트 프로시저 도출
- TP1 : Valid 전이 테스트 - TS1과 동일
- TP2 : Invalid 전이 테스트 - TS2와 동일
커버리지 = (커버 된 전이 수 / 전체 전이 수) * 100%
상태 전이 커버리지(Chow's)
Chow의 커버리지 = 중간 상태의 수
0-스위치
중간 상태 없이 한 상태에서 다른 상태로 전이
1-스위치
하나의 중간 상태를 거처 한 상태에서 다른 상태로 전이
ex) S3 to S1 to S2
N-스위치
N개의 중간 상태를 거처 한 상태에서 다른 상태로 전이
[일반적인 결함 ]
잘못 정의된 상태
정의된 상태/컨디션 간의 유효하지 않은 전이
정의된 전이에 대한 유효하지 않은 액션
Dead Status / Black Holes
유효하지 않은 상태(도달 불가능한)
성공적인 상태 전이 테스팅의 실행은 상태 다이어그램 작성 시 시스템의 상태를 성공적으로 식별하는 것에 의존함
'SW_이론 > SW 테스트 설계 향상 교육' 카테고리의 다른 글
시나리오 테스팅(Scenario Testing) (1) | 2019.08.16 |
---|---|
결정테이블 테스팅(Cause-Effect Graph, Decision Table Testing) (0) | 2019.08.16 |
Pairwise Testing 도구 (0) | 2019.08.15 |
조합 테스팅(Combinatorial Testing) (0) | 2019.08.15 |
경계값 분석(Boundary Value Analysis) (3) | 2019.08.14 |