真实面经题目 · 原创解析

如何设计微信语音发送功能的测试用例?

微信语音发送功能的测试用例要覆盖录音、取消、时长边界、权限、编码上传、发送状态、接收播放、弱网、后台切换、兼容性和隐私安全。核心是把用户手势、媒体采集、网络传输和消息状态作为一条端到端链路验证。

出现于:字节跳动 · 测开

60 秒回答模板

可以先拆功能链路:进入聊天页,按住录音,采集音频,松开发送,上滑取消,编码压缩,上传或点对点传输,服务端生成消息,接收端同步并播放。用例设计要覆盖正常路径和边界路径:首次麦克风授权、拒绝授权、最短时长、最长时长、录音中来电或切后台、手势误触、取消后不发送、弱网下上传重试、发送中断后状态回滚、接收端未读提示、播放进度、听筒和扬声器切换、多端同步、消息撤回和删除。还要覆盖不同系统版本、机型、蓝牙耳机、低电量、存储不足、并发消息、隐私提示和日志脱敏。测试目标不是把按钮点一遍,而是证明音频数据、消息状态、用户反馈和异常恢复都可靠。

考点 端到端链路
难度 真实面经高频题
回答目标 讲清机制、边界和追问

深入解析

01

明确功能边界

先确认语音发送包含哪些行为:按住开始录音、松开发送、上滑取消、时长提示、音量反馈、权限弹窗、上传发送、消息展示和接收播放。还要确认是否支持转文字、撤回、多端同步、耳机播放和听筒模式。范围清楚后,用例才不会漏掉关键状态。

02

录音交互用例

正常路径要覆盖按住后开始录音、录音中音量变化、松手后发送成功。边界要覆盖小于最短时长、达到最长时长自动结束、手指移出取消区、快速点按、连续多次录音、录音中滑动页面、语音按钮被遮挡和系统手势冲突。交互反馈要验证提示文案、震动或音效是否准确。

03

权限与设备环境

首次使用要触发麦克风权限申请,拒绝后要有明确引导,再次授权后应恢复可用。还要覆盖系统禁用麦克风、蓝牙耳机接入、耳机拔插、静音模式、低电量、存储空间不足、其他应用占用麦克风、来电打断和后台切换。媒体能力依赖设备环境,不能只测理想状态。

04

传输与消息状态

录音结束后要验证编码、文件大小、上传、重试、超时和发送状态。弱网、断网、网络切换、服务端错误、重复点击和进程被杀都可能造成半成功状态。用例要确认失败提示、重发入口、去重策略、消息顺序、时间戳、发送中状态和服务端落库一致性。

05

接收播放与质量

接收端要验证消息到达、未读状态、播放按钮、进度、暂停、重复播放、听筒和扬声器切换、锁屏播放中断、音量过低提示以及多端同步。音质要覆盖静音、噪声、长音频、短音频、编码兼容和不同系统播放器行为。隐私上要确认日志不记录敏感音频内容。

易错点

  • 只验证按住说话后能发出去,忽略取消、权限、边界时长和异常中断。
  • 只看发送端成功状态,没有验证服务端落库、接收端同步和播放完整性。
  • 缺少弱网、断网、网络切换和重试幂等用例,容易遗漏重复消息或音频丢失。
  • 忽略设备差异,例如麦克风占用、蓝牙耳机、后台切换、系统权限和低存储空间。

面试官追问

用户拒绝麦克风权限后怎么测?

要验证录音不会开始,界面给出明确原因和去系统设置的入口;重新授权后功能能恢复。还要覆盖系统级禁用、权限弹窗被打断和升级后权限状态变化。

录音完成后网络断开怎么办?

应验证本地消息进入发送失败或等待重试状态,音频文件不丢失,恢复网络后可重发且不会生成重复消息。服务端和客户端要通过消息 id 或上传 id 保证幂等。

最短和最长语音时长如何覆盖?

最短时长要测低于阈值、等于阈值和刚超过阈值;最长时长要测达到上限自动停止、提示是否及时、文件是否完整、上传是否成功以及接收端是否能完整播放。

如何验证接收端播放质量?

可以准备静音、正常人声、噪声、长语音和短语音样本,验证波形或时长、播放完整性、音量、切换听筒扬声器、耳机接入和不同系统版本的解码兼容。