組み合わせテストの2つの方法(直交表、ペアワイズ)

簡単な例で、2つの方法(直交表、ペアワイズ)を紹介します。
作成したアプリが様々な環境で正しく動作するか否かを調べたい。様々な環境(因子)とは、(a)OS(Win7/Win10)、(b)ブラウザ(IE/FireFox)、(c)画面解像度(低/高)の3種とする。(各因子は0/1の2値(水準)をとる)

3因子全ての組み合わせを確かめようとすると、2x2x2の8通りのテストが必要になる(次の表)。

組み合わせテストとは、できるだけ上記8通りをカバーしつつも、このテストケースを減らす方法の提案です。

(1) 直行表
上記のテストケースを減らすには、L4(4はテストケースが4つであることを示す)と呼ばれる最も小さな直行表を用いる。
テストは、表の4ケースだけで済ませる。何となく、3因子がバランスよく散らばっているのが分かるでしょう。

この表の、環境(因子)の選択を0/1で表わすとつぎのようになる。

直交とは、どの2列の組み合わせにおいても相関係数がゼロとなっている状態。あるいは、各列をベクトルと考えて直交していると考えても同じ。
さらに各列は、「釣合い」という、全ての列において、出現する水準(1/0)の数が同じ状態にもなっている。

(2) ペアワイズ(オールペア)法
どの2つの因子間(OS-ブラウザ、ブラウザ-解像度、OS-解像度)を見ても、値の組み合わせが全て(00、01、10、11)網羅されている。

上記の直行表とペアワイズ表は、簡単な組み合わせ(3因子で2値)を使ったため、直交表とペアワイズ表が同じになってしまったが、一般にはペアワイズの方がテストケースが少なくて済む。

例えば、7因子では、以下のように2つの表が異なってくる。
直交表

ペアワイズ表

2つの方法の違いは、直行法は全ての因子をバランスよくカバーしているのに対し、ペアワイズは2因子間の関係を重視し、各2因子間の値の組み合わせは全てカバーしている。
これは、統計的に2因子間までで発生するエラーが7~9割を占めるためである。

因子数や水準数が増えると、テストケースを作るのが人手では難しく、専用のソフトが用意されている。

==
今日、googleの画面に見覚えのある(ブール代数の)式が出ていました。

何かと思ったらジョージ・ブール氏の生誕200年(誕生日)と書いてありました。