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

各因子の水準数がばらついていると3因子網羅率は向上する

前回は各因子の水準数が等しい場合を取り上げました。今回は各因子の水準数がばらついている場合を取り上げます。各因子の水準数がばらついていると、テストケース数は最も多い水準数と次に多い水準数をかけた数になる場合が多い傾向となります。この結果、水準数の少ない因子同士の3因子網羅率は100%に近づくことになります。


最初の取り上げる例は、因子数が5、各因子の水準数は7,5,3,3,3です。テストケース数は35件です。この表で、3因子の組み合わせとは5因子で可能な任意の3因子の組み合わせをすべて書き出したものです。組み合わせ数とは3因子の組み合わせで取りうる各水準同士の可能な組み合わせの合計数です。


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


合計と平均は、組み合わせ数の合計とこのモデル全体での3因子網羅率を表しています。各3因子の組み合わせの3因子網羅率はExcelのピポッドテーブルにより求めたものです。


全体に対する3因子網羅率の割合とは、各3因子の組み合わせ網羅率がこのモデル全体の3因子網羅率のうちの何パーセントを占めているかを表しています。この値は、組み合わせ数÷合計組み合わせ数×3因子網羅率で求めたものです。例えば、3因子の組み合わせが A、B、C の場合、組み合わせ数は105です。組み合わせ数の合計は666なので105÷666=0.158となり、これに3因子網羅率33%をかけると5.2%となります。これをすべての3因子の組み合わせに対して求め、その合計がこのモデルでの平均の3因子網羅率となります。平均というのは各3因子の組み合わせで3因子網羅率が異なるためです。各3因子の水準数が異なればそれぞれの3因子網羅率も異なることになります。


このモデルの平均3因子網羅率は43%となりました。因子A、Bを含む3因子網羅率は33%と少ないですが、水準数が3の因子C、D、Eの3因子網羅率は74%と多くなっています。テストケース数が35件ですから水準数が3の因子が3つであれば組み合わせ数が3×3×3=27なので、3因子網羅率は100%となってもよいはずですが、3因子の組み合わせで同じ組み合わせが含まれるため100%とはなりません。


次によりばらつきが大きい例を示します。因子数が同じ5、各因子の水準数は7,5,2,2,2です。テストケース数は同じ35件です。


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


このモデルでは平均の3因子網羅率が64%となりました。各3因子の組み合わせの3因子網羅率がすべて最初の例を上回っています。このように各因子の水準数の最大と最小の差が大きければ3因子網羅率は向上することになります。また水準数が少ない因子については、平均の3因子網羅率よりもかなり多い3因子網羅率になることが見てとれます。


これまでモデル全体の平均3因子網羅率についてはさかんに取り上げられてきましたが、水準数が異なる因子の組み合わせで、異なる因子の組み合わせ別の3因子網羅率については取り上げられることがなかったように思います。

各因子の水準数が等しいと3因子間網羅率は最も少ない

Pairwise法(All-Pair法)における3因子間網羅率は、各因子の水準数の違いにより大きく異なります。各因子の水準数が等しい場合、3因子間網羅率は最も少なくなります。Pairwise法(All-Pair法)では、生成されるテストケース数が最も少なくなるように組み合わせを生成します。そのために2因子間網羅率は100%となりますが、3因子間網羅率はどうしても少なくなる傾向になります。3因子間網羅率が多くなるためには生成されるテストケース数がより多くなければなりません。


例として5因子5水準での3因子の組み合わせと、3因子間網羅率を次に示します。この例ではテストケース数は32となりました。


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

3因子の組み合わせの違いには関係なくいずれの組み合わせでも3因子間網羅率は25%です。もしもこのテストケース数が2因子の組み合わせ数 5×5=25 となるならば、そのときの3因子間網羅率は 1/5=20%となります。しかし、このモデルではテストケース数を25に収めることは不可能であるため、32件となり、テストケース数が増加した分だけ3因子間網羅率が20%から25%に増加しています。


次にもう一つ例を上げましょう。5因子3水準の例です。この例ではテストケース数は12件となりました。


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

この例では3因子間網羅率は44%となりました。当然のことですが水準数が多い組み合わせより、水準数が少ない組み合わせの3因子間網羅率は増加することになります。この例では、テストケース数が2因子の組み合わせ数 3×3=9であるならば、そのときの3因子間網羅率は 1/3=33%となります。しかし9件に収めることは不可能なため、12件となり、テストケース数が増加した分だけ3因子間網羅率が33%から44%に増加しています。

3因子の組み合わせのばらつきはどうでしょうか。5因子5水準でのExcelのピポッドテーブルの例を次に示します。

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


このテーブルの右上と下の「総計」の数字が、3因子の各水準の組み合わせ出現数を意味しています。それぞれ、6,7,7,6,6 と 7,6,6,8,5 とばらついています。3因子の各水準の組み合わせ出現数の平均は右上と下ともに6.4となります。3因子の組み合わせの出現の表が5×5×5=125の升目で示されています。「1」がある組み合わせが3因子の組み合わせが網羅されていることを表しています。この表をみると、3因子の特定の組み合わせとは無関係に3因子間網羅は、ほぼランダムであるように見えます。


Pairwise法(All-Pair法)では、すべての因子の水準数が等しい場合、3因子間網羅率が最も低下します。逆にいえば、各因子の水準数が異なる場合、3因子間網羅率は向上することになります。


なお、ここで示した結果は一例であり、PICTが採用しているヒューリスティック手法というアルゴリズムの性質により、同じ条件でテストケースを生成しても、同じ結果になるとは限りません。また、3因子間網羅率はおおよその値です。


直交表とPairwise法(All-Pair法)の3因子間網羅率を比較する 【11月5日更新】

組み合わせテストの方式にはよく知られているように、直交表を利用するものとPairwise法(All-Pair法)を利用するものがあります。これから数回に分けて、直交表と比較するかたちでPairwise法(All-Pair法)の3因子間網羅率の特徴について調べてみたいと思います。Pairwise法(All-Pair法)には多くのアルゴリズムがあります。アルゴリズムの違いによって生成されるテストケースに違いが出ますが、3因子間網羅率に関してはその違いはそれほど大きなものではないと考えられます。ここではPICTで採用しているヒューリスティック法を用いることにします。Pairwise法(All-Pair法)でのテストケース生成はPICT(PictMaster)を利用します。


Pairwise法(All-Pair法)に比べて、直交表が3因子間網羅率の高い組み合わせとなることはよく知られています。では実際に具体的なモデルを用いてどのような違いがあるのか調べてみましょう。なお、直交表方式とPairwise法(All-Pair法)では、使用する用語に違いがあるので、このテーマでは直交表で用いられている用語で統一することにします。


最初に取り上げるモデルは、2水準の因子が7つあるものとします。この直交表をL8(27)と表記します。この場合、直交表の組み合わせは表1(*1)の通りとなります。テストケース数は8件です。一方、Pairwise法(All-Pair法)で生成される組み合わせは表2の通りとなります。テストケース数は6件です。一般的にPairwise法(All-Pair法)は直交表方式よりも生成されるテストケース数が少なくなると言われています。


表1.L8(27)の直交表
組み合わせテストケース生成ツール 「PictMaster」 とソフトウェアテストの話題-表1


表2.Pairwise法(All-Pair法)による2水準7因子の生成結果
組み合わせテストケース生成ツール 「PictMaster」 とソフトウェアテストの話題-表2


次に生成されたテストケースの3因子間網羅率を比較してみましょう。Excelのピポッドテーブルの機能を使うことで簡単に3因子網羅率を求めることができます。ピポッドテーブルの使い方はWeb上にたくさんありますからそれを参考にしてください。重要な点として、組み合わせ結果に新しい列としてすべての値が1のDATA列を追加する必要があります。


直交表での3因子間網羅率は100%となりました。Pairwise法(All-Pair法)では75%という結果となりました。


次に3因子間網羅での組み合わせのばらつき度合いを調べることにします。Excelのピポッドテーブルで直交表とPairwise法(All-Pair法)の組み合わせを表した結果を表3表4に示します。


表3.直交表の組み合わせのピポッドテーブル
組み合わせテストケース生成ツール 「PictMaster」 とソフトウェアテストの話題-表3


表4.Pairwise法(All-Pair法)の組み合わせのピポッドテーブル
組み合わせテストケース生成ツール 「PictMaster」 とソフトウェアテストの話題-表4


ピポッドテーブルの見方は次の通りです。行ラベルは因子1と3の水準組み合わせであり、列ラベルは因子5の水準です。この表だけではどの因子の組み合わせであるかわ分かりませんが、ピポッドテーブルのフィールドリストというリストを用いて因子の組み合わせを選択します。この表の行と列で構成される組み合わせは、2水準の因子が3つですから、2×2×2×=8個となります。直交表の表3では8個の組み合わせがすべて網羅されていることが分かります。Pairwise法(All-Pair法)の表4では6個の組み合わせであり、このことから3因子間網羅率は、6÷8=75%となります。ピポッドテーブルでどんな3つの因子を選んでも、3因子間網羅率は基本的に同じになるという性質があります。注意点として、Pairwise法(All-Pair法)では3つの因子の選び方によって同じ組み合わせが2つ以上生じる場合があります。この場合は、重複した組み合わせ数を全体の組み合わせ数から減算する必要があります。


これまでの結果から、少なくともこのモデルでは、Pairwise法(All-Pair法)がより少ないテストケースを生成するが3因子間網羅率は少なく、直交表方式ではテストケース数は多くなるが3因子間網羅率が100%のテストケースとなる、ということが言えます。また直交表では、3因子間の組み合わせが因子の違いにかかわらず水準間で同じ網羅度になりますが、Pairwise法(All-Pair法)では、異なる因子の組み合わせでは水準間での組み合わせ網羅度にばらつきがでることが分かります。


ここまでは、直交表とPairwise法(All-Pair法)について一般的に言われていることと同じ結果となりました。こんどは別のモデルを用いてみましょう。2水準の因子が1個、4水準の因子が9個あるモデルとします。直交表L32(21×49)という表(*2)を用いることにします。直交表の組み合わせとPairwise法(All-Pair法)の生成結果を表5表6に示します。

表5.L32(21×49)の直交表
組み合わせテストケース生成ツール 「PictMaster」 とソフトウェアテストの話題-表5


表6.Pairwise法(All-Pair法)による2水準1因子4水準9因子の生成結果
組み合わせテストケース生成ツール 「PictMaster」 とソフトウェアテストの話題-表6


テストケース数は直交表では32件、Pairwise法(All-Pair法)では28件となりました。3因子間網羅率には水準数の違う因子を含めた場合と含めない場合で違いがあります。それぞれの組み合わせでの3因子間網羅率を表7に示します。


表7.組み合わせる水準の違いによる3因子間網羅率

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

直交表では2水準の因子を1つ含む3因子間網羅率が100%となります。Pairwise法(All-Pair法)では66%です。Pairwise法(All-Pair法)では、3因子の組み合わせによっては同じ組み合わせが2つ以上含まれることがあります。この重複した3因子の組み合わせはそのうちの1つの組み合わせのみを網羅率のカウントに含める必要があります。4水準のみの3因子間網羅率は直交表とPairwise法(All-Pair法)とでそれほど大きな違いはありません。平均の3因子間網羅率では直交表が54%、Pairwise法(All-Pair法)が45%という結果です。


これまでの例からは、直交表とPairwise法(All-Pair法)の3因子間網羅率の性質として次のことが言えるでしょう。


Pairwise法(All-Pair法)よりも直交表の3因子間網羅率が高い
Pairwise法(All-Pair法)では3因子間網羅の組み合わせに水準によってばらつきがあるが、直交表ではばらつきがない
テストケース数はPairwise法(All-Pair法)が直交表より少ない


いずれもこれまでに言われてきたことと同じ結果となりました。ただこの結果は、こうした結果となるモデルを選択したからだ、と言うこともできます。直交表ではモデルの因子数と水準数にできるだけ合う直交表を選択し、それにモデルを当てはめるという作業を行う必要があります。ここでモデルにぴったり当てはまる直交表が存在する場合、そのときのテストケース数はPairwise法(All-Pair法)で生成されるテストケース数よりもかなり少なくなります。


例えば、4水準の因子が5個ある L16(45)の直交表のテストケース数は16件です。これに対してPairwise法(All-Pair法)で生成されるテストケース数は21件です。3因子間網羅率は直交表では25%であるのに対し、Pairwise法(All-Pair法)では33%です。直交表ではモデルにぴったり合う表の場合、任意の2つの因子間の組み合わせで同じ組み合わせは1つしか存在しません。直交表の3因子間網羅率が高いと言われるのは、2つ以上同じ組み合わせが存在することが理由ですが、モデルにぴったり一致する直交表ではそうしたことが当てはまりません。テストケース数がPairwise法(All-Pair法)よりも少なくなるために、結果として3因子間網羅率はPairwise法(All-Pair法)よりも少なくなります。


また、因子ごとの水準数に大きな違いがあるモデルの場合、Pairwise法(All-Pair法)での3因子間網羅率は100%になります。生成されるテストケース数もPairwise法(All-Pair法)がより少ない結果となります。


これまで直交表とPairwise法(All-Pair法)の3因子間網羅率の違いとして言われてきたことは間違いではありませんが、それですべてを説明するという一般化はできないということです。どのようなモデルを扱うかによって結果が逆になることもあります。次回以降ではPairwise法(All-Pair法)での3因子間網羅率の特性を調べていきます。


*1: 出典 田口玄一、小西省三 「直交表による実験の割り付け方」 日科技連出版社 1959年 附表 p.2

*2: 同 附表 p.58

64bit OS 環境での動作について【9月3日更新】

現状のPictMasterは、64bit OS 環境では動作できません。

近日中に 64bit OS 環境でも動作できるバージョンをリリースする予定です。


と書きましたが、64bit OS 環境でも正常に動作できることを確認しました。


PictMasterでは、PICTがインストールされているフォルダを、"C:¥Program Files¥" に固定としています。 64bit OS 環境でPICTをインストールすると、インストールされるフォルダは、"C:¥Program Files(x86)¥"になります。


この状態でPictMasterの生成ボタンをクリックすると、PICTが見つからない旨の文字化けしたメッセージが表示されます。しかし、この症状は1回だけで、その後は正常に生成が行なわれるようになります。おそらく、Windowsが "C:¥Program Files¥"と指定されたフォルダを "C:¥Program Files(x86)¥" に自動的に置き換えるるようです。

PictMaster 4.3.2 をリリースしました

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


主な変更点は以下の通りです。



機能改善
・Excel2007以降とExcel2003以前のExcelが混在する環境での問題に対処しました。
・ウインドウ分割のショートカットキーに半角数字も使えるようにしました。


バグ修正
・Excel2007以降のExcelで使用した場合、制約表の行・列をコンテキストメニューで削除・挿入すると、セルの色が変化してしまうバグを修正しました。


その他
・PictMasterの機能説明を組合せテスト関係のみに限定し、ページ数を約50ページに抑えた「ユーザーズガイド」を用意しました。



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


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