LoginSignup
1
2

More than 1 year has passed since last update.

状態遷移表から状態遷移テストのテストケースを作成するツール

Posted at

はじめに

状態遷移表(状態×イベント)からテストケースを作成するツールを作りましたので、その紹介です。といっても、状態遷移表をテストケースに変換するアルゴリズム的な部分は作っておらず、そこはベリサーブ社のテスト技法ツール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形式で保存すると楽に作れます。

image.png

上記の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個のテストケースになっています。

image.png

おわりに

状態遷移表(状態×イベント)からテストケースを作成するツールのご紹介でした。GIHOZのWeb APIを利用することで、テストケースの生成アルゴリズムを自作する必要がなく、短時間でツールを作ることができました。状態遷移テストでテストケースを作成する際の一助になればと思います。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2