状態遷移テストとは
状態遷移テストとは、設計仕様どおりにイベントによってソフトウェアの状態の変化することを確かめるテストのことを言います。そもそも「状態遷移」とは、ある「状態」から異なる状態に変化することを指します。ある状態が異なる状態に変化するきっかけをイベントと呼びます。
状態遷移テストを変える二つのツール「状態遷移図」と「状態遷移表」
- 状態遷移図
状態遷移があるシステムの場合、必ず複数の状態を持っています。その状態がどのように遷移するのかを表現したものが「状態遷移図」です。この時、イベント(状態が遷移する条件)も記載しておくとわかりやすいです。一般的に、システムの状態や丸や四角で囲い、イベントを矢印で記載します。
- 状態遷移表
状態とイベントを表にしたものが「状態遷移表」です。
状態遷移表は、システムの状態とイベントをマトリクスで表現できるため、テストケースを抜け漏れなく抽出することができます。
要求分析モデリングのプロセス
ここからは実際に、仕様書から状態遷移表を作るまでのプロセスを、アラームを使います。
仕様書からイベントを抽出します。考えられる状態を抽出します。ここで一度、遷移漏れをチェックします。
<ストップウォッチの仕様>
スタート/ストップボタンを押すと、カウントが始まる。カウント中にスタート/ストップボタンを押すと、カウントが止まる。カウントが止まった状態で、もう一度、スタート/ストップボタンを押すと、カウントが再び始まる。リセットボタンを押すとカウントがゼロに戻る。
イベント | アクション | 備考 |
---|---|---|
スタート/ストップボタン | カウントが止まっている場合、カウントスタート。カウントしている場合、カウントストップ。 | |
リセットボタン | カウントがストップし、カウントが0になる。 |
状態遷移テストのデメリット
状態遷移テストの問題点にテストケースを作るまでの手間が挙げられます。要求鵜分析モデリングのプロセスにも解説しましたが、仕様書からイベントを抽出->状態を抽出->遷移漏れをチェック->状態遷移図へ変換->テストケースの作成とかなり多くの工程が必要なため、それだけの多くの手間がかかっています。
まとめ
- 状態遷移テストとは、複数の状態をもつシステムに対応して行うテスト
- システムが持つ状態とイベントを図にした「状態遷移図」と、それを表にまとめた「状態遷移表」
- 状態遷移テストは工程が多く、手間がかかる。