俺が考えた最強の検索テストケース

はじめに

俺が考えた最強の会員登録テストケースの続きです。

Webサービスでは検索についてもどこも似たようなことをやってるのではないかと思います。検索についてはテストケースを作るより、テストデータを作成するのが地味にめんどくさかったりするのではないでしょうか?

大事なことなので今回も書きますが、「俺が考えた最強の」とあおっている時はだいたい中身が薄いです。これもそうです。あと現職で使っているテストケースでもありません。

テスト観点

部分一致と完全一致
iPhoneを時々iphoneとかIPhoneとか誤表記していることがありますよね?「iPhone」で検索してiphoneも検索にヒットすることが期待されているのか(部分一致)、ヒットしないことが期待されているのか(完全一致)、要件を確認する必要があるでしょう。

複数ワードでの検索はAndかorか
iPhone 8の64GBを探しているときに「iPhone 8 64GB」などのように検索するのではないでしょうか?この場合は各検索ワードがAnd条件で検索されることが期待されているのではないでしょうか?

価格
価格で絞り込みができる場合は境界値分析の手法が有効ではないかと思います。あとある程度ばらつきのあるテストデータを作らないといけないので自動化はしにくいかもしれません。

ソート
新着順や価格順で並べ替えをできるWebサービスは多いのではないでしょうか?順番が同順(同じ価格とか)の場合も検証が必要じゃないかと思います。

ページング
50件で次のページとか100件で次のページとか仕様を確認する必要があると思います。100件でページングするなら最低でも100件テストデータが必要になりますね。

テストケース

1. 検索ワードを入力して検索をして、部分一致するもののみ検索結果が表示されること
2. 複数ワードで検索して、両方のワードを含むもののみ検索結果に表示されること
3. 最低価格X円で絞り込みをしてX円未満のものが検索結果に表示されないこと
4. 最高価格Y円で絞り込みをしてY円よりも高いものが検索結果に表示されないこと
5. 新着順でソートをしてデータ作成の新しい順番に並んでいること(更新の順番ではないこと)
6. 価格の低い順でソートをして価格の低い順に並んでいること。同じ価格のものがすべて表示されていること
7.  Z件でページングする時にZ+1件検索結果がある時に、次のページを表示することができること
8. 1〜7の複数条件を組み合わせてそれぞれの条件が適用されていること

言い訳

検索はサービスの違いによるところが大きいので一般的な形で検索のテストを考えるのは難しかったとは思いました。noteには価格で絞り込んだり並べ替えたりする需要は無いでしょうし。

あと、検索の難しいんじゃないかと思うところは自動化しにくいんじゃないかと思っています。最低価格を1000円で絞り込んだ時に1500円のものが検索結果に出てくるのをどう機械的に検出するかとか、検索ワードの一致不一致をどうやって機械に判断させるかとかもおそらく簡単ではないのではないでしょうか?

いただいたサポートは生活費にあてます