真实面经题目 · 原创解析
如何设计微信语音发送功能的测试用例?
微信语音发送功能的测试用例要覆盖录音、取消、时长边界、权限、编码上传、发送状态、接收播放、弱网、后台切换、兼容性和隐私安全。核心是把用户手势、媒体采集、网络传输和消息状态作为一条端到端链路验证。
真实面经题目 · 原创解析
微信语音发送功能的测试用例要覆盖录音、取消、时长边界、权限、编码上传、发送状态、接收播放、弱网、后台切换、兼容性和隐私安全。核心是把用户手势、媒体采集、网络传输和消息状态作为一条端到端链路验证。
可以先拆功能链路:进入聊天页,按住录音,采集音频,松开发送,上滑取消,编码压缩,上传或点对点传输,服务端生成消息,接收端同步并播放。用例设计要覆盖正常路径和边界路径:首次麦克风授权、拒绝授权、最短时长、最长时长、录音中来电或切后台、手势误触、取消后不发送、弱网下上传重试、发送中断后状态回滚、接收端未读提示、播放进度、听筒和扬声器切换、多端同步、消息撤回和删除。还要覆盖不同系统版本、机型、蓝牙耳机、低电量、存储不足、并发消息、隐私提示和日志脱敏。测试目标不是把按钮点一遍,而是证明音频数据、消息状态、用户反馈和异常恢复都可靠。
先确认语音发送包含哪些行为:按住开始录音、松开发送、上滑取消、时长提示、音量反馈、权限弹窗、上传发送、消息展示和接收播放。还要确认是否支持转文字、撤回、多端同步、耳机播放和听筒模式。范围清楚后,用例才不会漏掉关键状态。
正常路径要覆盖按住后开始录音、录音中音量变化、松手后发送成功。边界要覆盖小于最短时长、达到最长时长自动结束、手指移出取消区、快速点按、连续多次录音、录音中滑动页面、语音按钮被遮挡和系统手势冲突。交互反馈要验证提示文案、震动或音效是否准确。
首次使用要触发麦克风权限申请,拒绝后要有明确引导,再次授权后应恢复可用。还要覆盖系统禁用麦克风、蓝牙耳机接入、耳机拔插、静音模式、低电量、存储空间不足、其他应用占用麦克风、来电打断和后台切换。媒体能力依赖设备环境,不能只测理想状态。
录音结束后要验证编码、文件大小、上传、重试、超时和发送状态。弱网、断网、网络切换、服务端错误、重复点击和进程被杀都可能造成半成功状态。用例要确认失败提示、重发入口、去重策略、消息顺序、时间戳、发送中状态和服务端落库一致性。
接收端要验证消息到达、未读状态、播放按钮、进度、暂停、重复播放、听筒和扬声器切换、锁屏播放中断、音量过低提示以及多端同步。音质要覆盖静音、噪声、长音频、短音频、编码兼容和不同系统播放器行为。隐私上要确认日志不记录敏感音频内容。
要验证录音不会开始,界面给出明确原因和去系统设置的入口;重新授权后功能能恢复。还要覆盖系统级禁用、权限弹窗被打断和升级后权限状态变化。
应验证本地消息进入发送失败或等待重试状态,音频文件不丢失,恢复网络后可重发且不会生成重复消息。服务端和客户端要通过消息 id 或上传 id 保证幂等。
最短时长要测低于阈值、等于阈值和刚超过阈值;最长时长要测达到上限自动停止、提示是否及时、文件是否完整、上传是否成功以及接收端是否能完整播放。
可以准备静音、正常人声、噪声、长语音和短语音样本,验证波形或时长、播放完整性、音量、切换听筒扬声器、耳机接入和不同系统版本的解码兼容。