ペアワイズ法テストケース生成ツール「PictMaster」のサブモデルを使う

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

前回はペアワイズ法テストケース生成ツール「PictMaster」の”重み”機能について紹介しました。
今回はPictMasterの”サブモデル”機能について紹介したいと思います。

Contents

一部の因子の組み合わせ網羅数を他の因子よりも多くしたい場合

#

2因子網羅のテストケースを効率よく生成するペアワイズ法ですが、特定の因子の組み合わせ網羅数を他の因子よりも多くしたい場合、テストケースの生成方法に工夫が必要になります。
例えば、A,B,C,D,Eの5つの因子があった場合、因子A,Bについては2因子網羅で良いが、因子C,D,Eについては3因子網羅に設定したい場合などが該当します。

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

デフォルトの設定でテストケースを生成した場合は以下のようになります。

全テストケース数は6個になりました。

今回、OS,ブラウザの2つの因子については他の因子も含めて「3」因子網羅に設定したいとします。
それではPictMasterを使ってテストケースを作ってみましょう。

サブモデルの設定

#

要求を「OS,ブラウザ,JavaのうちOS,ブラウザの2つの因子については3因子網羅のテストケースを生成する」とします。
PictMasterの「環境設定」にて「サブモデルを使用」にチェックを入れます。

パラメータ/値シートの下側に「サブモデル」エリアが表示されます。
(デフォルトでは2行表示されます)

今回、「OS」「ブラウザ」については3因子網羅に設定するとしたので、以下のように記述します。
OS,ブラウザ,3

因子「OS,ブラウザ」は、組み合わせの対象となる因子です。
値「3」は、指定した因子に対する網羅数(組み合わせ数)です。
ここで設定できる値(網羅数)は、環境設定の「組み合わせるパラメータ数」の値よりも大きな値にする必要があります。
また、当然ですが全因子数以下の値である必要があります。

以下のように設定しました。

組み合わせテストケース生成を実行します。
以下の結果が出力されました。

全テストケース数は12個になりました。

全因子数=サブモデル指定網羅数の場合は、環境設定の「組み合わせるパラメータ数」と同義

#

実は、先程のサブモデル設定はあまり意味がありません。
サブモデルで指定した網羅数(組み合わせ数)が全因子数と等しいので、結局すべての因子を使って3因子網羅のテストケースを生成した場合と同じになります。
試しに、以下のように設定して、サブモデルを使用せずに、「組み合わせるパラメータ数」を2から3に変更してテストケースを生成してみます。

組み合わせテストケース生成を実行します。
以下の結果が出力されました。

全テストケース数は12個になりました。
サブモデルを使用した場合とテストケースの並び順は違いますが、3×2×2=12個の全組み合わせ数のテストケースが生成されました。

全因子数 ≠ サブモデル指定網羅数の場合の組み合わせテストケース

#

以下の組み合わせを考えてみましょう。
全体の因子数は4個で、各因子に水準はそれぞれ2つ。
サブモデルは、因子:「a,b」、網羅:「3」を設定します。
(サブモデル指定因子数 < サブモデル指定網羅数)

組み合わせテストケース生成を実行します。
以下の結果が出力されました。

全テストケース数は8個になりました。
上表では因子a,bは、因子c,dのそれぞれと3因子の組み合わせ網羅になっています。

また、別のパターンを考えてみます。
全体の因子数は5個で、各因子に水準はそれぞれ2つ。
サブモデルは、因子:「a,b,c,d」、網羅:「3」を設定します。
先程の例とは違い、サブモデルで指定した因子(4個)の中から3因子網羅を設定しています。
(サブモデル指定因子数 > サブモデル指定網羅数)

組み合わせテストケース生成を実行します。
以下の結果が出力されました。

全テストケース数は10個になりました。

同様に、サブモデル指定因子数 = サブモデル指定網羅数 のケースについてテストケースを生成してみます。
以下に、サブモデル指定因子数=サブモデル指定網羅数=3 の場合の結果を示します。

全テストケース数は9個になりました。

環境設定の「組み合わせるパラメータ数」を「1」に設定する

#

ちょっと違った使い方として環境設定の「組み合わせるパラメータ数」を「1」に設定しておいて、サブモデルを使って組み合わせテストケース数を調整することができます。
例えば、多数の因子を対象にしたテストにおいて、そのまま全因子について2因子網羅のテストケースを生成するとテストケース数が膨大になってしまうような場合、テストケース数を削減したいときなどに利用します。

全体の因子数は5個で、各因子に水準はそれぞれ2つ。
サブモデルは、因子:「a,b,c」、網羅:「2」を設定します。

組み合わせテストケース生成を実行します。
以下の結果が出力されました。

全テストケース数は4個になりました。
何も設定せずに通常の2因子網羅のテストケースを生成するとテストケース数は7個になるので、テストケース数は約半分ほどに削減されています。
また、上記のテストケース数は、因子をa,b,cの3個だけにした場合の2因子網羅のテストケース数と同じです。

まとめ

#

「サブモデル」機能を使うことによって、重点的にテストしたい組み合わせについて網羅数を調整できることがわかりました。
サブモデルは、普通に組み合わせテストケースを生成した時に組み合わせテストケースが多すぎるような場合に、テストケース数を削減する用途にも使用できます。
PICTには他にも色々なオプションが用意されていて、PictMasterから利用可能です。
次回も別のオプションを紹介していきたいと思います。

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

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

豆蔵デベロッパーサイト - 先週のアクセスランキング
  1. 自然言語処理初心者が「GPT2-japanese」で遊んでみた (2022-07-08)
  2. Tauri でデスクトップアプリ開発を始める (2022-07-08)
  3. Deno による Slack プラットフォーム(オープンベータ) (2022-09-27)
  4. Jest再入門 - 関数・モジュールモック編 (2022-07-03)
  5. ORマッパーのTypeORMをTypeScriptで使う (2022-07-27)
  6. 第1回 OpenAPI Generator を使ったコード生成 (2022-06-04)
  7. 直感が理性に大反抗!「モンティ・ホール問題」 (2022-07-04)
  8. Rust によるデスクトップアプリケーションフレームワーク Tauri (2022-03-06)
  9. 箱ひげ図で外れ値を確認する (2022-05-18)
  10. Nuxt3入門(第1回) - Nuxtがサポートするレンダリングモードを理解する (2022-09-25)