你会怎么测试一个搜索功能?

测试开发第 15 / 15 题答题框架
参考思路:功能(精确/模糊/分词/高亮/排序)→性能(响应/大结果集分页)→异常(空格/特殊字符/超长输入)→结果质量(相关性评估)。

五个经典回答示范

回答一 · 校招应届版

我分六块测搜索:功能——精确词、模糊词、分词效果(搜『小米手机』能出小米手机不出现大米)、同义词、大小写与拼音;排序——相关性顺序、置顶规则;交互——联想词、高亮、历史记录;异常——空格、特殊字符、超长输入、SQL 注入串、空结果页提示;性能——响应时间与大数据量分页;结果质量——抽样评估相关性。

回答二 · 1-3年经验版

我重点讲结果质量评估体系:建标注集——常见查询词两三百个,人工标注期望结果;每次排序策略变更跑标注集算 NDCG 与 Top 命中率,回归可量化。功能上我踩过的坑:分词更新后老数据未重建索引导致搜不到,所以『索引与数据一致性』成了专项——增删改后可搜索的延迟与准确性。

回答三 · 资深版

搜索测试我的框架是把搜索当检索系统:索引层——数据完整性与更新时效;召回层——该出的没出是漏召回、不该出的出了是噪音,分别度量;排序层——离线指标加在线 A/B 验证;性能层——长尾词与热词的 P99 分开看。搜索的质量问题大多不是 bug 而是效果问题,测试策略必须从对错断言升级为效果度量。

回答四 · 追问应对

追问『无结果页面怎么测』:提示文案、推荐内容、搜索建议、埋点上报;『搜索结果和筛选排序组合怎么测』:正交组合加边界,重点筛选后分页的参数保持与重置;『怎么评估相关性』:人工标注集、NDCG 指标、badcase 收集闭环,线上看点击率与换词率。

回答五 · 反面示范

『搜索测试就是在框里输入几个词,看能不能搜出东西、页面不报错就行,搜出来的顺序准不准是算法的事跟测试无关。』——点评:漏召回和乱排序恰是搜索最大的质量风险,一句『算法的事』把核心职责推出去了;空结果、特殊字符这些异常路径也没覆盖。

怎么练这道题
  1. 打开 模拟练习,选择「测试开发」方向,限时 3 分钟作答本题。
  2. 对照上方答题框架,逐点检查:哪些要素没覆盖、哪里表达啰嗦。
  3. 用自己项目的真实经历替换框架中的占位内容,重讲一遍并录音回听。

这类题在真实面试中常被追问细节,
建议进入限时模式练一遍。

开始限时演练