안녕하세요! QA여행 ( https://qajourney.tistory.com/ ) 입니다.
챌린지 17일차, 이론을 실전으로 만드는 즐거운 실습 시간입니다.
어제 우리는 시스템의 '상태' 변화를 따라가며 테스트하는 상태 전이 테스팅에 대해 배웠습니다.
오늘은 이 기술을 우리에게 가장 친숙한 서비스, 바로 '배달 앱의 주문 프로세스' 에 적용해 보겠습니다.
'주문 접수'부터 '배달 완료'까지, 눈에 보이지 않는 시스템의 상태가 어떻게 변하는지,
그리고 우리는 그 과정에서 무엇을 테스트해야 하는지 함께 따라가 보시죠.
시나리오 : 배달 앱의 주문 상태 변화를 추적하라!
우리가 테스트할 배달 앱의 주문 상태는 다음과 같이 변화합니다.
[주문 프로세스 명세]
- 고객이 주문을 완료하면, 주문은 '주문 대기' 상태가 된다.
- 가게에서 주문을 수락하면, '조리 중' 상태로 변경된다.
- 가게에서 조리를 마치고 배달을 요청하면, '배달 대기' 상태가 된다.
- 라이더가 음식을 픽업하면, '배달 중' 상태로 변경된다.
- 라이더가 배달을 완료하면, '배달 완료' 상태가 된다.
- 고객은 가게가 주문을 수락하기 전('주문 대기' 상태)에만 '주문 취소' 를 할 수 있다.
자, 이 프로세스를 상태 전이 다이어그램으로 그려볼까요?
1. 상태 전이 다이어그램 그리기
먼저 시스템이 가질 수 있는 모든 '상태'를 원으로, 상태를 바꾸는 '이벤트(행동)'를 화살표로 표시해 봅시다.
[상태]
- 주문 대기
- 조리 중
- 배달 대기
- 배달 중
- 배달 완료
- 주문 취소
[이벤트/행동]
- 고객이 주문을 완료함
- 가게가 주문을 수락함
- 가게가 조리를 완료함
- 라이더가 음식을 픽업함
- 라이더가 배달을 완료 처리함
- 고객이 주문을 취소함
2. 다이어그램에서 테스트 케이스 뽑아내기
이제 이 다이어그램을 보면서 테스트 케이스를 만들어 봅시다.
우리는 이 '지도'를 보며 모든 길(화살표)을 한 번씩 지나가 보고, 길이 없는 곳으로는 갈 수 없는지 확인해야 합니다.
유효한 상태 전이 테스트 (Happy Path)
- TC-STATE-01: '주문 대기' 상태에서 '가게 수락' 이벤트가 발생하면, 주문 상태가 '조리 중'으로 정상 변경되는지 확인한다.
- TC-STATE-02: '조리 중' 상태에서 '조리 완료' 이벤트가 발생하면, 주문 상태가 '배달 대기'로 정상 변경되는지 확인한다.
- TC-STATE-03: '배달 대기' 상태에서 '라이더 픽업' 이벤트가 발생하면, 주문 상태가 '배달 중'으로 정상 변경되는지 확인한다.
- TC-STATE-04: '배달 중' 상태에서 '배달 완료 처리' 이벤트가 발생하면, 주문 상태가 '배달 완료'로 정상 변경되는지 확인한다.
- TC-STATE-05: '주문 대기' 상태에서 '고객 취소' 이벤트가 발생하면, 주문 상태가 '주문 취소'로 정상 변경되는지 확인한다.
유효하지 않은 상태 전이 테스트 (Negative Path)
이 부분이 중요합니다! 지도에 없는 길로 가려는 시도를 막아야 합니다.
- TC-STATE-06: '조리 중' 상태에서 고객이 '주문 취소'를 시도했을 때, 주문이 취소되지 않고 "이미 조리가 시작되어 취소할 수 없습니다." 와 같은 에러 메시지가 노출되는지 확인한다. (명세 6번 항목 검증)
- TC-STATE-07: '배달 완료' 상태의 주문이 다시 '조리 중' 상태로 돌아가는 경우가 있는지 확인한다.
- TC-STATE-08: '주문 취소' 상태의 주문이 '배달 중' 상태로 변경되는 경우가 있는지 확인한다.
마무리하며
어떠셨나요?
복잡하게만 보였던 배달 앱의 주문 프로세스도, 상태 전이 다이어그램으로 그리고 나니 테스트해야 할 포인트들이 훨씬 명확해졌습니다.
이처럼 시스템의 상태가 시간이나 이벤트에 따라 변하는 모든 기능(회원 가입/탈퇴 프로세스, 게시물의 공개/비공개 상태 등)은
상태 전이 테스팅을 적용하기에 아주 좋은 대상입니다.
이 기법은 단순히 "버튼이 눌린다"를 넘어,
"올바른 '때'에, 올바른 '일'이 일어나는가?" 를 검증하는,
한 차원 높은 수준의 테스트를 가능하게 합니다.
오늘도 실습에 열심히 참여해주신 여러분, 정말 고생 많으셨습니다.
내일 18일차에는 3주차를 마무리하는 <회고 및 테스트 케이스 리뷰> 시간을 갖겠습니다.
이번 주에 배운 동등 분할, 경계값 분석, 의사결정 테이블, 상태 전이 테스팅 등 강력한 설계 기법들을 총정리하고,
여러분이 직접 작성한 테스트 케이스를 함께 리뷰해보는 시간을 가질 예정입니다.
그럼 편안한 저녁 보내시고 내일 뵙겠습니다!
'ISTQB 4주 실전' 카테고리의 다른 글
| (4주 1일차) 결함 관리와 리포팅, QA의 '꽃'을 피우다 (19) | 2025.09.08 |
|---|---|
| (3주 6일차) QA의 무기를 장착하다 (3주차 회고) (24) | 2025.09.06 |
| (3주 4일차) 복잡한 로직을 지배하는 기술 (의사결정 테이블 & 상태 전이) (22) | 2025.09.04 |
| (3주 3일차) 실습! 쇼핑몰 장바구니로 정복하는 경계값 분석 (13) | 2025.09.03 |
| (3주 2일차) 무한함을 유한함으로, 현명하게 테스트하는 기술 (동등 분할 & 경계값 분석) (24) | 2025.09.02 |