次に、組み合わせテスト手法の選定方法について見ていきましょう。
組み合わせテストを実施する際、テストケースの生成方法をオールペア法にするか、直交表にするかを選択する前に、両者の比較を表1にまとめてみましょう。○×の記載は、二つの手法を比較した際に、より優れている部分を「○」、そうでないものを「×」と表現しています(以降で解説するように、×であっても必要があれば選択すべきところもあります)。
表1のテストの均等性の評価は、水準組み合わせが同数個の出現である直交表を○にしています。以降では、この比較表の各項目の詳細を見ていきましょう。
「強さ+1の網羅率」はテスト回数がほぼ同じときに、想定し得る組み合わせが一回以上出現することを示す「網羅率」が高いかどうかのことです。オールペア法と比較した場合には直交表の方が網羅率が高くなる傾向性がありますので、表1では○にしています。
「強さ+1の分散」は網羅率と強い相関関係がありますが、この表では比較に入れています。ここで「強さ+1」の水準の組み合わせでの網羅率について、具体的な数値を見てみます。
オールペア法の「1回以上の出現」という網羅基準で、「強さ3」に設定した場合の組み合わせに対する網羅率を計算してみましょう。
例えば、「強さ2」の7因子3水準の直交表では、「強さ3」の網羅率は88.6%です。同様に「強さ2」の7因子3水準のオールペア法での「強さ3」の網羅率は最小で53.6%、テストケース数を直交表と同数にした場合でも80.6%と低くなっています(このあたりの比較が難しく感じられた場合は第二回の記事を思い返してみてください)。
また、「強さ3の水準組み合わせ」の分散(散らばり具合)は直交表の方が小さくなります。「分散が小さくなる」ということは、それだけ組み合わせテストが均等に実施できることを意味します。
これがどういう意味を持つかというと、直交表では「強さ2」で設定した場合でも、オールペア法と比較して「強さ3」の組み合わせに対する網羅率が100%に近いものになるということです。どちらを選択するかについては、この網羅率の差を有意と判断するか否かに懸かっています。
「テスト回数」の項目では、条件の緩いオールペア法の方が基本的には少ないので、○にしています。
しかし、「PICT」などの最小回数を保証しないテストケース生成ツールの実装では、直交表ツール「GaloisSoftTest」よりも多くのテストケースが生成されることがあります(両ツールの違い、使い方は第二回を参照ください)。
代表的なオールペア法ツールであるPICTで「最小回数の保証」を保証していませんので、表1では×にしています。一方、「水準数の制限」や「禁則処理」などはオールペア法に制限がありませんので○にしています。
オールペア法か直交表の選択は、表1のように、組み合わせテストにおいて、
で判断することになります。
直交表側から見ると、(1)群のデメリットと(2)群のメリットの比較と考えることができます。
もちろん、均一に出現し、より強い組み合わせの網羅率が高く、組み合わせの出現の分散も小さい直交表がテスト品質としては優れていますので、生成される「テストケース数にそれほど差がないときは直交表を用いた方がいい」でしょう。
このトレードオフはソフトウエアの性質に依存します。ハードウエアを伴う制御系や組み込み系ではテストも均一的にする方が望ましい場合が多いでしょう。一方、Webアプリケーションのようにソフトウエア中心で動作するシステムでは、論理的エラーを発見することに主眼を置くので、1回以上の組み合わせテストで十分かもしれません。ただし、Webアプリケーションでも、データの多種多様な状態をテストしなくてはいけないような非構造データを扱うビッグデータ処理などではハードウエアを伴うシステムと同様に、テストは均一になるようにした方がいいでしょう。
この判断も、コストからさかのぼって考えることができます。
この場合、直交表とオールペア法で、それぞれテストケースを生成してみて、テストケース数に大きな差がなければ直交表を用いて、大きな差があるときはトレードオフを考えてどちらかを選択するようにします。
「オールペア法か直交表か」「強さをどうするか」をソフトウエアに応じて選定する方法を紹介してきましたが、その選定が妥当であったかどうかをきちんと振り返っておきましょう。
判断の妥当性を調べるために、コスト(テストケース数)と効果(欠陥の発見数)を計測し、その結果をフィードバックして、選定基準を見直していくのです。この流れを図2に示します。このPDCAサイクルを繰り返すことで、妥当な選定基準を作り上げていくのです。
Copyright © ITmedia, Inc. All Rights Reserved.