状态:v0.1 QA 计划稿
所属子项目:02-P-NBL
Round:Round 3
日期:2026-06-03
输入文档:
Round 3 的 QA 目标是证明:
English 语言版本默认使用 Moonshine English,中文 SenseVoice 路径不退化,且模型下载/初始化失败不会破坏用户数据。
重点验证:
moonshine-en profile。研发移交 QA 前必须提供:
go test ./... -count=1 结果。npm run build 结果。| 项目 | 要求 |
|---|---|
| OS | macOS |
| 芯片 | Apple Silicon 必测;Intel 如仍支持则抽测 |
| 网络 | 联网、断网 |
| 语言 | zh-CN、en、其他语言 fallback |
| 用户状态 | 老中文用户、新中文用户、新 English 用户、缺文件用户 |
| 模型状态 | SenseVoice 已安装、Moonshine 未安装、Moonshine 已安装、Moonshine 缺文件 |
系统语言不建议反复真实修改 macOS 全局设置作为唯一手段。自动化和半自动 QA 可以用临时用户数据目录、config 手动语言设置、mock detector 或启动环境配合验证。
| ID | 场景 | 前置条件 | 期望结果 |
|---|---|---|---|
| R3-QA-001 | Moonshine profile | 查询 moonshine-en |
profile 存在,backend=moonshine |
| R3-QA-002 | Moonshine required files valid | 五个 required files 完整 | 校验通过 |
| R3-QA-003 | Moonshine required files missing | 删除任意一个 required file | 校验失败 |
| R3-QA-004 | English default model | effective language=en,auto model |
current model=moonshine-en |
| R3-QA-005 | Chinese default model | effective language=zh-CN,auto model |
current model=sensevoice-zh |
| R3-QA-006 | 旧配置兼容 | 缺 ModelSelectionMode |
默认 auto,不锁死旧 SelectedModelID |
| R3-QA-007 | English fresh onboarding | 干净 App Support + English | 下载 Moonshine |
| R3-QA-008 | Chinese fresh onboarding | 干净 App Support + 中文 | 下载/使用 SenseVoice |
| R3-QA-009 | 老中文用户升级 | 已有 SenseVoice/userdict/history | 不下载 Moonshine,数据不丢 |
| R3-QA-010 | Moonshine 加载 | Moonshine 完整安装 | engine ready,硬件信息可区分 Moonshine |
| R3-QA-011 | 英文离线识别 | Moonshine ready + 断网 | 英文语音可识别 |
| R3-QA-012 | history 写入 | 英文识别完成 | history.json 新增英文记录 |
| R3-QA-013 | replacement 不退化 | 中文 replacement 已配置 | 中文回归仍生效 |
| R3-QA-014 | 中文回归 | SenseVoice ready | 中文离线识别可用 |
| R3-QA-015 | 中文切 English | SenseVoice installed,Moonshine missing | 进入 Moonshine 下载/need_model |
| R3-QA-016 | English 切中文 | Moonshine installed,SenseVoice installed | 切回 SenseVoice |
| R3-QA-017 | Moonshine 下载失败 | 阻断网络或坏 URL | 不删除 SenseVoice,不写入有效 Moonshine 状态 |
| R3-QA-018 | Moonshine 初始化失败 | 模型完整但强制 provider/路径异常 | 状态 error,数据不丢 |
| R3-QA-019 | staging 清理 | 下载失败后 | .staging 不被当成可用模型 |
| R3-QA-020 | UI 文案 | English onboarding | 没有中文模型写死文案 |
| R3-QA-021 | 重启持久化 | English + Moonshine installed 后重启 | 仍为 Moonshine ready |
| R3-QA-022 | 其他系统语言 fallback | detector=fr-FR |
effective=en,current model=moonshine-en |
后端优先覆盖:
GetModelProfile("moonshine-en")。ValidateModelDir(moonshine-en)。ResolveCurrentModel。ModelSelectionMode normalize。建议命令:
cd privatevoice.src
go test ./...
前端至少执行:
cd privatevoice.src/frontend
npm run build
history.json。通过标准:
models/moonshine-en。sensevoice-zh。通过标准:
通过标准:
通过标准:
可标记 Round 3 功能性 QA PASS 的条件: