状態遷移テスト支援
状態遷移表をリアルタイムで検証し、カバレッジ付きのテストシナリオを自動生成するツール。状態遷移テスト設計を効率化します。
最終更新:
使い方
使い方を開く使い方を閉じる
- 1
状態とイベントを定義
状態とイベントを1行ずつ入力し、初期状態を設定します。
- 2
遷移を記述
遷移元状態・イベント・ガード条件・遷移先状態を行単位で追加します。
- 3
警告とテストケースを確認
検出された問題、カバレッジ、生成テストシナリオを確認して出力します。
状態機械入力
入力を変更すると検証・カバレッジ・テストケースがリアルタイムで更新されます。
検証結果
遷移漏れ(状態 + イベント)
- Idle + approve
- Idle + reject
- Idle + reset
- Submitted + submit
- Submitted + reset
- Approved + submit
- Approved + approve
- Approved + reject
- Rejected + submit
- Rejected + approve
- Rejected + reject
カバレッジ
状態カバレッジ
100%
到達状態数: 4 / 4
遷移カバレッジ
31.3%
網羅遷移数: 5 / 16
条件カバレッジ
100%
網羅条件結果数: 4 / 4
生成テストケース
合計
20
正常系
5
異常系
11
境界値
4
| ID | 種別 | 前提状態 | 操作 | 期待結果 | 補足 |
|---|---|---|---|---|---|
| TC-001 | 正常系 | Idle | submit | 遷移: Submitted | - |
| TC-002 | 正常系 | Submitted | approve (reviewerApproved: true) | 遷移: Approved | ガード成立パス |
| TC-003 | 正常系 | Submitted | reject (reviewerRejected: true) | 遷移: Rejected | ガード成立パス |
| TC-004 | 正常系 | Approved | reset | 遷移: Idle | - |
| TC-005 | 正常系 | Rejected | reset | 遷移: Idle | - |
| TC-006 | 異常系 | Idle | approve | エラー: Idle | 遷移未定義 |
| TC-007 | 異常系 | Idle | reject | エラー: Idle | 遷移未定義 |
| TC-008 | 異常系 | Idle | reset | エラー: Idle | 遷移未定義 |
| TC-009 | 異常系 | Submitted | submit | エラー: Submitted | 遷移未定義 |
| TC-010 | 異常系 | Submitted | reset | エラー: Submitted | 遷移未定義 |
| TC-011 | 異常系 | Approved | submit | エラー: Approved | 遷移未定義 |
| TC-012 | 異常系 | Approved | approve | エラー: Approved | 遷移未定義 |
| TC-013 | 異常系 | Approved | reject | エラー: Approved | 遷移未定義 |
| TC-014 | 異常系 | Rejected | submit | エラー: Rejected | 遷移未定義 |
| TC-015 | 異常系 | Rejected | approve | エラー: Rejected | 遷移未定義 |
| TC-016 | 異常系 | Rejected | reject | エラー: Rejected | 遷移未定義 |
| TC-017 | 境界値 | Submitted | approve (reviewerApproved: true) | 遷移: Approved | ガード成立パス |
| TC-018 | 境界値 | Submitted | approve (reviewerApproved: false) | 遷移不可: Submitted | ガード不成立パス |
| TC-019 | 境界値 | Submitted | reject (reviewerRejected: true) | 遷移: Rejected | ガード成立パス |
| TC-020 | 境界値 | Submitted | reject (reviewerRejected: false) | 遷移不可: Submitted | ガード不成立パス |
状態遷移テスト支援ツールについて
状態遷移テストは、システムを有限状態マシン(状態・イベント・遷移)としてモデル化し、すべての有効な遷移を検証するブラックボックステスト技法です。本ツールでは状態・イベント・遷移を入力するだけで、未到達状態・孤立状態・遷移漏れ・重複遷移・不正遷移をリアルタイムに検出し、正常系・異常系・境界値のテストケースを自動生成します。ガード条件付き遷移は真偽両パスが自動展開されます。状態・遷移・条件のカバレッジをまとめて確認し、生成したテストケースをCSV/Markdownでコピー・ダウンロードしてそのまま活用できます。
主な機能
- 未到達状態・孤立状態・遷移漏れ・重複遷移・不正遷移をリアルタイム検出
- 正常系・異常系・境界値のテストケースを自動生成(ガード条件対応)
- 状態カバレッジ・遷移カバレッジ・条件カバレッジを同時表示
- テストケースをCSV/Markdownでコピー・ダウンロード
- ガード条件付き遷移の真偽両パスを自動展開してテストケース生成
活用シーン
- 注文処理・認証フロー・申請承認ワークフローのテスト設計
- スプリント計画前に状態遷移モデルをレビューして実装前に遷移漏れを検出
- ユーザーアカウントのライフサイクル(有効・停止・削除)の未到達状態を特定
- TestRailやJiraにインポートできるテストケース一覧の作成
- QAエンジニア・開発者・プロダクトマネージャーで共有できるテスト仕様書の素早い作成
よくある質問
未到達状態とは何ですか?
初期状態から有効な遷移をたどっても到達できない状態です。遷移定義漏れや初期状態設定ミスの可能性があります。
異常系テストケースはどのように作られますか?
状態とイベントの組み合わせのうち、遷移が定義されていないペアから自動生成されます。
条件カバレッジが N/A になるのはなぜですか?
ガード条件付き遷移が1件もない場合、条件結果を測定できないため N/A 表示になります。
状態遷移テストとは何ですか?
状態遷移テストは、システムを有限状態マシン(状態・イベント・遷移)としてモデル化し、すべての有効な遷移の検証と不正・欠落遷移の検出を行うブラックボックステスト技法です。注文処理、認証フロー、承認ワークフローなど状態を持つ機能のテスト設計に広く使われています。
ガード条件はテストケース生成にどう影響しますか?
遷移にガード条件(例: 'amount > 0')が付いている場合、条件成立時(遷移実行)と不成立時(遷移ブロック)の2つのテストケースが自動生成され、条件カバレッジを確保できます。
