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

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

前回はペアワイズ法テストケース生成ツール「PictMaster」の”制約表”について紹介しました。
今回はPictMasterの”エイリアス”機能について紹介したいと思います。

Contents

テスト水準のいくつかが同一(同値)とみなせる場合

#

2因子網羅を効率よく生成するペアワイズ法ですが、水準データのいくつかについて全く同一とは言えないがほぼ同一(同値)ということができる場合、それらを”同一の値(同値)”とみなしてテストケースを生成し、全体のテストケース数を削減したい場合があります。

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

今回は、上記のOS因子の水準を

Windows8, Windows10, Linux, macOS

とします。
つまり

・OS (Windows8, Windows10, Linux, macOS)
・ブラウザ (Firefox, Chrome)
・Java (バージョン8, バージョン11)

です。

このままPICTで2因子網羅のテストケースを生成すると、Windows8 と Windows10 の両方を”満遍なく”含んだテストケースが生成されます。

上表で灰色に網掛けした部分のテストケースでは、Windows8とWindows10の両バージョンがそれぞれ”2因子網羅”の組み合わせとして現れています。

今回はテストケース生成の条件として以下を加えることにします。
「Windows8とWindows10はテスト環境として差がない(同値とみなす)」

上記の条件を加えた場合、重複している同値のテストケースは削減可能です。

同値のテストケースの削減方法は以下のような手順で実行されます。
Windows8, Windows10を別名(”Windows”のような)で処理しておいて、組み合わせテストケース展開後にそれぞれの実名(Windows8, Windows10)の値を割り当てれば良いわけです。
別名・実名の変換はPictMaster(PICT)が自動で行ってくれます。

それではPictMasterを使ってテストケースを作ってみましょう。

エイリアスの設定

#

PictMasterのパラメータ/値シートに以下のようにデータを設定します。

・OS (Windows8 | Windows10, Linux, macOS)
・ブラウザ (Firefox, Chrome)
・Java (バージョン8, バージョン11)

OSの値の部分は次のように記述します。
Windows8 | Windows10, Linux, macOS

このように Windows8 と Windows10 の値を「|」(パイプ)で連結することで、2つの値を1つとして認識させることができます。
PictMasterではこの機能を「エイリアス」と呼んでいます。

この設定でテストケースを生成すると以下の結果が出力されました。

このようにWindows8とWindows10はそれぞれ1回しかテストケースに登場しませんが、このように”Windows8”と”Windows10”を同値として、それぞれを”Windows”と読み替えると、2因子網羅のテストケースが生成されていることがわかります。

エイリアスの数よりも実際に当てはめる値の数が多い場合

#

テストケースを同値でまとめることができるエイリアス機能はとても便利ですが、一つ注意点があります。
生成されるテストケースに含まれる別名(エイリアス)の数よりも、実際に当てはめる実名(割り当てる値)の数が多い場合には、実名(割り当てる値)のいくつかがテストケース上に現れません。
そもそも同値と仮定しているので問題ないといえば問題ないのですが、このような現象が発生することを知っておかないと余計な混乱を招くでしょう。

例えば、OS因子に”Windows7”という水準を同値として追加してみます。
因子・水準は以下のようになります。

・OS (Windows7 | Windows8 | Windows10, Linux, macOS)
・ブラウザ (Firefox, Chrome)
・Java (バージョン8, バージョン11)

生成されるテストケースは以下のようになりました。

全体のテストケース数に変更はありませんが、テストケース上に”Windows10”という値が現れなくなりました。
”Windows10”は同値とみなされたため削除されたのです。

まとめ

#

「エイリアス」機能を使うことによって、同値を効率的にまとめた組み合わせテストケースを生成することが出来ました。
しかし、同値が多すぎるとテストケース上に現れなくなる値も存在することを念頭に置いておかなければなりません。
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)