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 のコマンド引数に渡すと、以下のように結果を表示してくれます。
# /o:n で強度 n
>pict pict-model.txt /o:2
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 通りになりますが、組み合わせ強度の変更により 10 通りに減らすことができました。
組み合わせ強度 2 /o:2
は、ペアワイズ法によって必ず2つの因子間で組み合わせが総当たりとなっています。
強度 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 を利用したサンプル)
コメント