状態遷移テストのNスイッチテストとPairwise法(All-Pairs法)によるテスト | 組み合わせテストケース生成ツール 「PictMaster」 とソフトウェアテストの話題

状態遷移テストのNスイッチテストとPairwise法(All-Pairs法)によるテスト

状態遷移テストの一形式として、Nスイッチテストという手法のあることを最近知りました。


Nスイッチテストを知らない人のために説明しますと、最初に遷移前の状態を列方向に、遷移後の状態を行方向にならべた状態遷移表を作成します。表中の各欄には、遷移前の状態で有効なイベントを、そのイベントによる遷移先の状態の行と列がクロスする欄に記入します。


例を用いると分かりやすいので図1の状態遷移図をもとに説明します。この状態遷移図に特に意味はありません。

組み合わせテストツール PictMaster を使う-状態遷移図
図1.状態遷移図

この状態遷移図を表す状態遷移表を表1に示します。


表1.状態遷移表(0スイッチテスト用)
組み合わせテストツール PictMaster を使う-状態遷移表0スイッチ

状態遷移表には、このほかに、左の列に状態欄、その右にイベント欄、つづいてそのイベントで実行する処理内容を記述した欄、最後に次に遷移する状態欄、という形式の状態遷移表もあります。今回説明に使用する状態遷移表はそれとは異なる形式です

表1の状態遷移表では、遷移前の状態で、表中のあるイベントにより遷移後の状態が指定されています。この表はある状態から次の遷移先の状態を表しており、2つの状態間の遷移をカバーしています。この表をもとに行うテストをNスイッチテストでは0スイッチテストと言います。


これに対して1スイッチテストという方法があります。この方法はある状態から次の状態、そしてさらに次の状態という具合に3つの状態間の遷移をカバーする方法です。この方法では、状態遷移表を行列式とみなし、行列の2乗を行なうことで得られる新しい行列式の内容が3つの状態間の遷移を表しています。


表1の状態遷移表の内容を行列式とみなし、それを2乗した結果を表2に示します。


表2.行列を2乗した状態遷移表(1スイッチテスト用)
組み合わせテストツール PictMaster を使う-状態遷移表1スイッチ

この表中の欄に記述されている内容は2つのイベントを表し、そのイベントの連続で遷移前の状態から遷移後の状態に遷移することを意味しています。表中で「+」がある欄は、イベントの組み合わせが2つあることを表しています。表中の各欄のイベントを調べると、3つの状態間の遷移がすべて網羅されていることが分かります。


Nスイッチテストというように2スイッチテスト以上も考えられます。これは行列式の積で得ることができます。

Nスイッチテストは、単純な状態間の遷移を確認するだけのテストに比べて網羅度の高いテストを行なうことができます。ただし、最初の状態がどの状態から遷移してきたものであるかが不定であるため、状態遷移の網羅度は低いと思います。また各状態の遷移の過程での確認事項をテストケースとしてまとめるのにかなり手間がかかるはずです。


一方、Pairwise法によるテストケースでは、すべての状態の遷移が網羅されるため、Nスイッチテストより網羅度の高いテストを行なうことができます。図1の状態遷移図を例にとると、少なくとも4つの状態間の遷移をすべて網羅するテストケースを14件で作成することができました。個々のテストケースは状態s0から始まっています。このテストケースを表3に示します。


表3.Pairwise法による状態遷移テストのテストケース例
組み合わせテストツール PictMaster を使う-Pairwise法のテストケース

それでは、また。