LoginSignup
1
2

More than 1 year has passed since last update.

テスト技法ツールGIHOZのデシジョンテーブルをテストケースに変換するツール

Last updated at Posted at 2021-12-28

はじめに

テスト技法ツールGIHOZで作成したデシジョンテーブルをテストケースに変換するツールを作ってみました。この記事ではそのツールを紹介します。
デシジョンテーブルは、条件の組み合わせとその結果を整理できる表です。デシジョンテーブルを作って、テストケースを作るテスト技法のことを、デシジョンテーブルテストと呼びます。

デシジョンテーブルテストの詳細は以下のページに解説がありますので、そちらをご覧ください。

ツールの概要

デシジョンテーブルをテストケースに変換するツールです。テストケースには色々なフォーマットがあると思いますが、この記事ではとりあえず、デシジョンテーブルで指定した条件の組み合わせと動作結果が横1行に並んだものを指すことにします。

具体的には、以下のようなデシジョンテーブルがあったとします。
image.png

このテーブルを以下のように変換します。
image.png

ソースコード・動作確認環境

ソースコードはこちらのGitHubのリポジトリで公開しています。
以下の環境で動作することを確認しました。

  • OS: Windows10
  • 言語: Python 3.9.5

使い方

まずPython3をインストールし、次にpandasというライブラリをインストールします。pandasはpipコマンドが使える方は以下のコマンドでインストールできます。Anacondaなどをご利用の方はご自分でコマンドを調べてください。

$ pip install pandas

ここまでで環境の準備は完了です。
GIHOZのデシジョンテーブル画面で適当にデシジョンテーブルを作成してcsvファイルとしてダウンロードします。
image.png

上記のGitHubのリポジトリからソースコードをダウンロードして、コマンドプロンプトやPowerShellでソースコードの保存先を開いて、以下のコマンドを打てば実行できます。

$ python transform_decisiontable.py [デシジョンテーブルのCSVファイル名]

[デシジョンテーブルのCSVファイル名]は、GIHOZからダウンロードした直後はDecision-table_yyyy-mm-dd.csvといったファイル名になっています。(yyyy-mm-ddの部分はダウンロードした日付です)

実行に成功するとtransformed.csvという名前のファイルが生成されます。transformed.csvをExcelなどで開くと、以下のようになっており、デシジョンテーブルからテストケースの形に変換できたことが分かります。
image.png

変換のルールは以下の通りです。

  • サブ条件(条件の子階層)が存在する場合、「Y」が指定されたサブ条件の名称をテストケースに反映します
  • サブ条件がない場合、「Y」が指定された条件は名称をそのままテストケースに反映し、「N」が指定された条件は「NOT 名称」をテストケースに反映します
  • 動作に複数の「X」を指定していた場合、動作の名称をカンマ区切りの文字列に結合してテストケースに反映します

GIHOZは条件記述部に子階層を作ることができるので、その記法に対応したものにしています。上図の例でいうと、「会員」という条件の子階層に「通常会員」と「ゴールド会員」が記載されている部分が該当します。

変換後のテストケースは、Excelのテストケースフォーマットに入れ込んで管理するなり、テスト管理ツールに投入するなり、テスト自動化ツールの入力データとして使うなり、自由に使うことができます。

おわりに

GIHOZで作成したデシジョンテーブルをテストケースに変換するツールを作ってみた、という記事でした。GIHOZを使わないでExcelなどでデシジョンテーブルを作った場合でも、GIHOZからダウンロードしたcsvと同じ形式でcsvとして保存してやれば、このツールで同じようにテストケースに変換できます。テストケース作成の一助になればと思います。

今回はcsvファイルをGIHOZからダウンロードしてツールの入力として使いましたが、GIHOZはAPIも公開しているため、APIを呼び出してGIHOZから直接データを読み取って、変換するようにしても面白いかもしれません。

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