はじめに
[テスト技法ツールGIHOZ] (https://www.veriserve.co.jp/gihoz)で作成したデシジョンテーブルをテストケースに変換するツールを作ってみました。この記事ではそのツールを紹介します。
デシジョンテーブルは、条件の組み合わせとその結果を整理できる表です。デシジョンテーブルを作って、テストケースを作るテスト技法のことを、デシジョンテーブルテストと呼びます。
デシジョンテーブルテストの詳細は以下のページに解説がありますので、そちらをご覧ください。
ツールの概要
デシジョンテーブルをテストケースに変換するツールです。テストケースには色々なフォーマットがあると思いますが、この記事ではとりあえず、デシジョンテーブルで指定した条件の組み合わせと動作結果が横1行に並んだものを指すことにします。
具体的には、以下のようなデシジョンテーブルがあったとします。
ソースコード・動作確認環境
ソースコードは[こちらのGitHubのリポジトリ] (https://github.com/ktanizaki/gihoz-utilities)で公開しています。
以下の環境で動作することを確認しました。
- OS: Windows10
- 言語: Python 3.9.5
使い方
まずPython3をインストールし、次にpandasというライブラリをインストールします。pandasはpipコマンドが使える方は以下のコマンドでインストールできます。Anacondaなどをご利用の方はご自分でコマンドを調べてください。
$ pip install pandas
ここまでで環境の準備は完了です。
GIHOZのデシジョンテーブル画面で適当にデシジョンテーブルを作成してcsvファイルとしてダウンロードします。
上記のGitHubのリポジトリからソースコードをダウンロードして、コマンドプロンプトやPowerShellでソースコードの保存先を開いて、以下のコマンドを打てば実行できます。
$ python transform_decisiontable.py [デシジョンテーブルのCSVファイル名]
[デシジョンテーブルのCSVファイル名]は、GIHOZからダウンロードした直後はDecision-table_yyyy-mm-dd.csv
といったファイル名になっています。(yyyy-mm-dd
の部分はダウンロードした日付です)
実行に成功するとtransformed.csvという名前のファイルが生成されます。transformed.csvをExcelなどで開くと、以下のようになっており、デシジョンテーブルからテストケースの形に変換できたことが分かります。
変換のルールは以下の通りです。
- サブ条件(条件の子階層)が存在する場合、「Y」が指定されたサブ条件の名称をテストケースに反映します
- サブ条件がない場合、「Y」が指定された条件は名称をそのままテストケースに反映し、「N」が指定された条件は「NOT 名称」をテストケースに反映します
- 動作に複数の「X」を指定していた場合、動作の名称をカンマ区切りの文字列に結合してテストケースに反映します
GIHOZは条件記述部に子階層を作ることができるので、その記法に対応したものにしています。上図の例でいうと、「会員」という条件の子階層に「通常会員」と「ゴールド会員」が記載されている部分が該当します。
変換後のテストケースは、Excelのテストケースフォーマットに入れ込んで管理するなり、テスト管理ツールに投入するなり、テスト自動化ツールの入力データとして使うなり、自由に使うことができます。
おわりに
GIHOZで作成したデシジョンテーブルをテストケースに変換するツールを作ってみた、という記事でした。GIHOZを使わないでExcelなどでデシジョンテーブルを作った場合でも、GIHOZからダウンロードしたcsvと同じ形式でcsvとして保存してやれば、このツールで同じようにテストケースに変換できます。テストケース作成の一助になればと思います。
今回はcsvファイルをGIHOZからダウンロードしてツールの入力として使いましたが、GIHOZはAPIも公開しているため、APIを呼び出してGIHOZから直接データを読み取って、変換するようにしても面白いかもしれません。