상태전이테스트
태그 :
- 개념
- - 테스트 대상 시스템이나 객체의 상태를 구분하고, 이벤트에 의해 어느 한 상태에서 다른 상태로 전이되는 경우의 수를 테스트 케이스로 구성하는 테스트 설계기법 - 주어진 명세(일반적으로 모델의 형태)를 바탕으로 테스트 케이스(Test Case)를 도출하는 명세기반 테스트 설계기법의 한 종류
I. 시스템 상태 및 그 변화에 따른 측면을 고려한 상태전이 테스팅의 개요
가. 상태전이 테스팅(State Transition Testing)의 정의
- 테스트 대상 시스템이나 객체의 상태를 구분하고, 이벤트에 의해 어느 한 상태에서 다른 상태로 전이되는 경우의 수를 테스트 케이스로 구성하는 테스트 설계기법
- 주어진 명세(일반적으로 모델의 형태)를 바탕으로 테스트 케이스(Test Case)를 도출하는 명세기반 테스트 설계기법의 한 종류
나. 상태전이 테스팅을 통한 테스트 설계 방식
- 전형적인 상태의 순서를 커버하는 방식
- 모든 상태를 커버하는 방식
- 모든 상태 전이를 실행하는 방식
- 특정한 상태 전이 순서를 실행하는 방식
- 불가능한 상태 전이를 테스트하는 방식
II. 상태다이어그램 표기법 및 상태전이 테스팅 단계
가. 상태다이어그램 표기법
구분 |
설 명 |
표기법 |
상태 |
|
|
전이 |
|
|
이벤트 |
|
|
가드 |
|
|
액션 |
|
|
나. 상태전이 테스팅 설계 프로세스
단 계 |
설 명 |
상태-이벤트 테이블 구성 |
|
전이 트리 구성 |
|
반응(유효) Test Case 구성(0-switch) |
|
무반응(비유효) Test Case 구성 |
|
가드 또는 조건 Test Case 구성 |
|
테스트 프로시저 구성 |
|
다. 상태전이 테스팅 설계 프로세스 예시
- 예시
가. 상태전이 다이어그램
- 음료자판기 시스템의 상태전이 다이어그램
나. 상태-이벤트 테이블
상태 이벤트 |
대기 |
금액투입 |
음료선택 |
ev 금액투입[투입금액>=가격] |
음료 선택 |
음료 선택 |
|
ev 금액투입[투입금액<가격] |
금액 투입 |
금액 투입 |
|
Ev 음료버튼 선택 |
|
|
대기 |
Ev 취소 |
|
대기 |
대기 |
- 참고
예) 자판기를 시험한다고 가정할 때 테스터에게 500원과 다른 가격의 메뉴가 3개 있다고 가정(100원,200원,300원)
답변) 자판기 500원 대기모드(상태) – 테스터 500원 투입 (결정테이블) – 사용자 선택 중 (상태) – 사용자 선택 100원짜리 (결정테이블) – 자판기 100원짜리 음료 보냄(상태전이) – 100원짜리 음료 다 떨어졌다. (상태전이)
상태전이) 돈을 넣는다.
- è 금액이 표시된다 è 반환을 누른다 è 돈이 나온다.
- è 금액이 표시된다 è 음료가 나온다 è 잔액이 표시된다 è 반환을 누른다 è 돈이 나온다
처음과 끝은 같은데 중간의 내용은 다르게 반복 또는 분기