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

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

前回はペアワイズ法テストケース生成ツール「PictMaster」の”原型シート”機能(因子編)について紹介しました。
今回はペアワイズ法ではなく直交表を使って組み合わせテストケースを生成してみます。

直交表ってなに?

#

直交表とは,複数の因子・水準の組み合わせにおいて、任意の2因子について「水準の組み合わせが同じ回数だけ現れる」という性質をもつ”組み合わせ表”を指します。

複数因子・水準を組み合わせてテストする時、因子間に「交互作用」が存在すると、テスト結果が影響を受ける場合があります。(交互作用とは2つの因子が組み合わさることで発生する相乗効果のことです)
直交表の性質「水準の組み合わせが同じ回数だけ現れる」を使って、交互作用を相殺したり、交互作用の有無を判断することができます。
(詳しいことは「実験計画法」で検索すると情報を得ることができます)

直交表は全ての因子・水準をバランスよくカバーしてますが、そこまでバランスを気にしない場合、直交表の「水準の組み合わせが同じ回数だけ現れる」という条件を緩和させて、「水準の組み合わせが1回以上現れればよい」としてテストケースを作成する方法がペアワイズ法です。

3因子2水準の組み合わせテストケース

#

直交表を使って、3因子2水準の組み合わせテストケースを作成してみます。

PictMasterで直交表を使用するためには、環境設定の「生成方式」を「直交表」に設定します。
(生成方式の下の「直交表」の枠の中が選択可能になりますが、ここでは「サイズ優先」を選択しておきます)

直交表で作成したテストケースは以下のようになりました。

比較対象として、ペアワイズ法で作成したテストケースは以下のようになりました。

この程度の因子・水準数であれば直交表とペアワイズ法の結果に大きな差は出ません。

5因子2水準の組み合わせテストケース

#

2水準の因子を5個にしてみます。

直交表で作成したテストケースは以下のようになりました。

直交表なので、各列の水準の数は4個ずつの”同数”になっています。

比較対象として、ペアワイズ法で作成したテストケースは以下のようになりました。

直交表で生成したテストケース数は8個に、ペアワイズ法で生成したテストケース数は7個になりました。
組み合わせの条件が緩和されているので、ペアワイズ法のテストケース数の方が直交表のものよりも1個少なくなっています。

どちらを使うべきか?

#

直交表もペアワイズ法も組み合わせテストケースを効率よく生成する手法ですが、直交表の方が制約が厳しいものになっている分、テストケース数は多めに生成されます。
因子間の交互作用が無視できるケースではペアワイズ法でテストケースを生成する方がテストケース数の削減に寄与すると思いますが、交互作用が無視できない場合は直交表の利用を検討する必要があると思います。

まとめ

#

組み合わせテストケースの生成に「直交表」を使うことによって、全ての因子・水準をバランスよくカバーするテストケースを生成できることがわかりました。
PICTには他にも色々なオプションが用意されていて、PictMasterから利用可能です。
次回も別のオプションを紹介していきたいと思います。

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

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

豆蔵デベロッパーサイト - 先週のアクセスランキング
  1. 基本から理解するJWTとJWT認証の仕組み(2022-12-08)
  2. 直感が理性に大反抗!「モンティ・ホール問題」(2022-07-04)
  3. Nuxt3入門(第4回) - Nuxtのルーティングを理解する(2022-10-09)
  4. Nuxt3入門(第8回) - Nuxt3のuseStateでコンポーネント間で状態を共有する(2022-10-28)
  5. Podman Desktopがv1.0になったのでwindows版を試してみたところ、気付いたらv1.1に上がるくらいに機能豊富だった話(2023-06-09)
  6. Nuxt3入門(第1回) - Nuxtがサポートするレンダリングモードを理解する(2022-09-25)
  7. VS Code で .NET MAUI の開発環境を構築する(macOS/iOS)(2023-08-14)
  8. Pytestを使ってみる(その2:VSCode拡張機能編)(2023-03-05)
  9. GitHub Actions - 構成変数(環境変数)が外部設定できるようになったので用途を整理する(2023-01-16)
  10. 統計学で避けて通れない自由度の話(2022-06-20)