条件が複数あり、それらがAND条件やOR条件で繋がれているときのテストパターンについて、
自分の考えを纏めてみました。
もしかしたら、どこかで聞いたり読んだりした話かもしれません。その場合はすみません。
##前提の話
複数の条件が、AND条件やOR条件で繋がれているとはどういう状態か、以下で説明します。
###AND条件
AND条件は、検索画面での検索がイメージしやすいと思います。
性別 : ◎男 〇女
年齢 : 30代
血液型 : A型
で検索すると、A型の30代の男性のみ(全ての条件が一致するもののみ)がヒットするなど
※検索条件はてきとうです。
###OR条件
OR条件は、検索サイトで半角スペース区切りで検索するようなイメージでしょうか。
検索条件🔍[ にんにく 野菜 油 ]
で検索すると、にんにく/野菜/油が関連したもの(一つでも条件に一致するもの)がヒットするなど
※検索サイトの場合は、厳密には違うかもしれません。
複数の条件をANDやORで繋いでいるので「繋がれている」と表現しました。
適切でないかもしれませんが、本記事ではそう表現するとします。
##テストパターンについて
自分は、複数の条件がAND条件/OR条件で繋がれている場合、以下のように考えてテストを行っています。
※以下に記載していく例は、検索条件を設定して特定の情報を取得する/しない場合を想定しています。
###AND条件の場合
AND条件の場合は、条件の内のどれか一つでも一致しないなら取得しないので
全て一致する場合(取得する)と、1条件だけ一致していない場合(取得しない)の全てを確認します。
例:項目が5つあった場合
条件1 | 条件2 | 条件3 | 条件4 | 条件5 | 結果 | |
---|---|---|---|---|---|---|
no.1 | T | T | T | T | T | 取得する |
no.2 | F | T | T | T | T | 取得しない |
no.3 | T | F | T | T | T | 取得しない |
no.4 | T | T | F | T | T | 取得しない |
no.5 | T | T | T | F | T | 取得しない |
no.6 | T | T | T | T | F | 取得しない |
一つでも欠けてたら取得できないようなギリギリを突き、全て一致している場合のみ取得することを確認するようなイメージです。
###OR条件の場合
OR条件の場合は、条件の内のどれか一つでも一致していたら取得するので、
全て一致しない場合(取得しない)と、1条件だけ一致している場合(取得する)の全てを確認します。
条件1 | 条件2 | 条件3 | 条件4 | 条件5 | 結果 | |
---|---|---|---|---|---|---|
no.1 | F | F | F | F | F | 取得しない |
no.2 | T | F | F | F | F | 取得する |
no.3 | F | T | F | F | F | 取得する |
no.4 | F | F | T | F | F | 取得する |
no.5 | F | F | F | T | F | 取得する |
no.6 | F | F | F | F | T | 取得する |
一つでも一致してしたら取得してしまうようなギリギリを突き、全て一致していない場合のみ取得しないことを確認するようなイメージです。
##最後に
条件が一致/不一致の単純なものであっても、全ての組み合わせを確認すると2のn乗(条件5つの場合、2の5乗=32通り)となってしまうので、どこまで効率よくパターンを削れるかが大事だと思っています。
また、検索画面の試験の場合は、個々の検索条件も仕様通り動作しているかを確認する必要があると思っています。流れとしては、
①個々の検索条件が正しく動作する
②それぞれの検索条件を組み合わせた検索が正しく動作する
だと思っています。
⇒①の試験で個々の条件の担保を取ったうえで、②にて組合せの試験を行うなど
個々の検索条件についても、別の記事で纏めてみようと思います。