state-transition-testinglisted
Install: claude install-skill phatnguyen975/functional-test-design
# State Transition Testing Skill
## Overview
**State Transition Testing** is a black-box test design technique for systems where the **output depends not only on the current input but also on the system's prior history** — i.e., its current state. The system is modeled as a **Finite State Machine (FSM)** —
a set of states, events that trigger transitions between states, guard conditions that qualify transitions, and actions (observable outputs) produced during transitions.
**Core purpose:** Systematically derive test cases that cover all meaningful paths through a system's state space — including paths the system should correctly reject — ensuring no state, transition, or invalid combination is left untested.
The technique produces two complementary artifacts before any test cases are written:
- **State Transition Diagram (STD):** Visual representation of the FSM — states as nodes, transitions as directed arrows.
- **State Transition Table (STT):** Exhaustive grid of all state × event combinations, exposing both valid transitions and invalid transitions that the diagram alone cannot surface.
→ For full theoretical background, see [`resources/theory.md`](resources/theory.md).
## Invoke Syntax
```
/state-transition-testing [--file="path/to/output.md"]
```
**Modes:**
| Mode | Syntax | Behavior