반응형
QA를 하다 보면
이런 기능을 자주 만나게 돼요.
- 로그인 전 / 로그인 후
- 주문 전 / 결제 중 / 결제 완료 / 취소
- 활성 / 비활성 / 정지 상태
이런 기능들은 공통점이 있어요.
👉 “상태에 따라 가능한 행동이 달라진다”
이럴 때 사용하는 테스트 기법이
바로 상태 전이 테스트(State Transition Testing)예요.
1️⃣ 상태 전이 테스트란 무엇인가?
✔ 상태 전이 테스트 (State Transition Testing)
시스템이 가질 수 있는 상태(State)와
상태 간 이동(Transition)을 기준으로
정상/비정상 흐름을 검증하는 테스트 기법
핵심은 이거예요.
👉 “이 상태에서, 이 행동이 가능한가?”
2️⃣ 왜 상태 전이 테스트가 필요할까?
상태 개념이 있는 기능에서
이런 버그가 자주 발생해요.
- 이미 완료된 주문을 다시 결제할 수 있음
- 로그아웃 상태인데 마이페이지 접근 가능
- 정지된 계정인데 로그인 가능
👉 상태 전이 누락 = 치명적인 버그로 이어질 수 있어요.
3️⃣ 상태 전이 테스트의 기본 요소
상태 전이 테스트는
아래 4가지를 먼저 정리하는 게 핵심이에요.
| 요소 | 설명 |
| 상태(State) | 시스템이 가질 수 있는 상태 |
| 이벤트(Event) | 상태를 변경시키는 행동 |
| 전이(Transition) | 상태 → 상태 이동 |
| 결과(Action) | 화면/동작 변화 |
4️⃣ 간단한 예시로 이해하기 (로그인 기능)
📌 상태 정의
- 로그아웃 상태
- 로그인 상태
📌 이벤트
- 로그인 버튼 클릭
- 로그아웃 버튼 클릭
📋 상태 전이 표
| 현재 상태 | 이벤트 | 다음 상태 | 결과 |
| 로그아웃 | 로그인 성공 | 로그인 | 메인 화면 |
| 로그아웃 | 로그인 실패 | 로그아웃 | 오류 메시지 |
| 로그인 | 로그아웃 | 로그아웃 | 로그인 화면 |
👉 이 표가 바로
상태 전이 테스트의 출발점이에요.
5️⃣ 상태 전이 다이어그램으로 생각해보기
글로만 보면 어려우니까
머릿속으로 이렇게 그려보면 좋아요.
[로그아웃] --로그인 성공--> [로그인] [로그인] --로그아웃--> [로그아웃]
👉 QA는 이 흐름에서
“없는 길이 열려 있진 않은지”를 보는 거예요.
6️⃣ 실무 예시 (주문 상태)
📌 주문 상태
- 주문 생성
- 결제 완료
- 배송 중
- 배송 완료
- 주문 취소
📌 체크 포인트
- 배송 완료 → 취소 가능? ❌
- 결제 전 → 배송 중 가능? ❌
- 결제 완료 → 배송 중 가능? ⭕
👉 불가능한 전이도 반드시 테스트 대상이에요.
7️⃣ 다른 테스트 기법과의 차이
| 기법 | 중점 |
| 동등 분할 | 입력값 범위 |
| 결정 테이블 | 조건 조합 |
| 상태 전이 | 상태 흐름 |
👉 상태 전이는
“흐름 기반 테스트 기법”이라고 보면 돼요.
8️⃣ 신입 QA가 자주 놓치는 포인트
- 정상 흐름만 테스트함 ❌
- 이전 상태를 고려하지 않음 ❌
- 새로고침 / 뒤로가기 누락 ❌
👉 이전 상태를 항상 의식해야
상태 전이 테스트가 제대로 돼요.
9️⃣ QA 실무에서의 활용 팁
- 기획서에 상태 정의가 없으면
→ QA가 먼저 정리해서 질문하기 - 표나 다이어그램으로 공유하면
→ 기획/개발 이해도 상승 - 이슈 설명할 때
→ “상태 전이 오류”라고 말하면 정확함
🔟 정리하며
- 상태 전이 테스트는
상태 변화가 있는 기능 필수 테스트 기법 - 정상 흐름 + 비정상 전이를 함께 봐야 한다
- QA가 이 기법을 잘 쓰면
치명적인 서비스 오류를 미리 막을 수 있다
이걸 이해하면
👉 로그인, 주문, 권한 관련 테스트가 훨씬 쉬워져요.
반응형
'QA 이론 & 테스트 기법' 카테고리의 다른 글
| 🔖 리스크 기반 테스트(Risk-based Testing)란 무엇인가? (QA 실무 정리) (0) | 2026.03.04 |
|---|---|
| 🔖 정적 테스트 vs 동적 테스트 차이 한 번에 이해하기 (QA 이론 정리) (1) | 2026.03.02 |
| 🔖 결정 테이블 테스트(Decision Table Testing) 쉽게 이해하기 (0) | 2026.02.25 |
| 🔖 동등 분할 / 경계값 분석 한 번에 이해하기 (QA 테스트 기법 핵심) (0) | 2026.01.12 |
| 🔖 기능 테스트 vs 비기능 테스트 차이 완벽 정리 (QA 필수 개념) (1) | 2026.01.09 |