State Transition Tester
Validate state transition tables in real time and auto-generate test scenarios with coverage metrics.
Last updated:
How to Use
Expand how to useCollapse how to use
- 1
Define States and Events
Enter states and events line by line, then set the initial state.
- 2
Describe Transitions
Add transitions with source state, event, optional guard condition, and target state.
- 3
Review Warnings and Test Cases
Check detected issues, verify coverage, and export generated test scenarios.
State Machine Input
Validation, coverage, and test cases are updated in real time as you edit.
Validation Results
Missing Transitions (state + event)
- Idle + approve
- Idle + reject
- Idle + reset
- Submitted + submit
- Submitted + reset
- Approved + submit
- Approved + approve
- Approved + reject
- Rejected + submit
- Rejected + approve
- Rejected + reject
Coverage Metrics
State Coverage
100%
Covered states: 4 / 4
Transition Coverage
31.3%
Covered transitions: 5 / 16
Condition Coverage
100%
Covered condition outcomes: 4 / 4
Generated Test Cases
Total
20
Normal
5
Abnormal
11
Boundary
4
| ID | Type | Precondition | Action | Expected Result | Notes |
|---|---|---|---|---|---|
| TC-001 | Normal | Idle | submit | Transition: Submitted | - |
| TC-002 | Normal | Submitted | approve (reviewerApproved: true) | Transition: Approved | Guard true path |
| TC-003 | Normal | Submitted | reject (reviewerRejected: true) | Transition: Rejected | Guard true path |
| TC-004 | Normal | Approved | reset | Transition: Idle | - |
| TC-005 | Normal | Rejected | reset | Transition: Idle | - |
| TC-006 | Abnormal | Idle | approve | Error: Idle | Missing transition |
| TC-007 | Abnormal | Idle | reject | Error: Idle | Missing transition |
| TC-008 | Abnormal | Idle | reset | Error: Idle | Missing transition |
| TC-009 | Abnormal | Submitted | submit | Error: Submitted | Missing transition |
| TC-010 | Abnormal | Submitted | reset | Error: Submitted | Missing transition |
| TC-011 | Abnormal | Approved | submit | Error: Approved | Missing transition |
| TC-012 | Abnormal | Approved | approve | Error: Approved | Missing transition |
| TC-013 | Abnormal | Approved | reject | Error: Approved | Missing transition |
| TC-014 | Abnormal | Rejected | submit | Error: Rejected | Missing transition |
| TC-015 | Abnormal | Rejected | approve | Error: Rejected | Missing transition |
| TC-016 | Abnormal | Rejected | reject | Error: Rejected | Missing transition |
| TC-017 | Boundary | Submitted | approve (reviewerApproved: true) | Transition: Approved | Guard true path |
| TC-018 | Boundary | Submitted | approve (reviewerApproved: false) | Blocked: Submitted | Guard false path |
| TC-019 | Boundary | Submitted | reject (reviewerRejected: true) | Transition: Rejected | Guard true path |
| TC-020 | Boundary | Submitted | reject (reviewerRejected: false) | Blocked: Submitted | Guard false path |
About State Transition Tester
State Transition Tester takes a state machine definition — states, events, transitions, and optional guard conditions — and immediately validates it for modeling gaps while generating a complete test case table. Unreachable states, missing transitions, duplicate definitions, and invalid references are flagged in real time. Normal, abnormal, and boundary test cases are generated automatically, with guard condition true/false paths expanded into separate rows. Export to CSV or Markdown to feed the results directly into TestRail, Jira, or a test plan document.
Key Features
- Real-time validation for unreachable states, isolated states, missing transitions, duplicates, and invalid definitions
- Automatic test case generation for normal, abnormal, and boundary conditions
- Guard condition support — both true-path and false-path cases generated automatically
- Coverage metrics for states, transitions, and guard conditions displayed simultaneously
- CSV and Markdown export for test planning, documentation, and tool import
Use Cases
- Designing test scenarios for order processing, authentication, or approval workflows
- Modeling and validating a checkout state machine (cart → payment → confirmation → shipped)
- Reviewing a state machine during sprint planning to catch missing transitions before coding starts
- Identifying unreachable states in a user account lifecycle (active, suspended, deleted)
- Generating a complete test case table to import into TestRail or Jira for execution tracking
- Creating shareable test artifacts for QA engineers, developers, and product managers
Frequently Asked Questions
What is an unreachable state?
An unreachable state is a state that cannot be visited from the initial state through any valid transition path.
How are abnormal test cases generated?
Abnormal cases are generated from missing transition pairs, where a state-event combination has no defined transition.
When is condition coverage shown as N/A?
Condition coverage is N/A when no transition includes guard conditions, so there are no guard outcomes to measure.
What is state transition testing?
State transition testing is a black-box test design technique where you model a system as a finite state machine — states, events, and transitions — then derive test cases to verify every valid transition and detect missing or invalid ones. It is widely used for workflow-driven features such as order processing, authentication flows, and approval pipelines.
How do guard conditions affect test case generation?
When a transition includes a guard condition (e.g. 'amount > 0'), the tool generates both a true-path test (guard satisfied, transition occurs) and a false-path test (guard not satisfied, transition is blocked). This ensures full condition coverage.
