
ソフトウェアテスト
【6.テストツール編】JSTQB Foundation Levelシラバス最新版の具体的な変更点まとめ
ソフトウェアでは同様の操作を実行しても、そのときの状態によって処理結果に違いが生じることがあります。ソフトウェアテストでは、これら状態ごとの処理結果が想定通りかチェックしなければなりません。
状態遷移テストとは、ソフトウェアの「状態」とそれを遷移させる「イベント」に着目したテストです。この記事では状態遷移テストの概要や、テストで使われる「状態遷移図」「状態遷移表」について具体例をまじえて解説します。
状態遷移テストとは、イベントによってソフトウェアが想定した状態に正しく遷移するか確かめるためのテストです。ソフトウェアを操作する際、イベントによって状態がかわる上に、状態によってイベントの結果がかわります。状態遷移テストでは、これらのイベント・状態の全組み合わせを「状態遷移図」「状態遷移表」にまとめて、テストケースを作成するのです。
状態遷移とはどういったものか、以下アクションゲームの例をもとに考えてみましょう。
【条件】
・主人公がバリアーを張る
・モンスターから攻撃を受けるとバリアーが破壊される
・バリアーがない状態でモンスターから攻撃を受けると主人公は瀕死状態になる
・瀕死状態ではバリアーが使えない
・薬草を使うとキャラクターが回復する
上記例では主人公がバリアーを張ったり攻撃を受けたりすることで、主人公の状態が変化します。状態遷移テストでは、このようなイベントによって、状態が想定した通りに遷移するかをテストするわけです。
なお状態遷移テストを行う際は、これらイベントや状態の変化を「状態遷移図」「状態遷移表」にまとめます。次の項では、上記例をもとに「状態遷移図」「状態遷移表」とはどんなものかみていきましょう。
ソフトウェアの状態とイベントの組み合わせをまとめたものが、状態遷移図や状態遷移表です。状態遷移図や状態遷移表をまとめることで、テストの漏れを予防できます。
以下、それぞれの詳細についてみていきましょう。
状態遷移図とは、イベントによって変化するソフトウェアの状態を図形や矢印でまとめた図です。状態遷移図をみることによって、ソフトウェアがイベントによってどのように変化するか全体的な流れを、ビジュアル的に把握できます。
上記アクションゲームの条件をもとに状態遷移図を作ると、以下のようになります。
以下は、紹介したアクションゲームの例をもとに作成した「状態遷移表」です。状態遷移表とは、状態やイベントの組み合わせを表形式でまとめたものを指します。
ビジュアル的には状態遷移図の方が分かりやすいですが、状態遷移表では「遷移できない組み合わせ(上記表では「N/A」)」も表現可能です。ソフトウェアテストでは、このように本来遷移できないはずの組み合わせに関してもテストが必要となります。万が一、想定に反して遷移が発生したら修正が必要となるからです。
ソフトウェアの仕様書には「どのように遷移するか」はまとめられているものの、遷移できない条件は書かれていないことも少なくありません。状態遷移図とあわせて状態遷移表を作成することによって、遷移できない条件も洗い出せるわけです。
状態遷移図と状態遷移表は、以下の比較表でまとめた通り、それぞれメリットが異なります。両方を作成することでそれぞれのメリットが活かされ、ソフトウェアテストの品質を高められるのです。
状態遷移図 | 状態遷移表 | |
概要 | イベントと状態の組み合わせを図形や矢印で表現したもの | イベントと状態の組み合わせを表形式でまとめたもの |
メリット | 各イベントによって状態がどのように変化するか、全体的な流れをビジュアル的に把握できる | 状態とイベントの組み合わせを抜けなく網羅できる |
状態遷移テストは、どのテストレベル※でも行われます。単一のモジュールごとに行われる単体テストから最後のシステムテストまで、ソフトウェアの状態をテストする際に適用可能です。
※テストレベルとは
開発の各段階に応じ、実施されるソフトウェアテストの段階がかわります。この段階がテストレベルです。
ソフトウェアテストでは、考えられる限りの全パターンでテストが行われるわけではありません。予算や納期、求められるクオリティを総合的に考慮し、テストを実行する範囲が決められるのです。ソフトウェアテストにおけるカバレッジとは、このようなテストを実行する(実行した)範囲・割合を指します。
状態遷移テストにおいてカバレッジは、以下2種類の基準が一般的です。
・0スイッチカバレッジ
テストケースで全イベントを網羅することです。これによって、状態遷移テストにまとめた全イベント・状態に対してテストが行われます。
・1スイッチカバレッジ
0スイッチカバレッジの上位にあたる基準です。前の状態から今の状態を経て次の状態まで遷移するには、2回イベントが必要となります。1スイッチカバレッジでは、2回のイベントで遷移する3つの状態を全て網羅するようテストケースを作成するのです。
状態遷移テストとは、ソフトウェアの状態が想定した通りイベントによって変化(遷移)するか確かめるためのテストです。状態遷移テストでは、ソフトウェアのイベントと状態遷移の関係をまとめた状態遷移図や状態遷移表を使います。
状態遷移図は、イベントによってソフトウェアの状態がどのように変化するかビジュアル的に把握するのに有効です。一方、状態遷移表を使えば「本来ありえない遷移」も含め状態とイベントの組み合わせを抜け目なく網羅できます。
ソフトウェアテスト
【6.テストツール編】JSTQB Foundation Levelシラバス最新版の具体的な変更点まとめ
ソフトウェアテスト
【5.テストマネジメント編】JSTQB Foundation Levelシラバス最新版の具体的な変更点まとめ
ソフトウェアテスト
【4.テスト分析と設計編】JSTQB Foundation Levelシラバス最新版の具体的な変更点まとめ
ソフトウェアテスト
【3.静的テスト編】JSTQB Foundation Levelシラバス最新版の具体的な変更点まとめ
ソフトウェアテスト
【2.ソフトウェア開発ライフサイクル編】JSTQB Foundation Levelシラバス最新版の具体的な変更点まとめ
ソフトウェアテスト
【1.テストの基礎編】JSTQB Foundation Levelシラバスの最新バージョンが公開!具体的な変更点まとめ
ソフトウェアテスト
【0.イントロダクション編】JSTQB Foundation Levelシラバスの最新バージョンが公開!具体的な変更点まとめ
ソフトウェアテスト
JSTQB FLの最新版シラバスが公開!ChatGPTに聞いた変更点の概要とは?
ソフトウェアテスト
ソフトウェアテストにおけるレビューとは?進め方についても解説
ソフトウェアテスト
【2024年最新】ソフトウェアテストにかかわる人必見!JSTQB認定テスト技術者資格とは?
ソフトウェアテスト
テスト技法一覧と選び方、おすすめのツールについて解説
ソフトウェアテスト
テスト管理ツールとは?概要とメリット、よく使われる種類まとめ