]追加された行はこの色です。削除された行はこの色です。組み合わせテストに利用できる直交表というものがあります。[[参考文献>./#a65798e3]]の直交表の解説を読んで理解したことを紹介します。直交表は2次元の整数の配列表で、任意の2列を選択するとすべての数値の組み合わせがその2列で表されるというものです。参考文献にも例示されている次の配列表をみてみます。この配列表は9行4列で値として1〜3のどれかであることが見て取れます。この配列表から任意の2列を選んでみてください。列1と列3を選んで抜き出してみると、下表のようになります。すると、各行を見ていくと、(1,1)、(1,2)、(1,3)、(2,2)、(2,3)、(2,1)、(3,3)、(3,1)、(3,2)と1〜3の値から2個選択した場合の全ての組み合わせが表現されるのがわかると思います。これはどの任意の2列の組み合わせでもおきます(実際に試してみてください)。した特徴を持つ配列表が直交表と呼ばれるものです。例で示した値が1〜3で4列の全体の値の組み合わせを考えてみると(3,3,3,3)といった組み合わせも有効です。9通りで表現できます。これはどういうことかというと、全体で81通りある内のわずか9通りのテストケースによって任意の2列間同士の組み合わせを100%網羅できるということです。テストを行う多くの状況においては、作成して実行すべきテストケースの数がとにかく多すぎる。その中から「良い」サブセットを選択するには、どうしたらよいだろうか。その答えが直交表なのである。多数の変数があり、それらの各変数が定義されている状態を取るときにはいつでも、問題を直交表にマッピングすることができる。全ての組み合わせを律儀にテストしようとすると要素(列)と値の範囲が増えるにしたがって無限大にまでテストケースが増えていってしまいます。限られたリソースの中でこれを達成するのは著しく困難、または不可能です。そこで、直交表を利用することで、全体の組み合わせの中から特に重要なサブセットを抜き出していこう、ということです。要注意なのは、&color(red){直交表はあくまでサブセットであり、全組み合わせを網羅するものではない};ということです。72通りの組み合わせは考慮されないため、考慮されなかった組み合わせでバグが検出されるリスクはあります。任意の2列間での全組み合わせは9通りでカバーできる。これが直交表の強みです。次の状況を考えてみます。種々のOS上で稼動する様々なWebサーバ上で稼動するオープンソースソフトウェアがある。そのオープンソースソフトウェアは複数のバージョンをサポートしている。このシステムは様々なブラウザでアクセスされうる。この状況で、Webブラウザ、オープンソースソフトウェアがサポートするバージョン、Webサーバ、OSが取りえる値を以下としてみます。81通り全てをテストできれば理想的ですが、経験上必要ないと思える組み合わせもあるでしょうし、何よりリソースが無いことが多いでしょう。そこで、この問題を例で示した直交表にマッピングしてみます。して値を対応させ配置しています。対応関係がわかりやすいように括弧内に元の値も入れています。テストケース1〜9を実行することで何が達成されるのかを見てみます。&color(red){全ての要素の全ての値の組み合わせはテストされていませんが、固有の組み合わせはすべてテストされています。};例えば、IE6.0は全バージョン、全Webサーバ、全OSとの組み合わせをテストされています。参考文献によれば、「互換性に関する欠陥の殆どは組み合わせに基づく」とのことで、これも考え合わせると、組み合わせに関するテスト(互換性や環境、インタフェース接続など)において直交表はとても有用だと考えられると思います。テストそのものの組み合わせ(対象モジュール、テストレベル(単体テスト、結合テスト、システムテスト))にも応用できると思うので、テスト計画においても利用可能だと思います。ついてわからないことだらけなので、勉強してお知らせしていきたいと思います。