3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Excelで組合せテストを自動生成:PictMasterの使い方まとめ(ペアワイズ/制約表/結果表)

Last updated at Posted at 2026-01-25

1. はじめに

  • PictMasterは、因子×水準を整理したあとに ペアワイズ(2因子間網羅) などで組合せテストケースをExcel上で生成できるツールです。
  • 本記事では インストール → 基本の使い方 → 制約表/結果表(実務で効く) まで、コピペ例つきでまとめます。
  • 「組合せが爆発する」「ありえない組合せを除外したい」「期待結果も一緒に作りたい」人向けです。

テスト観点レビューの場で、こんな不安を感じたことはありませんか?

  • 「これ、漏れてない…?」と自信が持てない
  • 条件の組合せを考え始めると、ケース数が膨大になって詰む
  • 因子・水準・ペアワイズは知ってるけど、実務でどう落とすかが難しい

私自身ずっとこのモヤモヤがあり、テスト設計の講座を受講したところ PictMaster を知りました。

PictMasterでできること

  • ✅ 因子・水準を入力するだけで、ペアワイズ等の組合せテストケースを自動生成
  • ✅ 制約表で「ありえない組合せ」を除外
  • ✅ 結果表で期待結果(結果内容)を自動入力

この記事が、観点の整理やレビューの不安を少しでも減らす助けになればうれしいです。

2. 前提知識:因子と水準ってなに?

2-1. 因子とは?

  • テスト結果に影響を与える「条件の切り口」 のこと
  • 👉「何が変わると、システムの動きが変わりそうか?」
    • 例:性別、年齢、ロール等

2-2. 水準とは?

  • その因子が取りうる具体的な値(選択肢) のこと
    • 例:女性/男性/それ以外/成人/成人以外/管理者/一般

2-3. 因子・水準の具体例

例として「会員向けWebサービスの検索機能」を考えてみます。

因子①:ユーザー権限

  • 水準:
    • 一般ユーザー
    • 管理者

因子②:期間状態

  • 水準:
    • 開始前
    • 期間内
    • 期限切れ

因子③:入力内容

  • 水準:
    • 正常値(同値分割の代表値)
    • 境界値

2-4. なぜ組合せは増えるの?

さきほどの例をすべて組み合わせると

  • ユーザー権限:2
  • 期間状態:3
  • 入力内容:2

2 × 3 × 2 = 12ケース

因子が増えると、あっという間に数十・数百ケースになります。
そこで出てくる考え方が ペアワイズ(2因子間網羅) です。

2-5. ペアワイズ(2-way)とは?

任意の2因子の組合せが、少なくとも1回は登場するように テストケースを削減する方法です。「多くの不具合は、2つの条件の組合せで起きやすい」という経験則をもとにしています。

ペアワイズのイメージ(例)

さきほどの12ケースを、ペアワイズで削減すると、例えば以下の6ケースでも成立します。

No ユーザー権限 期間状態 入力内容
1 一般 開始前 正常値
2 一般 期間内 境界値
3 一般 期限切れ 正常値
4 管理者 開始前 境界値
5 管理者 期間内 正常値
6 管理者 期限切れ 境界値

この6ケースで、

  • ユーザー権限 × 期間状態
  • ユーザー権限 × 入力内容
  • 期間状態 × 入力内容

のすべての組合せが最低1回は出現します。

3. PictMasterとは?

PictMasterは、

  • Excel上で因子と水準を入力すると
  • ペアワイズなどの組合せテストケースを
  • 自動生成してくれるツール

です。

内部では組合せ生成エンジン(PICT / CIT-BACH)を使っていますが、
利用者は細かいことを意識せず、Excel操作だけでOKなのが導入しやすいポイントだと思います。

4. インストール手順

4-1. 用意するもの

PictMasterは Windows + Excel(マクロ有効) を前提にしたツールです。

  • OS:Windows
  • Excel:Excel 2007以降(Excel 2003以前は不可)
  • マクロが実行できる設定であること

4-2. PICT.exe を配置する

  • エクスプローラーで以下のフォルダを作成
    • C:\Program Files (x86)\PICT
  • 事前にダウンロードしたPICT.exeをその上記フォルダ直下に置く

補足:
Program Files (x86) 配下は管理者権限が必要なことがあります。
コピーで弾かれる場合は、管理者権限のある端末/アカウントで実施してください(マニュアル上はこの場所がデフォルト前提です)。

4-3. PictMaster本体(xlsm)を配置

  • PictMaster x.x.zipを解凍し、PictMaster.xlsm or PictMaster64.xlsmを任意の場所へ配置する。
    image.png

補足:
PictMasterはExcelのビット数によって使用するファイルが異なります。
Excelが32bitなら PictMaster.xlsm、64bitなら PictMaster64.xlsm を使用してください。
(確認方法:Excel →「ファイル」→「アカウント」→「Excelのバージョン情報」)

4-4. 同梱ツール一式を PICTフォルダへコピー

  • 展開した zip 内の以下を、C:\Program Files (x86)\PICTにコピーします。
    • nkf.exe
    • oalib
    • oalibmix
    • cit.jar(CIT-BACH)
  • 以下の通りであればOK
    image.png

4-5. (必要であれば)Javaをインストール

  • CIT-BACH を使うならJava 8以降が必要とのこと
  • なくても動作は可能

4-6. 動作確認

今回は冒頭で説明した因子・水準の具体例を基に設定します。

  • PictMaster.xlsmを開く
  • 適当なパラメータと値を入れる
    • 値はカンマ区切りで入力すること
      image.png
  • 「実行」ボタンで押下でa.xlsxが生成されることを確認(生成場所は状況により異なる)
    image.png

5. 実務編:制約表を使って、組み合わせの「ありえない」を除外する

ペアワイズは便利ですが、実務だと「その組み合わせは仕様上ありえない」が必ず出てくると思います。それを除外するのが制約表の役割です。

環境設定で 「制約表を使用」 をONにすると、制約表欄が表示され、記入が有効になります。
image.png
↓ 制約表が追加される
image.png

5-1. 制約を書いてみる

条件(if側)を書く場所

  • 条件にしたいセルを “白以外の色” で塗る
    • そのセルに書いた値/パラメータが制約条件(if側)になります

対象(then側)を書く場所

  • 対象にしたいセルは塗らない(白のまま)
    • そのセルに書いた値/パラメータが 制約対象(then側) になります

「ありえない」を除外する書き方

  • 除外したい値はセル先頭に#を付けます。
  • #は「その値“以外”」=逆制約(NOT)を示します

具体例:一般ユーザーでは「管理画面」に入れない

パラメータが以下の通りだとします。
image.png

制約1列に以下の通り入力します(※ “色つき” が条件、白が対象):

パラメータ(行) 制約1に入れる値
権限 色つき一般
画面種別 (白)#管理

image.png

これで以下の意味を満たすことができます。
if ユーザー権限=一般 then 画面≠管理(=一般×管理画面の組合せが生成されない)

✅ 生成された組合せ表に「一般×管理」がでてこないことを確認
image.png

5-2. よくある指定:複数値(OR)と複数条件(AND)

OR(同じパラメータで複数値)

  • 1つのセルに カンマ区切りで書くとOR条件になる
    • 例:画面で「管理, 監査」が両方だめなら#管理,監査と入力

AND(条件を2つ以上にしたい)

  • 同じ制約列の中で、色つきの行を増やす(=条件セルを複数行書く)と「AかつB…」の条件になる
  • ※OR条件とAND条件を両方混ぜたいときは、マニュアル的には 制約を分けて書くのが推奨とのこと。

具体例1:一般ユーザーは「管理/監査画面」がありえない(OR + NOT)

意味:if 権限=一般 then 画面≠(管理 or 監査)
image.png

✅ 生成された組合せ表に「一般×管理/監査」がでてこないことを確認
image.png

具体例2:権限=一般 かつ メンテ中のとき、画面は「管理」がありえない(AND)

意味:if (権限=一般 AND メンテ状態=メンテ中) then 画面≠管理
image.png

✅ 生成された組合せ表に「一般×メンテ中×管理」がでてこないことを確認
image.png

具体例3:OR条件とAND条件を混ぜたい

たとえばこういう条件を作りたくなることがあります:

(権限=一般 AND メンテ中) または (権限=管理者 AND メンテ中) のとき、画面≠監査

この「OR と AND が混ざる」ケースは、制約を分けて指定してくださいとマニュアルでも書かれています。制約を以下の通り2列にして実行してみます。

image.png

✅ 生成された組合せ表に「一般×メンテ中×監査」「管理者×メンテ中×監査」がでてこないことを確認
image.png

6. 実務編:結果表を使って期待結果を自動で埋める

テストケースを生成した後、毎回「期待結果」を手で埋めるのが面倒くさい…という時に便利なのが結果表です。

結果表は「組み合わせ内容に応じて、期待する結果(結果内容)を記入する表」で、最大50行まで用意されています。
環境設定で 「結果表を使用」 をONにすると表示されます。
image.png
↓結果表が追加される
image.png

6-1. 何が嬉しいの?

  • 結果表を使うと、テストケース生成後に 各ケースの「結果内容欄」に期待結果が自動設定される
  • 生成を繰り返す(条件見直し→再生成)タイプの案件ほど、効果が大きい

6-2. 書き方のコツ

  • 結果内容欄は 1行目から詰めて記入する
  • 長文になるなら「(*1)(*2)…」の番号運用にして、欄外に詳細を書いてもOK
  • 一致条件(どの組み合わせのときにこの期待結果になるか)は、制約表と同じ考え方で値を指定できる

例:結果表(期待結果のルール)を書いてみる

結果内容(左) 権限 期間状態 入力種別
境界値入力時はバリデーションが実行される(正常/エラーいずれかの判定を確認) 境界値
管理者は監査ログが出力される(*1) 管理者
期間外のため表示制限メッセージが出る 開始前,期限切れ
正常に検索結果が表示される(デフォルト)

image.png

ポイント:

  • 1行目:境界値のときに確認したい期待結果 → 入力種別だけ指定
  • 4行目:条件が全部空欄 → 他のどれにも一致しなかった時の デフォルト

※ 一致条件が重なって「このケースに対して、結果が複数当たる」状況があると、通常は「一致条件の重複」エラーになります。このとき、結果内容の先頭を & にすると 結果内容を連結できます。(結果表は上から順番に処理されるので、& を使う行はまとめるのが安全)

✅ 生成された組合せ表の結果内容欄が想定通りであることを確認
image.png

7. 便利機能3選

7-1. エイリアス(同値っぽい値をまとめてケース数削減)

エイリアスは「完全に同一ではないけど、テスト的には同値扱いでよさそう」な値をまとめて、組み合わせ生成時の値の数を減らすための機能です。

  • 値の前に |を使うと、1つの値に複数の名称を持たせる「エイリアス」が使える
  • 特に「値の数が多いパラメータ」に適用すると、組合せ削減効果が大きい

例:ブラウザが多いので「Chromium系」をまとめたい

例えば「ChromeとEdgeは同じ系統(Chromium)なので、詳細は別の単体テストで担保する」と割り切るとします。

パラメータ 値の並び欄(入力例)
ブラウザ Chrome|Edge,Firefox,Safari
権限 一般,管理者
期間状態 開始前,期間内,期限切れ

image.png

Before
image.png

After
→ Chromium系をまとめるだけで、全体のケース数が減ります。
image.png

7-2. 無効値(~):“機能が動作しない値”を扱う

無効値は「その値だと機能が動作しない(テストとして成立しない)」ときに使います。

無効値が複数パラメータに存在すると、
普通にペアワイズすると「無効値 × 無効値」が同じテストケースに入ってしまい、残りの条件の検証ができず不完全なテストになりがちです。

そこで、無効値の前に ~ を付けると 無効値同士が同じテストケースに入らないように生成してくれます。

例:FAXの組み合わせテスト

「FAX」とは通信できない“電話機”が混ざるというような状況を想定。

パラメータ 値の並び欄(入力例)
発信端末 FAX,~電話機
通信回線 ISDN,アナログ,~IP外線
着信端末 FAX,~電話機

image.png

このようにしておくと、生成されるケースは

  • ~電話機~IP外線同じ行に同居しない
  • 「無効値があるとしても、他の条件との組合せはなるべく拾う」
    という形になります。
    image.png

7-3. 重み付け():この値を多めに出したい

重み付けは「この条件は本番で頻出」「過去障害が多い」など、
重要な値をテストケースに多めに出したいときの機能です。

例:ブラウザの頻度が Chrome に偏っているので厚めにしたい

パラメータ 値の並び欄(入力例)
ブラウザ Chrome(10),Edge,Firefox,Safari
権限 一般,管理者
期間状態 開始前,期間内,期限切れ

image.png

Chrome が他の値よりも多めに出現するようになります。
image.png

8. まとめ

講座を通して、PictMasterというツールがあることを学びました。
「因子×水準」を整理したうえで、ペアワイズ(2因子間網羅)などを使い、組合せテストを“現実的なケース数”に落とし込むための道具だと理解できたのが一番の収穫でした。

一方で、使ってみて感じたのは いちばん大切なのは「どの因子を組合せに含めるか」 という点です。
ツールがケースを生成してくれるからこそ、因子の選び方がズレると「漏れ」や「偏り」もそのまま増幅してしまうな…と思いました。

そのためにも、標準観点(よくある観点のチェックリスト)を用意しておくことが重要だと感じています。

案件をまたいで流用できるナレッジになりますし、PictMasterを使ううえでも「何を因子として切り出すか」の発想がないと観点が欠けてしまうので、今後もインプットと整理を続けたいです。

私自身まだ使い方は勉強中ですが、実務でも活用できる場面がありそうなので、少しずつ試していこうと思います。もし「PictMaster以外にもおすすめの組合せテスト支援ツール」があれば、教えてください。

本記事がお役に立ったら「いいね」や「ストック」してもらえると励みになります!

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?