直交表(OAT)とオールペア法(ペアワイズ法)の違いとは何か?2つのテストケース作成技法を解説

2022年6月6日

なぜ直交表・オールペア法が必要なのか?

複雑なコードのソフトウェアを開発する場合、すべての機能のあらゆる組み合わせをテストするのは、テストの回数が膨大になるため、スケジュール的にもコスト的にも現実的ではありません。そのため、直交表(Orthogonal array testing , OAT)・オールペア法(ペアワイズ法)では、機能の組み合わせを限定し、効率よくテストします。

直交表でのテスト

直交表でテストを実施する場合は、テストしようとしているソフトウェアの機能の数、その機能の値の種類に注目してテスト表を作成します。
たとえば条件によって表示されたり、隠れたりするA・B・C3つのコンテンツがあるWebページのテストを考えてみましょう。このWebページのテストを直交表で実施する場合、機能の数は3つです。そして、各機能の値の種類は「表示」「非表示」の2種類です。これらの情報をもとに直交表を作成すると以下のようになります。

テストケース機能A機能B機能C
テスト1非表示非表示非表示
テスト2非表示表示表示
テスト3表示非表示表示
テスト4表示表示非表示
表1 直交表の例

上記のように、直交表でのテスト回数は4回です。A・B・Cの3つの機能の場合、機能単体のテストだけでも「表示」「非表示」をチェックするだけで6回のテストが必要です。それが4回で済むため、時間の短縮につながります。

オールペア法(ペアワイズ法)との違い

直交表では任意の列、つまり機能を選んだ時、値のペアが同じ数だけ現れるようにしなければなりません。表1で言えば、機能Aと機能Bに注目した時、[非表示、非表示][非表示、表示][表示、非表示][表示、表示]という組み合わせのテストが同一回数の各1回ずつ実施されています。
オールペア法では、この「値のペアが同じ回数だけ現れる」という条件を緩和させ、1回以上存在すればよいとしてテストケースを作成します。

参考