LoginSignup
2
1

More than 1 year has passed since last update.

組み合わせテストとテストツールの使い方

Posted at

組み合わせテストと組み合わせテストツール(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はこちらから利用できます。

基本的な使いかたは以下の通りです。

pict.txt
因子名:水準1,水準2,水準3

以下のコマンドで実行出来ます。

./pict.exe qiita.txt

以下の組み合わせを実行します。

qiita.txt
OS:Windows,Mac
Language:Java,PHP,Ruby
DB:SQLServer,MySQL

半角スペース区切りで出力されます。

qiita-result.txt
OS	Language	DB
Mac	PHP	MySQL
Windows	Java	SQLServer
Mac	Ruby	SQLServer
Mac	Java	MySQL
Windows	PHP	SQLServer
Windows	Ruby	MySQL

制約を加えることも出来ます。
例えば、「Macの時はSQLServerを使用しない」との制約を加えた時は以下の通りになります。

qiita.txt
OS:Windows,Mac
Language:Java,PHP,Ruby
DB:SQLServer,MySQL

# 制約
if [OS] = "Mac"
    then [DB] <> "SQLServer";

おわりに

もし間違いがありましたら、編集リクエスト又はコメントお願いします。

参考文献

2
1
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
2
1