こんにちは!
今回は「ISTQB Advanced Test Analyst」のチャプター3.2「仕様ベースのテスト技法(Specification-Based Techniques)」から、
**「3.2.5 状態遷移テスト(State Transition Testing)」**について解説します。
この技法は、Foundationレベルでも学習した内容ですが、アドバンスドレベルではさらに深い概念(0スイッチ・1スイッチ・2スイッチなど)を扱います。
この記事では、図の読み方から実際の試験で問われる考え方まで、丁寧に整理していきます。
🔹 状態遷移テストとは?
状態遷移テストとは、
ソフトウェアやシステムが「どの状態(State)」から「どの状態(State)」へ遷移できるかを確認するテスト手法です。
システムはある状態にあり、
特定のイベントや入力が発生すると、別の状態に「遷移」します。
これを図で表したものが
👉 **状態遷移図(State Transition Diagram)**です。
🔹 状態遷移図の基本構成
状態遷移図では、以下の要素が登場します。
|
要素 |
説明 |
|---|---|
|
状態(State) |
システムのある時点での状態(例:ログイン中、処理中など) |
|
遷移(Transition) |
ある状態から別の状態への移動 |
|
イベント/条件 |
遷移を引き起こす原因(例:ボタン押下、データ入力など) |
図では、丸が「状態」、矢印が「遷移」を表します。
🔹 サンプルシナリオ:保険金請求システム
例として、次のような「保険金請求システム(Claim System)」を考えます。
-
保険金請求が申請されると「Accepted(受理)」状態になります。
-
そこから「Activated(処理中)」に進みます。
-
情報が不足している場合は「Disputed(異議あり)」に遷移します。
-
問題が解決すると「Closed(完了)」に進み、最後に「Removed(削除)」で終了します。
もしクレームを再申請したい場合、
「Closed」状態から「Accepted」へ戻すことも可能です。
状態遷移図イメージ(簡略化)

🔹 「スイッチ(Switch)」とは?
アドバンスドレベルでは、**スイッチ(switch)**という概念が登場します。
これは「何ステップ分の遷移を考えるか」を示す考え方です。
|
スイッチの種類 |
意味 |
|---|---|
|
0スイッチ |
1回の遷移を考える(1ステップ) |
|
1スイッチ |
2回の遷移を考える(2ステップ) |
|
2スイッチ |
3回の遷移を考える(3ステップ) |
たとえば、「Activated」状態を起点に考えると次のようになります。
✅ 0スイッチ(1ステップ)
Activatedから1回の遷移で到達可能な状態:
-
Activated → Accepted
-
Activated → Disputed
-
Activated → Closed
-
Activated → Activated(自己遷移)
→ 合計4通りの遷移
✅ 1スイッチ(2ステップ)
2回の遷移(例:Activated → Accepted → Activated)のように、
2ステップ分の経路をたどるパターンを考えます。
例:
-
Activated → Accepted → Activated
-
Activated → Disputed → Activated
-
Activated → Closed → Activated
-
Activated → Accepted → Closed
-
Activated → Closed → Accepted
など。
→ 合計9通りの遷移パターンが考えられます。
✅ 2スイッチ(3ステップ)
3ステップ分のパターンも理論上は存在しますが、
ISTQB試験では通常「0スイッチ」または「1スイッチ」までが出題されます。
🔹 試験例題
問題文:
保険金請求システムで、従業員が請求を申請すると、クレームは次の状態遷移を経て「Closed(完了)」となり、最終的に「Removed(削除)」されます。ただし、情報不足や変更がある場合には、以前の状態に戻る可能性もあります。
以下の制約があります:
-
「Accepted」状態から「Closed」になった場合、再開できるのは「Accepted」に限る。
-
「Activated」状態から「Closed」になった場合、再開できるのは「Activated」に限る。
質問:
起点を「Activated」とした場合、
-
0スイッチで可能な遷移数はいくつか?
-
1スイッチで可能な遷移数はいくつか?
選択肢:
A. 0スイッチ:2、1スイッチ:4
B. 0スイッチ:4、1スイッチ:9
C. 0スイッチ:3、1スイッチ:7
D. 0スイッチ:4、1スイッチ:12
E. 0スイッチ:5、1スイッチ:9
正解:
👉 B. 0スイッチ:4、1スイッチ:9
🔹 状態遷移テストの活用例
この手法は、以下のようなシステムに特に有効です。
-
ログイン状態の管理(ログイン→ログアウト→再ログインなど)
-
ワークフローシステム(申請→承認→完了→再申請など)
-
ATM取引やチケット発券システム(操作手順ごとに状態が変化)
たとえばログイン機能なら:
ログアウト → ログイン成功 → ログイン中 → タイムアウト → ログアウト
この一連の遷移が正しく動作しているか、
**不正な遷移(ログアウト中なのに操作できるなど)**が発生していないかを確認できます。
🔹 試験でのポイントまとめ
|
覚えておくべきポイント |
内容 |
|---|---|
|
状態遷移図とは |
状態と遷移の関係を視覚的に表す図 |
|
有効な遷移(valid) |
図に示された正しい遷移パターンのみ |
|
無効な遷移(invalid) |
図に存在しない不正な経路 |
|
スイッチの意味 |
遷移のステップ数(0=1ステップ, 1=2ステップ) |
|
出題範囲 |
0スイッチまたは1スイッチが中心 |
🧠 まとめ
状態遷移テストは、「どの状態からどの状態に遷移できるか」を明確にし、
設計時に見落とされがちな遷移の欠落や誤りを防ぐ強力な手法です。
特に業務アプリケーションやワークフローシステムでは、
ユーザーの操作やイベントに応じた状態管理の正確性を保証する上で欠かせません。


コメント