十分なテストをしたのにバグが見つかる---。「想定外」としか言いようのない事態があると思います。そのような事態に陥らないためにはどうしたらよいでしょうか。
すぐに思いつくのは、再発防止策として同じようなバグを検出できるテストパターンを追加することです。もちろんこれは有効ですが、こうした対策は「経験から予測できる不具合に対するテスト」にすぎません。未経験の不具合は常に「想定外」のものとして見落としてしまう可能性があります。つまり、「同じようなバグを検出できるテストを増やす」という対策は本質的な解決策にはなっていないのです。
想定外を想定できるわけはありません。いったいどうすればよいのでしょうか。開発者の方にはなじみが薄いかもしれませんが、「品質工学」と呼ばれている方法論があり、これが一つの解決策を与えてくれます。もちろん“銀の弾丸”はありませんから全ての問題を解決できませんが、経験や知識による予測とは異なる方法で不具合を予測することで、想定外の不具合を見つけ出すことができます。
この連載では、品質工学からヒントを得た「直交表」を用いた組み合わせテスト技法について説明します。
直交表の特徴
直交法は組み合わせテストの一つで、特徴は「直交している」機能を組み合わせたときに問題が起こらないことを効率よく確認できる点です。「直交している」とは、機能と機能の間に関連がないことをいいます。「まさか、こんな組み合せで問題が起こるとは、想定外でした」と言い訳したくなるような問題を見つけ出すのです。
一般的な話から始めます。想定外の状況を予測するには、設計者の思い込みを防ぐアプローチが必要です。当たり前と思うことでも実際に確認することが必要で、それには、いろいろな条件を組み合わせて片っ端から確認してみるしか方法はありません。