정의 및 원리


테스트 아이템의 상태 모델 사용
상태 간의 전이, 이벤트 등을 테스트
유효(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 
    • 상태-이벤트 테이블 작성

 

모드변경
(CM)

초기화
(R)

시간설정
(TS)

날짜설정
(DS)

시간표시
(S1)

S2/날짜표시
(TCOND1)

S3/시간변경
(TCOND2)

 

 

날짜표시
(S2)

S1/시간표시
(TCOND4)

S4/날짜변경
(TCOND5)

 

 

시간변경
(S3)

 

 

S1/시간표시
(TCOND3)

 

날짜변경
(S4)

 

 

 

S4/날짜표시
(TCOND6)

 

  • 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 

 

모드변경
(CM)

초기화
(R)

시간설정
(TS)

날짜설정
(DS)

시간표시
(S1)

S2/날짜표시
(TCOND1)

S3/시간변경
(TCOND2)

(TCOND11)

(TCOND14)

날짜표시
(S2)

S1/시간표시
(TCOND4)

S4/날짜변경
(TCOND5)

(TCOND12)

(TCOND15)

시간변경
(S3)

(TCOND7)

(TCOND9)

S1/시간표시
(TCOND3)

(TCOND16)

날짜변경
(S4)

(TCOND8)

(TCOND10)

(TCOND13)

S4/날짜표시
(TCOND6)

 

  • 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 

 

  • 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
유효하지 않은 상태(도달 불가능한)


성공적인 상태 전이 테스팅의 실행은 상태 다이어그램 작성 시 시스템의 상태를 성공적으로 식별하는 것에 의존함

 


 

블로그 이미지

정신차려이각박한세상속에서

,