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

Jennyの間接制約を検出する機能について

AllPairIIは、組み合わせ生成エンジンにJennyを使用することができます。 このJennyには、PICTにはない機能で間接制約を検出することができます。間接制約とは、制約表で明記された制約の結果、副次的に発生する制約のことです。まれに間接制約のために、必要な組み合わせが生成結果に現れないという問題があります。このことについては、AllPairIIのマニュアルに詳しい説明があります。

環境設定フォームで「間接制約を表示」にチェックを入れることでJennyの検出機能がオンになります。


ここでは、問題のない間接制約の例をあげてみます。モデルと制約表が以下の場合とします。


モデル

モデルの例

制約表
制約表の例

この生成結果は以下のとおりとなります。


生成結果

組み合わせ生成結果


これと同時に以下のメッセージが表示されます。


間接制約により組み合わせに現れない値のペア


パラメータB:Bの値その1 + パラメータC:Cの値その3
パラメータB:Bの値その1 + パラメータC:Cの値その2


このメッセージは、間接制約のためにパラメータBの値その1と、パラメータCの値その2およびその3の組み合わせが生成結果に現れていないという警告です。


制約表の図をよく見てもらうと分かると思いますが、パラメータBの値が「Bの値その1」のときは、パラメータCの「パラメータCの値その2」と「パラメータCの値その3」は、組み合わせに現れない制約表となっています。


ここで、『パラメータBの値が「Bの値その1」のときは、パラメータCの「パラメータCの値その2」と「パラメータCの値その3」は、組み合わせに現れない』という制約が制約表に明記されていないため、間接制約となり、警告メッセージとなったものです


この例の間接制約は、組み合わせに現れなくても問題のないものです。間接制約の大部分はこの例と同じように問題のないものです。ただし、ごく一部の間接制約はマニュアルに書かれているような対策が必要なものがあります。


それでは、また。




PICTとJennyの使い分け

AllPairIIは、生成エンジンにPICTとJennyを使用できますが、それぞれのエンジンの使い分けはどのようにしたらよいでしょうか。

基本的には、値の重み付け、原型シート、サブモデルなどを使用しない場合、PICTとJennyでそれぞれ最少テストケース生成を実行し、より少ないテストケース数となった組み合わせ結果を採用する、という使い方がよいでしょう。

値の重み付け、原型シート、サブモデルなどを使用したい場合は、PICTだけを使用することになります。

PICTは機能が豊富ですが、組み合わせ対象のモデルによっては、組み合わせ生成に時間がかる場合があります。極端な場合は何日かかっても完了しない場合もあります。

Jennyは機能面ではPICTより劣りますが、制約で指定する値が多い場合でも数秒で組み合わせ生成が完了し、PICTのように長い時間がかかるということはありません。このような場合はJennyを使用することになります。組み合わせ生成時間の関係でJennyだけを使用する場合も、少ないですがあると思います。

または、PICTでは組み合わせ生成に時間がかかるため、1回だけの生成とし、Jennyでは最少テストケース生成を行なう、といった使い方も考えられます。

組み合わせ対象のモデルに合わせて生成エンジンの使い分けを行なったほうがよいでしょう。

それでは、また。


AllPairIIとPictMasterの既知の問題

AllPairIIの既知の問題点をお知らせします。

・不要なエラーメッセージが表示される場合がある
 生成エンジンがJennyの場合のみ、環境設定で「制約表を使用」をチェックしていない(制約表が表示されていない)状態で、パラメータが記入されたパラメータ欄に対応する制約表のパラメータ欄に空白の欄があると、「○○行目のパラメータ欄に記入がありません」とのエラーメッセージが表示される場合がある。

このバグへの対処は、制約表で制約が記入された制約欄をすべてクリアすることでエラーメッセージが表示されないようにすることができます。

同じ条件でエラーメッセージが表示されなくなる場合もあるので、外部変数の初期化の問題なのかもしれません。このバグは次のメジャーバージョンアップ時に対処します(バージョンアップまで時間がかかります)。

PictMasterの最新バージョン2.7.2には以下の問題点があります。

・値の大小比較ができない
 演算子に <、> を用いた値の大小比較を行なうと、値が未定義というエラーメッセージが表示される。

・生成結果の並び替えでエラーとなる
 整形ボタンを使用した値の並び替えで、パラメータの数が最大の30個の場合、行番号が付加された生成結果の30個目のパラメータを最優先するキーに指定して整形を実行するとVBAのエラーとなる。このバグは以前のバージョンからのものです。


PictMasterは、AllPairIIがリリースされたため、バージョンアップは行ないません
AllPairIIでは、これらのバグは修正されています。

AllPairIIを使用して、もしバグらしき問題を見つけた方はコメントをしていただけると助かります。

それでは、また。

新組み合わせテストツール「AllPairII」リリースのお知らせ

従来の組み合わせテストツールPictMasterをもとにした新しいツール AllPairII をリリースしました。
組み合わせ生成エンジンに従来のPICTの他に、Bob Jenkins 氏作成のフリーソフト Jenny を追加しました。

JennyはPICTとは対照的な特性をもった生成エンジンで、機能はPICTほど豊富ではありませんが、PICTでは組み合わせ生成に何日もかかるほど多くの値を含む制約のあるモデルでも数秒で完了してしまいます

AllPairII のPictMasterと比較した主な相違点は以下のとおりです。

・組み合わせ生成エンジンとして「Jenny」を追加し、ユーザが PICTかJennyのどちらかを選べるようにした。
・Jennyの機能である、明示的に指定されない「間接制約」のチェック機能に対応した。
・Jenny使用時でも値のエイリアス機能が使用できるようにした。
・通常の1回のみの生成でも、生成にかかった時間などの生成情報を表示できるようにした。
・扱えるパラメータ数、値の数、制約数をより多くした。

AllPairII とPictMasterとで外観上の大きな違いはありません。

AllPairII はPictMasterとおなじ以下のサイトからダウンロードすることができます
https://sourceforge.jp/projects/pictmaster

それでは、また。

新ツールリリース後も、このブログで記事掲載を続けます

以前の記事で、新しいブログで記事掲載を行なうと書きましたが、今までの記事の移行ができない、PICTとも関係する、などの理由で新ツールリリース後もこのブログ、正確にはこのURL、で記事掲載を続けることに訂正します。

新しいツールはPictMasterをもとにした派生ソフトにあたりますが、生成エンジンにJennyも使うので、新ツールの名称は「PictMaster」のままではうまくありません。ブログのタイトルは、今までのタイトルとは異なるものに変更します。新ツールの名称がタイトルに含まれますが、新ツールの名称はリリース当日にお知らせします

それでは、また。