ペアワイズ法テストケース生成ツール「PictMaster」の原型シートを使う(水準編)

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

前回はペアワイズ法テストケース生成ツール「PictMaster」の”カバレッジ指定”機能について紹介しました。
今回はPictMasterの”原型シート”機能について紹介したいと思います。

既存のテストケースを再利用する

#

ペアワイズ法を使えば複数の因子・水準からテストケースを効率よく生成できますが、網羅すればするほどテスト実行には時間も労力もかかります。
テスト対象の一部が変更になった場合に、”変更になった部分だけ”を追加でテストするテストケースを生成したい場合があります。

以下の例で考えてみましょう。

因子が a, b, c の3個で、それぞれが2水準の値を持っている場合を想定します。

2因子間網羅のテストケースは以下のようになりました。
テストケース数は合計4個でした。

次に、因子c の水準に値が1つ増えて3水準になった場合を考えてみます。
(テストを実行していると、水準の追加は意外と発生すると思います)

これまで通りの方法で2因子間網羅のテストケースを生成します。
生成されたテストケースは以下のようになりました。
テストケース数は合計7個でした。

テストケースは生成できましたが、因子cに水準を一つ追加しただけなのに、組み合わせのパターンはかなり変わってしまいました。
最初のテストケース群に登場していた
a1, b2, c1
の組み合わせは次のテストケース群には登場していません。
最初からテストのやり直しになってしまいます。

原型シートを使用して、既存テストケースに差分を追加する

#

テスト回数をできるだけ減らすために、最初に生成した4つのテストケースをそのまま流用して、追加のテストケースを生成してみましょう。

「環境設定」にて、「原型シートを使用」にチェックを入れて「OK」を押します。

因子・水準を定義したシートの右隣に新しいシートを作成します。
(PictMasterの規約で、必ず右隣に新しいシートを作成する必要があります)

作成した新しいシート(Sheet2)に、先に生成したテストケースをコピーしておきます。

原型シートを使用して2因子間網羅のテストケースを生成します。
生成されたテストケースは以下のようになりました。
テストケース数は合計6個でした。

原型シートを使用しない場合のテストケース数は7個でしたが、今回は6個になっています。
もう一つの違いとして、テストケースの上位4個と、原型シートに記述したテストケース4個と比べてみます。

今回生成したテストケース6個のうち、上位の4個(上図の赤字で示した部分)は原型シートに記述したテストケースと同じものになっているのがわかると思います。

このように、原型シートを使用すると既存のテストケースを流用しつつ、変更部分のみの新しいテストケースを追加生成することができます。
テスト環境の作成や、テストの実行時間を大幅に短縮することが可能になります。
(今回は水準のみ追加しましたが、因子を追加することも出来ます。方法はまた別の機会にご説明します)

まとめ

#

「原型シート」機能を使うことによって、既存のテストケースを流用して、変更分のみのテストケースを追加生成することができました。
PICTには他にも色々なオプションが用意されていて、PictMasterから利用可能です。
次回も別のオプションを紹介していきたいと思います。

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

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

豆蔵デベロッパーサイト - 先週のアクセスランキング
  1. 基本から理解するJWTとJWT認証の仕組み (2022-12-08)
  2. Docker+Wasm で WASM をコンテナとして実行する (2023-01-25)
  3. 自然言語処理初心者が「GPT2-japanese」で遊んでみた (2022-07-08)
  4. 直感が理性に大反抗!「モンティ・ホール問題」 (2022-07-04)
  5. Nuxt3入門(第4回) - Nuxtのルーティングを理解する (2022-10-09)
  6. AWS認定資格を12個すべて取得したので勉強したことなどをまとめます (2022-12-12)
  7. Jest再入門 - 関数・モジュールモック編 (2022-07-03)
  8. ORマッパーのTypeORMをTypeScriptで使う (2022-07-27)
  9. Nuxt3入門(第8回) - Nuxt3のuseStateでコンポーネント間で状態を共有する (2022-10-28)
  10. Nuxt3入門(第1回) - Nuxtがサポートするレンダリングモードを理解する (2022-09-25)