テキストの検索(複数キーワード検索)

先日のテスト業務で、以下のような仕様の検索機能について試験を行う機会がありました。

  • フリーワード検索
  • 全角または半角スペース区切りで複数キーワード検索とする
  • 検索対象とする項目は4項目
  • いずれかの項目に対象キーワードが存在している場合に条件一致と見做す
     ⇒1項目毎の判定は部分一致、複数キーワードはAND検索

複数キーワード検索について、実施した試験内容を展開します。

方針

3段階の試験に分けて実施しました。

  1. 項目毎に対する部分一致の確認
  2. 項目毎に対する複数キーワードの確認
  3. 項目を跨いた複数キーワードの確認

それぞれ順に詳細を記載していきます。

1.項目毎に対する部分一致の確認

1項目毎にテスト用のテキストを設定して、それ以外の項目は検索に影響しないような設定にしておき、前方一致パターンや後方一致パターン、ヒットしないパターンなどが確認できるように検索条件を設定します。

ポイントとしては、他の項目が影響しないようにすることとキーワードも単一にするという点です。
この試験で想定通り動作すれば、後の複合検索でも単一での検索は正常に動作する前提で考えることができ、もし想定通り動かなかったとき「問題が起こるのは複合パターン」と切り分けができるからです。

2.項目毎に対する複数キーワードの確認

1.と似ていますが、今度は検索キーワードを複数列挙したパターンです。ここでは全角スペース/半角スペースの確認やキーワードの列挙順に左右されないかなど確認しています。

この試験が問題なければ、1項目に対しては複数キーワードが設定されていても正常に動作すると判断できます。
ここでも大事なのは他の項目を影響しない設定にすることです。

3.項目を跨いた複数キーワードの確認

いよいよ項目を跨いだ複数キーワードの確認です。この中でも何段階か行っています。

まず、対象となる4項目に機械的に4種類のテキストを組み合わせの数だけ設定したデータを用意し、キーワードの方にも4種類のテキストを列挙します。
※組み合わせの数は 4! (4×3×2×1)=24パターン

ここでは、全てのパターンがヒットすることを確認します。

次に各データの内、先ほどと比べて1種類だけキーワードを設定しなかったデータ群を別途用意して、同様のキーワードで検索を行います。

この時の期待結果は「全てヒットしない」となります。↑の挙動と合わせて、各キーワードと各項目の一致/不一致の組み合わせが網羅できている見込みです。

その後は、また同じデータパターンでキーワードを3項目に絞って確認します。

↑のパターンと比較して、キーワードを減らせばヒットすることが確認できます。
以前の試験でキーワードの順番や全角/半角スペースパターンは確認していましたが、念のためここでも実施しました。

この後は、先ほどと同様に1種類だけキーワードを設定しなかったデータ群をまた別途作成して、同じように検索を行っていきます。ここでは割愛します。

纏め

仕様が複雑だったり、組み合わせが多かったりした場合でも、まずは単一項目に対する試験を行い、そこが問題ないことを担保してだんだんパターンを拡げていくようなイメージで試験を行っています。

今回は全パターンを網羅するような試験を行いましたが、必ずこのパターンが正しいとは限りません。パターン数が無限に存在する場合は別のアプローチが推奨されることもあると思います。
※今回はパターン数が有限かつ 期日/工数も問題なさそうだったため、この方針とした

試験パターン検討の際に参考にしていただければと思います。