🏫

状態遷移テストの基礎知識

に公開

はじめに

ソフトウェアテスト技法練習帳を解き進めるにあたって、基本的な技法を再度学びなおして記事としてアウトプットしました。

あくまで基礎的な内容ですが参考になれば。

https://amzn.asia/d/bsy7Pe1

状態遷移図とは

状態遷移図(State Transition Diagram)は、ソフトウェアやシステムが取りうる「状態」と、その状態間を移動する「遷移」を視覚的に表現する図である。複雑なロジックや画面遷移を理解・設計・検証するのに役立つ。文章で記載された仕様をビジュアル化することで、直感的に全体像を把握できるため、チーム内のメンバー間の共通認識をそろえるのにも役立つ。

状態遷移表とは

状態遷移表(State Transition Table)**は、各状態においてどのイベントが発生したときに、どの状態に遷移するかを表形式で整理したものである。状態遷移図をもとに作成されることが多く、より網羅的に仕様を確認する際に有効である。

例題:電子レンジのドア制御

背景

ある電子レンジには以下の仕様があります。

状態(State)
  1. 待機中(ドアが閉じられている、何もしていない)
  2. 加熱中
  3. 一時停止中(ドアが開けられた状態)
イベント(入力)
  • スタートボタンを押す
  • ドアを開ける
  • ドアを閉める
  • 加熱終了(タイマー0)
状態遷移のルールについて
  1. 待機中にスタートボタンが押されると、加熱中に移行し、加熱が開始されます。
  2. 加熱中にドアを開けると、一時停止中に移行し、加熱は停止されます。
  3. 一時停止中にドアを閉めると、加熱中に戻り、加熱が再開されます。
  4. 加熱中に加熱時間が終了すると、待機中に戻る

状態遷移図を作成する

与えられた仕様をもとに、状態遷移図を作成する。

状態を丸い四角、遷移するためのイベントを線として表現する。

img

状態遷移表を作成する

作成した状態遷移図に基づき、状態遷移表を作成する。今回は行を状態、列をイベントとして、どの状態においてどのイベントが発生したら、どのような状態遷移が発生するかを表現する。

スタートボタンを押す ドアを開ける ドアを閉める 加熱時間終了
待機中 加熱中
加熱中 一時停止中 待機中
一時停止中 加熱中

状遷遷移図・状態遷移表からテストケースを作成する

これまで作成してきた図・表からテストケースの洗い出しを行う。

開始状態 入力 終了状態
1 待機中 スタートボタンを押す 加熱中
2 待機中 ドアを開ける 待機中
3 待機中 ドアを閉める 待機中
4 待機中 加熱時間終了 待機中
5 加熱中 スタートボタンを押す 加熱中
6 加熱中 ドアを開ける 一時停止中
7 加熱中 ドアを閉める 加熱中
8 加熱中 加熱時間終了 待機中
9 一時停止中 スタートボタンを押す 一時停止中
10 一時停止中 ドアを開ける 一時停止中
11 一時停止中 ドアを閉める 加熱中
12 一時停止中 加熱時間終了 一時停止中

これにより、12パターンのテストケースを作成できた。

まとめ

実際には与えられた状態・イベント以外の隠れた状態を考慮する必要があったり、連続する状態遷移を考慮する必要があったりなど、様々な状況があるため、都度考慮しながら進めていく必要がある。

参考記事

Discussion