組み合わせテストケース生成ツール 「PictMaster」 とソフトウェアテストの話題 -49ページ目

組み合わせテストにおける「直交表」と「Pairiwise(All-Pairs)法」の違い

組み合わせテストケースの生成方法には、直交表ベースのものと、Pairiwise(All-Pairs)法ベースのものがあります。今回はこの2つの方法の違いについてまとめてみます。なお、直交表ベースのツールに「HAYST法」に基づくツールも存在しますが、一般には入手できないので、今回の比較対象には含めていないことをお断りしておきます。


(1)ツールの入手しやすさ


 直交表ベースのツールは、現時点では実用に耐えるレベルの「フリー」のツールとしては存在しないと思います。実用に耐えるレベルと言う意味は、因子が30個、水準が30個程度までのモデルを扱える。多数の因子、パラメータを指定した制約をサポートしている。これには、1つの制約で十数個程度の因子が関係する制約を含みます。こうした条件をクリアした直交表ベースのツールは有償のものも含めて存在しないと思われます。もしご存知の方がいらしたら教えていただけると助かります。
 一方、Pairiwise(All-Pairs)法ベースのツールは、その多くが米国製ですが有償、無償含めて多数存在します。実用に耐えるレベルのツールはフリーソフトですが、PictMasterでも採用している「PICT」があります。「Jenny」というパブリックドメインソフトも存在しますが、複雑な制約を指定すると、エラー終了したり、網羅されないペアが発生するなどのバグがあり、実用レベルに達していませんPICTはMicrosoft社が組み合わせテストケースの生成エンジンとして使用しており、高い信頼性を持っています。しかも無償で使用できるという特長があります。


(2)テストケース生成のしやすさ


 直交表ベースでは、一般に使用できるツールが存在しないため、手作業でふさわしい直交表を選択し、その表に因子と水準を当てはめる形でテストケースを作成する必要があります。ワンタッチで結果が得られるというわけにはいきません。複雑な制約が存在する場合は、非常に困難な作業が必要となります。場合によっては、手作業では作成不可能な事態も考えられます。
 Pairiwise(All-Pairs)法ベースでは、ツール(PictMaster)にパラメータと値を記入し、必要があれば制約指定を行ない、後は生成ボタンをクリックするだけでテストケースが生成できます。これらの作業は短時間に済ますことができます


(3)3因子網羅率の違い


 直交表ベースのツールでは、基本的に「同じ組み合わせが同一回数出現する」という性質があるため、3因子網羅率がある程度保障されます。ただし、制約の関係にある因子同士では、直交性が失われるため、これらの因子を含む3因子網羅率は大幅に低下します。また「同じ組み合わせが同一回数出現する」という性質のため、生成されるテストケース数は多くなりがちです。手作業で3因子網羅率を100%保障することは難しい作業ですが、不可能と言うわけではなさそうです。
 Pairiwise(All-Pairs)法ベースのツールでは、「同じ組み合わせが最低1回出現する」という性質があるため、生成されるテストケース数は、直交表ベースに比較して少なくなる傾向があります。その代わり、2因子網羅を満足することに集中しているため、3因子網羅率はかなり低くなります。ただし、PICTは任意の数のパラメータを組み合わせる「K-Wayテスト」をサポートしているため、指定により、3因子網羅率を100%とすることも可能です。ただし、この場合のテストケース数は2因子を網羅する通常の場合と比較して、かなり増加することになります。またPICTでは任意のパラメータのみ異なるパラメータ組み合わせ数とすることもできます。


以上、3点について簡単に比較しましたが、Pairiwise(All-Pairs)法ベースでは、PICT(PictMaster)というフリーのツールがあるため、それこそ「気楽」に組み合わせテストケースを生成することができます。直交表ベースでは、どうしても既存の表に因子と水準を当てはめる作業となるため、テストケース生成に時間がかかります。


直交表にこだわるならば、HAYST法などを基に直交表ベースのツールを開発したほうが良いと思いますが、開発にかかる工数は相当なものになりそうです。その点では、Pairiwise(All-Pairs)法ベースのツールを開発するほうがかなり工数を節約できると考えられます。Pairiwise(All-Pairs)法の考え方は、直交表ベースの考え方に比較して非常に柔軟性があり、なによりも特殊な専門用語が一切出てきません。ツールの開発も直交表ベースの場合より格段に簡単になるでしょう。

パラメータの値の個数が多いときは「制約式の最適化」をチェック

パラメータの値の個数が20個などのように多い場合、制約表で多くの値を制約で指定すると生成に非常に時間がかかる場合があります。


例えば、以下のように値が20個あるパラメータが2つあり、制約表で10個づつ値を指定するとうまくいきません。



組み合わせテストケース生成ツール 「PictMaster」 とソフトウェアテストの話題-モデル


このモデルで生成を行なおうとすると、3分ほどすると、空きのExcelファイルが生成されてしまいます。マシンのスピードにもよりますが、10分以内におかしな結果が出力されてしまうでしょう。これはPICTのメモリ不足のためだと思われます。


このような場合は、「環境設定」フォームで「制約式を最適化」にチェックを入れて生成を行なうと、1秒以内に正しい生成結果が得られます。「制約式を最適化」についての詳細はユーザーズマニュアルに記述してあります。


「制約式を最適化」では、PICTに渡すモデルファイルで制約式を別の等価な制約式に変換しています。制約式としては等価なのに生成時間に巨大な違いがでてくる理由は不明です。PICTのアーキテクチャが関係しているのだとは思いますが。


実際のテスト作業でのモデルでは、上で示したような単純なものではなく、複雑な制約が多数含まれたものになります。そのため、「制約式の最適化」の機能も「劇的な時間短縮」ということはあまりなく、通常は4分かかるところが3分ですむ、とかいった程度のものが多いのかもしれません。

それでも「制約式の最適化」は、値の個数が多い場合は、たいていの場合、時間短縮の効果はあると思います。


PictMaster 4.0.2 をリリースしました。

PictMaster 4.0 からの障害ですが、値が「全角の数字」の場合、制約表で指定すると、PICT でエラーとなる障害を修正したバージョン 4.0.2 をリリースしました。


以下のサイトからダウンロードすることができます。


http://sourceforge.jp/projects/pictmaster/



制約表で値に全角の数字を指定すると PICT でエラーとなる

PictMaster v4.0 以降で、制約表に値として全角の数字を指定すると、PICTで 値のタイプが文字列なのにダブルクオーテーションで囲まれていない としてエラーとなってしまいます。




この障害を修正したバージョンを近いうちにリリースする予定です。



組み合わせテストケース生成ツール PictMaster 4.0.1 をリリースしました。

Pairwise法(All-Pairs法)を採用した組み合わせテストケース生成ツール PictMaster 4.0 から若干の機能改善を行なったバージョン PictMaster 4.0.1 をリリースしました。

PictMaster 4.0 からの主な変更点は以下の通りです。

2010.4.12 Ver. 4.0.1

【機能改善】
・逆制約を指定するシャープ(#)と値との間にスペースがあってもエラーとしないようにした。
・制約表または結果表が表示されている状態で、環境設定のフォームのOKボタンをクリックしても、表示されている制約表または結果表の表示行数をデフォルトの15行に戻さないようにした。(ユーザが指定した表示行数が維持される)

【その他】
・パラメータ欄および結果表のパラメータ欄のプロパティを「折り返して全体を表示する」にチェックを入れた。(行の高さを調節することで長いパラメータ名も全体を表示可能)
・生成結果のセルの形式をテキストに変更したため、セル内容が数値のときにExcelのエラーマークが表示される場合の対処法をユーザーズマニュアルに追記した。

PictMaster 4.0.1 は以下のサイトからダウンロードすることができます。

http://sourceforge.jp/projects/pictmaster/