組み合わせテストと組み合わせテストツール(pict)について簡単に説明します。
組み合わせテスト
複数の入力条件を組み合わせてテストすること。
二因子間網羅
全ての組み合わせをテストするのが理想だが、限らた時間の中全てのテストを行うのは不可能である。
そこでテストの質を落とさずに、テストケースを考える為に二因子間網羅を使用する。
二因子間網羅を理解する上で、因子と水準を知っておく必要があります。
因子は、入力項目です。
水準は、因子がとりうる値です。
例は以下の通りです。
因子 | 水準 |
---|---|
OS | Windows、Mac |
言語 | c#、Java |
二因子間網羅は、二つの因子の組み合わせを網羅することです。
二因子間網羅は以下の表になります。
因子1 | 因子2 | 因子3 | |
---|---|---|---|
1 | 1 | 1 | 1 |
2 | 1 | 2 | 2 |
3 | 2 | 1 | 2 |
4 | 2 | 2 | 1 |
[因子1,因子2],[因子1,因子3],[因子2,因子3]のどの組み合わせをとっても、[1,1],[1,2],[2,1],[2,2]の4つの組が網羅されます。
全網羅だと8パターンですが、二因子間網羅により4パターンに削減することが出来ます。
直交表とペアワイズ法
- 共通すること:二因子間網羅である
- 直交表の特徴:
- 均衡を意識するため、ペアの回数が均一になる。
- ペアワイズ法より組み合わせが多くなる。
- ペアワイズ法
- 均衡を意識しないので、ペアの回数が均一にならない。
- 直交表よりも組み合わせが少ない。
pictの使い方
因子と水準が大きくなると、自分で組み合わせを考えるのは大変になると思います。
一般的には組み込みテストツールを使って、組み合わせを考えます。
エクセルで使えるPictMasterというツールがあるのですが、自分の環境ではマクロが起動しなかったのでpictを紹介します。
pictはこちらから利用できます。
基本的な使いかたは以下の通りです。
因子名:水準1,水準2,水準3
以下のコマンドで実行出来ます。
./pict.exe qiita.txt
以下の組み合わせを実行します。
OS:Windows,Mac
Language:Java,PHP,Ruby
DB:SQLServer,MySQL
半角スペース区切りで出力されます。
OS Language DB
Mac PHP MySQL
Windows Java SQLServer
Mac Ruby SQLServer
Mac Java MySQL
Windows PHP SQLServer
Windows Ruby MySQL
制約を加えることも出来ます。
例えば、「Macの時はSQLServerを使用しない」との制約を加えた時は以下の通りになります。
OS:Windows,Mac
Language:Java,PHP,Ruby
DB:SQLServer,MySQL
# 制約
if [OS] = "Mac"
then [DB] <> "SQLServer";
おわりに
もし間違いがありましたら、編集リクエスト又はコメントお願いします。