实习的日子总看到一些可以测试的点,于是这篇文章准备把所有遇到的场景都写一写测试用例,写完后及时更新上去。
1. 语音搜索功能
功能描述:支持通过语音输入进行AI搜索,支持上下文多轮交互,支持复杂意图理解的找内容体验。
一、基础功能测试
1. 语音识别准确性测试
| 测试场景 | 语音输入内容 | 预期结果 |
|---|
| 标准普通话识别 | “今天北京的天气怎么样?” | 正确识别语音,返回北京当天天气信息(温度、天气状况等)。 |
| 方言识别(粤语) | “广州落雨未啊?”(广州下雨了吗?) | 正确识别方言意图,返回广州实时天气。 |
| 快速 / 慢速语音识别 | 快速:“查上海到北京的高铁时刻表”慢速:“请告诉我明天深圳到杭州的飞机票价格” | 快速语音:提示 “请说慢一点”;慢速语音:完整识别并返回对应信息。 |
| 背景噪音环境识别 | 嘈杂环境(地铁):“附近的便利店在哪里” | 结合降噪算法,正确识别关键词 “附近”“便利店”,返回周边便利店位置。 |
| 模糊发音纠错 | “我想肖想一下明天的计划”(实际为 “构想”) | 若识别错误,通过上下文推断意图或提示 “抱歉,没听清你的问题”。 |
2. 基础搜索功能测试
| 测试场景 | 语音输入内容 | 预期结果 |
|---|
| 百科知识查询 | “谁是《三体》的作者?” | 返回 “刘慈欣” 及相关简介。 |
| 时间 / 日期查询 | “现在几点了?”“明天是几号?” | 实时返回当前时间 / 次日日期。 |
| 单位换算 | “100 美元等于多少人民币?” | 返回最新汇率换算结果(如 “100 美元≈720 人民币”)。 |
| 计算器功能 | “计算 15 乘 23 加 87” | 返回计算结果 “432”。 |
| 无意义语音处理 | 随机哼唱 / 无内容语音 | 系统提示 “请说点什么吧” 或 “抱歉,没理解你的意思”。 |
二、上下文多轮交互测试
1. 直接上下文关联测试
| 对话轮次 | 用户语音输入 | 系统预期响应 |
|---|
| 第 1 轮 | “附近的咖啡馆” | 返回附近咖啡馆列表(名称、距离、评分)。 |
| 第 2 轮 | “哪家评分最高?” | 基于上轮结果,返回评分最高的咖啡馆详情(如 “星巴克(XX 店),评分 4.8”)。 |
| 第 1 轮 | “推荐一部电影” | 返回电影推荐列表(如《奥本海默》《沙丘 2》)。 |
| 第 2 轮 | “有没有科幻类的?” | 过滤上轮结果,仅返回科幻类电影(如《沙丘 2》《星际穿越》)。 |
2. 跨领域意图切换测试
| 对话轮次 | 用户语音输入 | 系统预期响应 |
|---|
| 第 1 轮 | “今天上海的温度” | 返回上海实时温度(如 “28℃”)。 |
| 第 2 轮 | “导航到外滩” | 切换至地图导航功能,显示从当前位置到外滩的路线。 |
| 第 1 轮 | “播放周杰伦的歌” | 播放周杰伦歌曲列表(如《青花瓷》《双截棍》)。 |
| 第 2 轮 | “这首歌叫什么名字?” | 识别当前播放歌曲并返回名称(如 “《以父之名》”)。 |
3. 上下文遗忘与重置测试
| 对话轮次 | 用户语音输入 | 系统预期响应 |
|---|
| 第 1 轮 | “我要订周五的酒店” | 询问 “请问你想在哪个城市订酒店?” |
| 第 2 轮 | “算了,改成查周六的航班” | 重置上轮意图,转为查询 “周六航班” 信息。 |
| 第 1 轮 | “帮我找附近的医院” | 返回附近医院列表。 |
| 第 2 轮 | “不用了,现在几点了?” | 忽略上轮上下文,返回当前时间。 |
三、复杂意图理解测试
1. 复合条件查询测试
| 测试场景 | 语音输入内容 | 预期结果 |
|---|
| 多条件筛选 | “推荐一部最近上映、适合孩子看、评分高于 8 分的动画电影” | 筛选 “近 30 天上映”“动画类型”“评分≥8” 的电影(如《蜘蛛侠:纵横宇宙》)。 |
| 逻辑关系(或 / 且) | “查找北京或上海,价格 500 元以下,评分 4 星以上的餐厅” | 返回北京 / 上海符合条件的餐厅列表。 |
| 隐含条件推断 | “我明天要出差,需要带伞吗?” | 结合 “出差” 意图,自动查询目的地天气,若有雨则提示 “需要带伞”。 |
2. 模糊意图解析测试
| 测试场景 | 语音输入内容 | 预期结果 |
|---|
| 口语化表达 | “我有点饿了” | 推断为 “寻找附近餐厅”,返回周边餐饮推荐。 |
| 反问句式 | “难道没有便宜点的机票吗?” | 识别用户对价格不满,返回价格更低的航班选项(如经济舱折扣票)。 |
| 省略主语 / 宾语 | “几点开门?”(前序对话为 “图书馆”) | 基于上下文,返回 “图书馆” 的开门时间(如 “9:00 AM”)。 |
3. 意图歧义处理测试
| 测试场景 | 语音输入内容 | 可能歧义 | 系统预期响应 |
|---|
| 同音词歧义 | “帮我订一张去 shanghai 的票” | “上海” vs “伤海”(无效地名) | 优先识别常用地名 “上海”,返回上海的订票信息。 |
| 多意图重叠 | “播放周杰伦的歌并查询天气” | 音乐播放 + 天气查询 | 分步骤响应:先播放歌曲,再询问 “请问你想查询哪个城市的天气?”。 |
| 不完整意图 | “我要去…”(用户中断语音输入) | 目的地不明确 | 提示 “请补充你的目的地” 或 “你想去哪里呢?”。 |
四、边界场景与异常处理测试
1. 极端输入测试
| 测试场景 | 语音输入内容 | 预期结果 |
|---|
| 超长语音(>60 秒) | 连续输入 3 分钟无意义语音 | 自动截断并提示 “语音过长,请简洁表达需求”。 |
| 静音 / 无语音输入 | 点击录音后不说话 | 提示 “未检测到语音,请重试”。 |
| 高错误率识别 | 故意模糊发音:“查下天去的飞苦” | 结合语义纠错,返回 “你是否想查询‘明天的飞’?” 并提供候选修正。 |
2. 异常流程测试
| 测试场景 | 操作步骤 | 预期结果 |
|---|
| 中断语音输入 | 说话过程中点击 “取消” 按钮 | 停止录音,清除已识别内容,返回初始状态。 |
| 网络中断 | 搜索时关闭网络 | 提示 “网络连接中断”,恢复网络后可重新加载结果。 |
| 权限未开启 | 首次使用时拒绝麦克风权限 | 弹窗提示 “请在设置中允许访问麦克风”,引导用户开启权限。 |
五、性能与兼容性测试
1. 性能指标测试
| 测试场景 | 测试条件 | 预期结果 |
|---|
| 响应时间 | 正常网络(4G/Wi-Fi) | 语音识别 + 结果返回≤5 秒。 |
| 弱网环境(2G) | 模拟低速网络环境 | 显示加载动画,超时后提示 “网络较慢,请稍后再试”。 |
| 并发请求(10 用户) | 同时发起语音搜索 | 系统无崩溃,平均响应时间波动≤20%。 |
2. 设备兼容性测试
| 测试设备 | 操作系统 / 型号 | 预期结果 |
|---|
| 手机(iOS) | iPhone 14(iOS 17) | 麦克风权限正常获取,交互流畅无卡顿。 |
| 手机(Android) | 小米 13(Android 14) | 同上。 |
| 智能音箱 | 小度 / 天猫精灵 | 远场唤醒正常,复杂意图解析无明显延迟。 |
| 车载系统 | 特斯拉车机(Linux 内核) | 支持蓝牙麦克风输入,响应速度≤3 秒(符合驾驶安全要求)。 |
六、用户体验测试
| 测试场景 | 交互细节 | 预期结果 |
|---|
| 语音 + 文本双反馈 | 系统回复是否支持语音 + 文本同步输出 | 支持语音播报结果(如 “已为你找到附近的咖啡馆”),同时显示文本详情。 |
| 打断功能 | 用户在播报时再次说话 | 立即停止当前播报,优先处理新语音输入。 |
| 错误提示友好性 | 识别失败时的回复 | 使用口语化表达(如 “没太听懂,能再说一遍吗?”),避免技术术语。 |