상태 전이 모델 테스트 생성기
상태, 이벤트, 시작 상태와 전이를 JSON으로 정의하면 구조적 도달성, 빠진 상태·이벤트 쌍, guard 선택이 필요한 분기를 검사합니다. 시작 상태에서 도달 가능한 각 전이까지의 최단 경로를 테스트 아이디어로 생성합니다. guard는 실행되는 조건식이 아니라 이름표입니다.
주요 기능
- 상태·이벤트 이름, 참조, 중복 분기와 크기 제한 검증
- 도달 가능/불가 상태와 전이 번호 계산
- 누락된 상태·이벤트 쌍과 guard 선택이 필요한 분기 표시
- 도달 가능한 전이마다 최단 구조적 테스트 시퀀스와 예상 상태 경로 생성
- 이벤트·guard 시퀀스를 모델에 대조하고 분석 JSON 다운로드
사용 방법
- 예제를 불러오거나 states, events, initial, transitions를 담은 JSON 모델을 붙여 넣습니다.
- 구조적 도달성과 누락/모호한 상태·이벤트 쌍을 확인합니다.
- 전이별 테스트 시퀀스와 예상 상태 경로를 봅니다.
- 이벤트 시퀀스 JSON을 입력하고 필요한 guard 라벨을 지정해 모델에서 실행합니다.
- 결과를 확인한 뒤 분석 보고서와 테스트 사례를 내려받습니다.
활용 예시
- 양식이나 업무 흐름의 전이 커버리지 사례 작성
- 선언한 UI 흐름에서 도달할 수 없는 상태 찾기
- 구현 전에 빠진 이벤트 처리와 모호한 guard 분기 검토
자주 묻는 질문
guard 조건식이 실행되나요?
아니요. guard는 해석하지 않는 이름표입니다. 도달성과 생성 경로는 해당 guard를 만족시킬 수 있다고 가정한 구조적 결과이므로 실제 실행 가능성을 증명하지 않습니다. 시뮬레이션에는 필요한 guard 라벨을 정확히 적어야 합니다.
여기서 전이 커버리지란 무엇인가요?
시작 상태에서 각 도달 가능 전이의 출발 상태까지 가는 최단 구조 경로에 목표 전이를 덧붙여 사례 하나씩 만듭니다. 전체 테스트 묶음을 최소화하거나 실제 앱을 실행하지는 않습니다.
누락된 전이는 어떻게 정하나요?
선언된 모든 상태·이벤트 쌍 중 전이가 하나도 없는 경우를 표시합니다. 도달 불가 상태도 포함되며, 의도적으로 부분 전이만 정의했다면 오류가 아닐 수 있습니다.
모호한 분기는 어떻게 처리하나요?
같은 상태·이벤트에 서로 다른 guard 라벨 전이가 여러 개면 표시합니다. 수동 시뮬레이션에서는 guard를 지정해야 합니다. 실제 guard 조건이 서로 겹치는지는 판단하지 않습니다.
모델에 순환이 있어도 되나요?
네. 순환과 자기 전이는 허용됩니다. 너비 우선 탐색으로 각 도달 상태까지 가장 짧은 구조 경로만 보존해 무한 반복을 피합니다.
입력과 크기 제한은 무엇인가요?
JSON의 states/events 배열, initial 상태, from/event/선택 guard/to 전이를 사용합니다. 이름은 짧은 식별자입니다. 모델은 128KiB·상태40개·이벤트20개·전이400개, 수동 시퀀스는200단계까지입니다.
개인정보 안내
모델과 시퀀스는 브라우저 메모리에서만 처리하며 실제 애플리케이션에 접속하지 않습니다. 내려받는 JSON에는 상태·이벤트 이름이 포함되므로 공유 전에 확인하세요.
댓글과 질문