組み合わせテストパターン抽出ツール PICT とは

テストエンジニアテスト手法品質保証QA

PICT とは、デシジョンテーブルを作成する際に便利なツールです。
PICT はソフトウェアテストの際のテスト条件の組み合わせを自動で生成してくれます。
条件の因子が多すぎて組み合わせパターン数を減らしたい場合も、PICT であれば、ペアワイズ法【Pairwise Testing】(オールペア法)を用いて因子の組み合わせを減らすことができます。


参考: デシジョンテーブルとは


・GitHub
Microsoft / pict

・Windows 版(MSI イメージ)
http://download.microsoft.com/download/f/5/5/f55484df-8494-48fa-8dbd-8c6f76cc014b/pict33.msi

モデルファイルの作成
生成する組み合わせパターンに対する因子(テスト条件)と水準(条件の内容)を以下のフォーマットで作成します(モデルファイル)。

# 因子(テスト条件、Factor): 水準(条件の内容、Level) (#はコメント行)
Factor1: Level1, Level2, Level3
Factor2: Level1, Level2, Level3
Factor3: Level1, Level2, Level3

作成したモデルファイルを PICT のコマンド引数に渡すと、以下のように結果を表示してくれます。

>pict pict-model.txt
Factor1 Factor2 Factor3
Level1  Level1  Level1
Level1  Level3  Level2
Level3  Level1  Level3
Level2  Level1  Level2
Level3  Level2  Level1
Level2  Level2  Level3
Level1  Level2  Level2
Level2  Level3  Level1
Level1  Level3  Level3
Level3  Level3  Level2

上記の例(因子数3、水準数3)ですと、組み合わせパターン数は通常、3x3x3 = 27 通りになりますが、PICT によって 10 通りに減らすことができました。
組み合わせのパターンを見るとわかりますが、ペアワイズ法によって必ず2つの因子間で組み合わせが総当たりとなっています。

ペアワイズ法の組み合わせ


ちなみに組み合わせ強度を変更する場合は、以下のオプションでできます。

>pict pict-model.txt /o:3 # /o:n で強度 n

上の例、強度 3 は 3 つの因子間で組み合わせが総当たりになります。
強度を上げるほどにパターン数は増え、総当たり数に近づきます。
組み合わせパターン数がどれくらいになるかなどの情報を見たい場合には、以下のオプション。

>pict pict-model.txt /s
Combinations:   27 # 総当たりの組み合わせパターン数
Generated tests:10 # 生成される組み合わせパターン数
Generation time:0:00:00



様々な条件付け
PICT では組み合わせに様々な条件をつけることができます。
pict.md で示されている例からいくつかピックアップしてみました。
=、<>、>、>=、<、<=、LIKEが使えます。

# 因子と水準
Type:           Primary, Logical, Single, Span, Stripe, Mirror, RAID-5
Size:           10, 100, 500, 1000, 5000, 10000, 40000
Format method:  quick, slow
File system:    FAT, FAT32, NTFS
Cluster size:   512, 1024, 2048, 4096, 8192, 16384, 32768, 65536
Compression:    N/A, on, off

# 無条件制約【Unconditional Constraints】
[Size] < 10000;
[Compression] = "OFF";
[File system] like "FAT*";

条件付き制約【Conditional Constraints】
条件に合致したときのみ THEN 以降の制約がかかります。

# IF文、等号・不等号
IF [File system] = "FAT" THEN [Size] <= 4096;

# IN演算子
IF [File system] in {"FAT", "FAT32"} THEN [Compression] = "Off";

# 前方・後方・部分一致
IF [File system] like "FAT*" THEN [Compression] = "Off";

# IF-THEN-ELSE構文、AND・OR論理演算子、括弧
IF [File system] <> "NTFS" OR ([File system] = "NTFS" AND [Cluster size] > 4096)
THEN [Compression] = "Off"
ELSE [Compression] = "N/A";



PICT を利用したデシジョンテーブルの作成フォーム
PICT のモデルファイルを送信すると出力結果やデシジョンテーブルを作成するフォームを作ってみました。

デシジョンテーブル自動生成(PICT を利用したサンプル)

コメント