はじめに
状態遷移表(状態×イベント)からテストケースを作成するツールを作りましたので、その紹介です。といっても、状態遷移表をテストケースに変換するアルゴリズム的な部分は作っておらず、そこはベリサーブ社のテスト技法ツールGIHOZのWeb APIを利用しています。GIHOZは2022年5月時点では、状態遷移図からテストケースを生成できますが、状態遷移表からテストケースを生成することはできないため、自分でツールを作成してみました。
ツールの概要
状態遷移表(状態×イベント)のCSVファイルを読み込んで、状態遷移テストのテストケースを作成するツールです。テストケースの網羅基準として、0スイッチ~3スイッチを選ぶことができます。GIHOZが対応している「無効遷移を含めた全遷移テストケース」を選ぶこともできます。
ソースコード・動作確認環境
ソースコードはGitHubのリポジトリで公開しています。
以下の環境で動作することを確認しました。
- OS: Windows10
- 言語: Python 3.9.5
使い方
まずPython3をインストールし、次にpandasというライブラリをインストールします。pandasはpipコマンドが使える方は以下のコマンドでインストールできます。Anacondaなどをご利用の方はご自分でコマンドを調べてください。
$ pip install pandas
ここまでで環境の準備は完了です。入力データとして下図の形の状態遷移表をCSV形式で作成します。下図はストップウォッチの状態遷移を想定して作成した例です。Excelなどで作成してから、CSV形式で保存すると楽に作れます。
上記のGitHubのリポジトリからソースコードをクローンするかダウンロードして、utilities/generate_testcases_from_state_transition_table.py
の中のYOUR_PERSONAL_ACCESS_TOKEN
という文字列を、GIHOZで発行したAPIトークンの文字列に置き換えます。APIトークンの発行の手順はGIHOZのヘルプページに記載があります。
あとは、コマンドプロンプトやPowerShellでソースコードの保存先を開いて、以下のコマンドを打てば実行できます。
$ python generate_testcases_from_state_transition_table.py <CSV file name> [desired test case]
<CSV file name>
には、状態遷移表のCSVファイルの名前を指定します。
[desired test case]
には0_switch
1_switch
2_switch
3_switch
all_transition
のいずれかの文字列を指定します。何も指定しなかった場合は、all_transition
を指定したものとしてテストケースを作成します。
実行に成功すると1_switch_test_cases.csv
といった名前のファイルが生成されます。ファイル名の1_switch
の部分は[desired test case]
で指定した文字列となります。
ファイルを開くと下図のようになっています。ヘッダはありませんが左の列から順に、状態名・イベント名・状態名・イベント名・・・となっており、1行が状態遷移テストの1個のテストケースになっています。
おわりに
状態遷移表(状態×イベント)からテストケースを作成するツールのご紹介でした。GIHOZのWeb APIを利用することで、テストケースの生成アルゴリズムを自作する必要がなく、短時間でツールを作ることができました。状態遷移テストでテストケースを作成する際の一助になればと思います。