検索条件がフリーワード形式のときのテストパターンについて、自分の考えを纏めてみました。
##前提の話
フリーワード形式の検索条件がどういうものか、以下で説明します。
###フリーワード形式の検索条件
イメージとしては、検索条件にテキストを入力するフォームがあるようなものです。
値を設定後に検索ボタンを押下すると、入力したテキストに一致する情報が取得されます。
検索したいユーザが、どんな値でも設定可能なところが特徴です。
ただ、このとき注意しないといけないのは、**一致**に関していくつか手法があることです。
テストを行う前に、テスト対象の検索条件がどの一致の手法なのかを明確にしておく必要があります。
テキストの検索の場合、以下の5種類が存在します。
手法 | 内容 | 例 |
---|---|---|
部分一致 | 条件の値が含まれるデータを取得 | Bと検索したとき、Bが含まれるデータを取得 |
完全一致 | 条件の値と完全に一致するデータのみ取得 | ABCと検索したとき、ABCのデータのみ取得 |
前方一致 | 条件の値と前方が一致するデータを取得 | ABと検索したとき、ABから始まるデータを取得 |
後方一致 | 条件の値と後方が一致するデータを取得 | BCと検索したとき、BCで終わるデータを取得 |
中間一致 | 条件の値が中間部分と一致するデータを取得 | Bと検索したとき、Bが中間にあるデータを取得 ※Bが先頭や末尾にある場合は取得しない |
###部分一致
部分一致は、設定した値に関連するデータを全て検索したいときに使用されます。
一般的な検索はだいたい部分一致だと思います。
###完全一致
完全一致は、設定した値のデータのみを検索したいときに使用されます。
検索したいデータが1件のみで、かつIDなどの一意な値を検索したい場合に採用されたりします。
※IDが34のデータを検索したいけど、1~999999までデータがあり、かつID順に表示されない場合(更新日時順)は、手間を省くため完全一致の方がいいかもです。
###前方一致
前方一致は、データの先頭にプレフィックス(カテゴリごとの目印みたいなもの)が付いている場合に採用されたりします。
過去、そういった仕様の検索条件を目にしたことはありますが、あまり見たことはありません。
###後方一致、中間一致
後方一致や中間一致を採用した検索条件は出会ったことがないので、いい例が浮かびませんでした。
##テストパターンについて
自分は、検索条件がフリーワード形式のときは、上記の一致部分をなるべく網羅できるようにパターンを作成しています
###事前準備データ
対象項目の設定値 | その他(対象に関連の無い項目) | |
---|---|---|
データA | [未設定] | 任意 |
データB | い | 〃 |
データC | あい | 〃 |
データD | いう | 〃 |
データE | あいう | 〃 |
データF | え | 〃 |
###検索結果の確認
例:部分一致の場合
対象項目の 検索条件 |
その他の 検索条件 |
取得結果 | 補足 | |
---|---|---|---|---|
no.1 | [未設定] | [未設定] | A, B, C, D, E, F | 条件未設定を確認 |
no.2 | い | 〃 | B, C, D, E | 部分一致を確認 |
no.3 | あい | 〃 | C, D | 前方一致を確認 |
no.4 | いう | 〃 | D, E | 後方一致を確認 |
no.5 | あいう | 〃 | E | 完全一致を確認 |
no.6 | お | 〃 | 検索結果なし | 一致なしを確認 |
ポイントとして、まずフリーワード検索に限らないところでは
●検索条件が複数設定できる場合は、対象以外の検索条件は必ず**未設定**にし、試験対象に影響が出ないようにする。
⇒組み合わせのテストは、それぞれの対象1つずつのテストが完了してから行う。
●事前準備データの設定値が未設定の場合も考慮する。
●検索条件が未設定の場合や全て不一致となる場合も考慮する。
辺りを思っています。
フリーワード検索に関連するポイントとしては、
●その検索条件だと、あるデータでは前方に一致しているが、別のデータでは後方で一致している
といったケースや
●その検索条件だと、前方一致のデータしかない
といったケースを組み合わせているところです。
そうすることで、部分一致のはずが、前方一致になっていたなどが検出できるようにしています。
##最後に
フリーワード検索の場合、検索条件をほぼ無限に設定できるため、全てを確認することは事実上不可能です。
どこまで効率よくパターンを削れるかが大事だと思っています。
検索画面の試験の場合は、個々の検索条件が仕様通り動作しているかを確認した後に、それぞれの条件を組み合わせた検索についても試験を行う必要があると思っています。流れとしては、
①個々の検索条件が正しく動作する
②それぞれの検索条件を組み合わせた検索が正しく動作する
だと思っています。
⇒①の試験で個々の条件の担保を取ったうえで、②にて組合せの試験を行うなど
検索条件を組み合わせる場合の試験パターンについては、以下のページに記載しています。
複数の条件がAND条件/OR条件で繋がれているときのテストパターン
参考になれば幸いです。