ペアワイズ法テストケース生成ツール「PictMaster」の制約表を使う

| 2 min read
Author: shuichi-takatsu shuichi-takatsuの画像

前回はペアワイズ法をGUIから使う便利ツール「PictMaster」の基本操作を紹介しました。
今回は「PictMaster」の「制約表」について紹介します。

Contents

テストケースに制約を付けたいとき

#

2因子網羅を効率よく生成するペアワイズ法ですが、テストケース生成時にテストケースに制約を設定したい場合が多々あります。
例えば、ある因子の水準を特定の環境にだけ割り当てたい、または割り当てたくない場合などです。

以前使用したテストケースの例題で考えてみましょう。
・OS (Windows, Linux, macOS)
・ブラウザ (Firefox, Chrome)
・Java (バージョン8, バージョン11)

上記の例では全てのブラウザが全てのOSで使用可能ですが、Windowsでのみ動作するブラウザをテストケースに組み込みたい場合を想定しましょう。

例としてインターネット・エクスプローラ(以降IEと称す)をブラウザ環境に追加します。
・OS (Windows, Linux, macOS)
・ブラウザ (Firefox, Chrome, IE) ※ただしIEはWindows限定
・Java (バージョン8, バージョン11)

何の制約も設定せずにPICTで2因子網羅のテストケースを作ると、本来は実施しない(実施できない)テストケースも一緒に生成されてしまいます。

一旦全ての組み合わせテストケースを生成しておいて、不要(実行不可能)なテストケースを後から手作業で除外することも可能ですが、人間の作業が介在するのでテストケースの抜け漏れが心配です。

上記の例のようにテストケース生成時に制約を設けたい場合には、PICTでは「制約」を使用します。
PictMasterでは「制約表」に値を設定するだけで簡単に制約を利用することができます。

制約表

#

それでは制約を設定したテストケースを生成してみましょう。
例題を以下のように設定します。
ブラウザ環境に追加した「IE」はWindows限定とします。

・OS (Windows, Linux, macOS)
・ブラウザ (Firefox, Chrome, IE) ※ただしIEはWindows限定
・Java (バージョン8, バージョン11)

パラメータ(因子)と値(水準)を以下のように設定します。

「環境設定」ボタンを押して環境設定ダイアログを開き、制約を利用できるようにします。
以下のように「制約表を使用」をチェックします。

すると、Excelシートの下側に「制約表」が表示されます。
制約表のパラメータ列にはシートに設定したパラメータ値が予め設定されています。

「制約表」に以下のように制約を設定します。(「制約1」の部分)

上表の意味は

  • 「ブラウザ」が「IE」の時は
  • 「OS」は「Windows」限定

if 'ブラウザ' = 'IE' then 'OS' = 'Windows'

と設定したことになります。

どちらの項目がIF文側になるかは、セルを着色することで指定します。
塗りつぶした方が「IF」側、
塗りつぶしていない方が「THEN」側になります。
(色に指定は無いようなので、区別しやすい色を選択しています)

セルを選択した状態でマウスを右クリックすると制約値として設定可能な値の候補が表示されますので、制約値を選択して設定します。(複数選択可)

テストケース生成

#

「実行」ボタンを押すと制約が設定されたテストケースが生成されます。

テストケース数は8通り。
IEはWindows限定になっていることがわかります。

ちなみに、制約を設定しないでテストケースを生成するとテストケースは以下のようになります。

テストケース数は9通り。
IEはLinux、macOSの条件にも含まれてしまっています。

まとめ

#

「制約表」を使うことによって、テストケースに「含めたい」または「含めたくない」条件を設定したテストケースを生成することが出来ました。
PICTには他にも色々なオプションが用意されていて、PictMasterから利用可能です。
次回も別のオプションを紹介していきたいと思います。

ソフトウェアテストに関する技法やテクニックをまとめています。

テストに活用していただければ幸いです。

豆蔵デベロッパーサイト - 先週のアクセスランキング
  1. Nuxt3入門(第1回) - Nuxtがサポートするレンダリングモードを理解する (2022-09-25)
  2. 自然言語処理初心者が「GPT2-japanese」で遊んでみた (2022-07-08)
  3. GitHub Codespaces を使いはじめる (2022-05-18)
  4. Jest再入門 - 関数・モジュールモック編 (2022-07-03)
  5. ORマッパーのTypeORMをTypeScriptで使う (2022-07-27)
  6. Nuxt3入門(第4回) - Nuxtのルーティングを理解する (2022-10-09)
  7. Nuxt3入門(第3回) - ユニバーサルフェッチでデータを取得する (2022-10-06)
  8. 第1回 OpenAPI Generator を使ったコード生成 (2022-06-04)
  9. Nuxt3入門(第8回) - Nuxt3のuseStateでコンポーネント間で状態を共有する (2022-10-28)
  10. Nuxt3入門(第2回) - 簡単なNuxtアプリケーションを作成する (2022-10-02)