# Round 5 QA 测试计划:Qwen3-ASR 中文高级模型 状态:v0.1 QA 计划稿 所属子项目:`02-P-NBL` Round:Round 5 日期:2026-06-03 输入文档: - [`prd.md`](prd.md) - [`engineering-tasks.md`](engineering-tasks.md) ## 1. QA 目标 证明 Qwen3-ASR 作为中文高级模型可以被用户主动下载、安装、选择、识别,并且不会破坏 SenseVoice 默认路径、English Moonshine/Parakeet 路径和用户数据。 ## 2. 必测范围 - sherpa-onnx Go/macOS 依赖升级。 - 构建脚本新版 dylib 适配。 - `qwen3-asr-0.6b` profile。 - Qwen3-ASR required files 与 tokenizer 目录校验。 - Qwen3-ASR backend builder。 - 中文设置页模型选择 UI。 - Qwen3-ASR 下载、加载、断网识别。 - SenseVoice <-> Qwen3-ASR 切换。 - English Moonshine/Parakeet 回归。 - 下载失败保护。 - 用户数据保护。 ## 3. 不测范围 - Qwen3-ASR 删除 UI,除非研发本轮实现。 - 粤语独立语言 UI。 - 欧洲语言 UI。 - 正式 Developer ID notarization。 - Qwen3-ASR 多变体对比。 - 全量准确率基准测试。 ## 4. 测试矩阵 | ID | 场景 | 前置条件 | 期望结果 | |---|---|---|---| | R5-QA-001 | 依赖升级编译 | 使用 `sherpa-onnx-go* v1.13.2` | Go 编译通过 | | R5-QA-002 | 构建脚本 dylib | macOS local build | 正确复制新版 `libonnxruntime`,签名通过 | | R5-QA-003 | Qwen3 profile | 查询 `qwen3-asr-0.6b` | profile 存在,backend=`qwen3_asr` | | R5-QA-004 | required files 完整 | 所需文件存在 | 校验通过 | | R5-QA-005 | required files 缺失 | 删除任一 required file | 校验失败 | | R5-QA-006 | tokenizer 缺失 | 删除 `tokenizer/merges.txt` 或 `tokenizer/vocab.json` | 校验失败 | | R5-QA-007 | 中文默认模型 | auto/manual 中文 | current model 仍为 `sensevoice-zh` | | R5-QA-008 | 中文模型列表 | 中文设置页 | 显示 SenseVoice 和 Qwen3-ASR | | R5-QA-009 | Qwen3 未安装 | 点击 Qwen3-ASR | 提示下载,不能直接使用 | | R5-QA-010 | Qwen3 下载 | 联网 | 下载、解压、校验成功 | | R5-QA-011 | Qwen3 加载 | Qwen3 已安装 | engine ready 显示 `Qwen3-ASR · CPU` | | R5-QA-012 | Qwen3 中文识别 | Qwen3 ready | 中文可识别并写入历史 | | R5-QA-013 | Qwen3 中英混输 | Qwen3 ready | 中英混输可识别 | | R5-QA-014 | Qwen3 断网识别 | 断网 | 中文仍可识别 | | R5-QA-015 | Qwen3 切回 SenseVoice | 两模型均安装 | SenseVoice ready | | R5-QA-016 | SenseVoice 切回 Qwen3 | 两模型均安装 | Qwen3 ready | | R5-QA-017 | English 回归 | 切到 English | Moonshine/Parakeet 可用 | | R5-QA-018 | 下载失败保护 | 中断下载/坏包 | 不破坏 SenseVoice/Moonshine/Parakeet | | R5-QA-019 | 旧用户数据保护 | 有 userdict/history/config | 数据不丢 | | R5-QA-020 | 重启持久化 | 选择 Qwen3 后重启 | 仍为 Qwen3,除非用户切回 auto/default | ## 5. 自动化测试建议 后端: - `GetModelProfile("qwen3-asr-0.6b")` - `ValidateModelDir(qwen3-asr-0.6b)` - tokenizer 缺失校验 - `NewWithResolvedModel` backend dispatch - `SelectModel` - `DownloadModelByID` - 未安装模型选择失败 - 下载失败不破坏已有模型 - English/manual 模型不被中文高级模型污染 命令: ```bash cd privatevoice.src go test ./... -count=1 ``` 前端: ```bash cd privatevoice.src/frontend npm run build ``` 构建脚本: ```bash cd privatevoice.src ./scripts/build-local-macos.sh arm64 ``` ## 6. 手工 QA 步骤 ### 6.1 中文升级 Qwen3-ASR 1. 备份真实 App Support。 2. 中文状态启动 App。 3. 确认当前 engine 为 SenseVoice。 4. 在模型区域点击 Qwen3-ASR。 5. 确认 UI 显示下载大小和下载进度。 6. 下载完成后确认 engine 为 Qwen3-ASR。 7. 说中文短句,确认识别和 history。 ### 6.2 Qwen3-ASR 中英混输 1. Qwen3-ASR ready。 2. 说包含英文技术词的中文短句。 3. 检查识别结果和历史。 ### 6.3 断网 Qwen3-ASR 1. Qwen3-ASR ready。 2. 断开 Wi-Fi。 3. 说中文短句。 4. 确认识别成功。 5. 恢复网络。 ### 6.4 切回 SenseVoice 1. Qwen3-ASR ready。 2. 点击 SenseVoice。 3. 确认 engine 变为 SenseVoice。 4. 说中文短句。 ### 6.5 English 回归 1. 切到 English。 2. 确认 Moonshine/Parakeet 状态正常。 3. 分别测试 Moonshine 或 Parakeet 英文识别。 ## 7. QA PASS 标准 - R5-QA-001 到 R5-QA-020 全部通过,或失败项有明确非阻断说明。 - Qwen3-ASR 是可选高级模型,不改变中文默认 SenseVoice。 - English Moonshine/Parakeet 核心路径不退化。 - QA 报告记录版本、build、commit、测试包、日志和关键证据。 ## 8. 已知风险 - `sherpa-onnx-go-macos v1.13.2` 携带的 `libonnxruntime.1.24.4.dylib` 在本地 build 日志中提示最低 macOS 版本为 14.0;Round 5 QA 必须记录测试机 macOS 版本,并验证目标最低系统版本策略是否仍成立。 - Qwen3-ASR 下载包约 838 MiB。QA 已发现旧 downloader 在远程下载时可能因连接重置或 TLS 超时失败;本轮已增加重试和 Range 断点续传,后续仍需关注真实用户弱网体验。