【じょうたいせんいてすと】
状態遷移テスト とは?
最終更新:
💡 今の状態と起きた出来事から、次の動きを確かめる
システムの状態と、イベントによって状態がどう変わるかをモデルにしてテストする技法。許可された遷移と、許可されない操作への応答を確認する。状態の網羅と遷移の網羅は区別する。
📌 このページのポイント
画面を切り替えるテストのこと?
画面遷移も一例だけれど、注文の未払い・支払済・発送済のような業務の状態も対象になるよ。状態とイベントの組み合わせによって、次の状態や実行する処理が変わるシステムで役立つんだ。
どうやってテストを作るの?
まず、状態とイベント、許可する遷移を図や表で整理するよ。必要なら条件や処理も書く。次に、初期状態からイベントを順に起こすテストケースを作り、期待した状態や処理になったか確認するんだ。
許可されない操作はどう調べるの?
図の注文例は、支払い前の発送を許可しないルールだよ。未払いで発送を要求し、拒否されて未払いのままになることを確かめる。実際の仕様に基づいて期待結果を決めるので、どの注文システムにも同じルールがあるとは限らないよ。
全部の状態を通れば十分?
すべての状態を訪れても、すべての遷移を通ったとは限らないよ。有効な遷移をすべて実行する基準は、0-switch coverageとも呼ぶ。一つのテストケースで複数の遷移を通ることもあるんだ。
状態が5個、イベントが3個ならテストは15件?
15は表の組み合わせ欄の数で、テストケース数ではないよ。条件による分岐やイベントの順序も考える必要がある。どの網羅基準を使うかを決め、有効な遷移に加えて無効な操作への応答も確認しよう。
まとめ:ざっくりこれだけ覚えればOK!
「状態遷移テスト」って出てきたら「状態とイベントから、次の動きが正しいか確かめるテスト」と思えばだいたいOK!
📖 おまけ:英語の意味
「State Transition Testing」 = 状態遷移テスト
💬 state は「状態」、transition は「遷移・移り変わり」で、状態が別の状態に変わることをテストするんだよ