組み合わせ爆発

こんにちは、KCです。

検索画面で、検索条件を何項目か入力して検索…よくある画面パターンだと思います。
最初5~6項目を想定していたんですが、なんやかんやで倍近くの10項目位の検索項目になりまして、
テストする時の組み合わせが大変だなー…と思っていたところで、このお話を今回のテーマにしてみます。

まず5項目だった場合、どれだけの組み合わせパターンがあるか。
最低1項目、最大5項目同時入力として、
5C1 = 5
5C2 = 10
5C3 = 10
5C4 = 5
5C5 = 1
合計で31パターンですね。

お次に10項目だった場合、同様にいくと…
10C1 = 10
10C2 = 45
10C3 = 120
10C4 = 210
10C5 = 252
10C6 = 210
10C7 = 120
10C8 = 45
10C9 = 10
10C10 = 1
合計で…1023パターンとなりました。
項目数は2倍ですが、パターン数は33倍程度になりました。わお。

とは言うものの、こういった組み合わせを(今回例にした検索画面に限らず)全部やってると
世の中のエンジニアはKAROSHIしてしまうので、色々工夫する訳です。

今回の検索画面の例でいうと、1つ1つの項目での検索処理が保証できていれば、
後は組み合わせた時に、項目間を「AND」または「OR」の条件で正常に取得出来てれば良いわけです。
なので全組み合わせまでする必要性はあまりなく、必要十分なテストケース・テストデータを設計する
ことが重要です。

最後に、組み合わせ爆発についてその恐ろしさを表現した動画を紹介します。(実はこれが貼りたかっただけ
http://www.youtube.com/watch?v=Q4gTV4r0zRs

ちょっと固めの内容ならこちら(Wikipedia先生
http://ja.wikipedia.org/wiki/%E7%B5%84%E5%90%88%E3%81%9B%E7%88%86%E7%99%BA