状态:v0.1 QA 计划稿
所属子项目:02-P-NBL
Round:Round 2
日期:2026-06-03
输入文档:
Round 2 的 QA 目标是证明:
语言版本配置可被正确检测、保存、恢复,并且不会破坏 Round 1 已验证通过的 SenseVoice 离线识别链路。
重点验证:
LanguageMode / LanguageID 默认值。SelectedModelID 不被语言切换改写。研发移交 QA 前必须提供:
go test ./... 结果。| 项目 | 要求 |
|---|---|
| OS | macOS |
| 芯片 | Apple Silicon 必测;Intel 如仍支持则抽测 |
| 网络 | 联网、断网 |
| 系统语言 | 中文、English、至少一种其他语言模拟 |
| 用户状态 | 老用户、新用户、非法配置用户 |
| 模型状态 | 旧目录 models/sensevoice、新目录 models/sensevoice-zh |
系统语言不建议真实反复改系统全局设置作为唯一测试手段。自动化应通过 detector mock 覆盖;真机只做关键 smoke。
| ID | 场景 | 前置条件 | 期望结果 |
|---|---|---|---|
| R2-QA-001 | 老配置升级 | config 无 LanguageMode / LanguageID |
正常启动,默认 auto,有效语言正确 |
| R2-QA-002 | 中文系统 auto | detector 返回 zh-CN |
effective=zh-CN,UI 中文 |
| R2-QA-003 | English 系统 auto | detector 返回 en-US |
effective=en,UI English |
| R2-QA-004 | 其他系统语言 auto | detector 返回 fr-FR |
effective=en,UI English |
| R2-QA-005 | 手动中文 | 设置页选择中文 | 保存 manual/zh-CN,UI 立即中文 |
| R2-QA-006 | 手动 English | 设置页选择 English | 保存 manual/en,UI 立即 English |
| R2-QA-007 | 切回自动 | 设置页选择自动 | 保存 auto,effective 跟随 detector |
| R2-QA-008 | 重启持久化 | 手动 English 后重启 | 仍为 English |
| R2-QA-009 | 非法 LanguageMode | config 写入坏值 | 启动不崩溃,fallback auto |
| R2-QA-010 | 非法 LanguageID | config 写入坏值 | 启动不崩溃,fallback 有效语言 |
| R2-QA-011 | 语言切换不改模型 | 已安装 SenseVoice | SelectedModelID 仍为 sensevoice-zh |
| R2-QA-012 | 语言切换不下载模型 | 已有模型,联网观察 | 不触发新下载 |
| R2-QA-013 | 语言切换不删模型 | 旧目录模型 | models/sensevoice 保留 |
| R2-QA-014 | 词库保留 | userdict 有 replacement | 切换语言后 replacement 仍在 |
| R2-QA-015 | 历史保留 | history 有记录 | 切换语言后历史不丢 |
| R2-QA-016 | 热键保留 | 自定义热键或默认热键 | 切换语言后仍可触发 |
| R2-QA-017 | 断网识别 | 已有模型,断网 | 可录音识别并写历史 |
| R2-QA-018 | UI 不暴露新模型 | 任意语言 | 不出现 Moonshine/Parakeet/Qwen3-ASR |
| R2-QA-019 | English UI 文案 | effective=en |
设置页、onboarding 关键文案不是中文 |
| R2-QA-020 | 中文 UI 文案 | effective=zh-CN |
设置页、onboarding 关键文案是中文 |
后端优先覆盖:
NormalizeLanguageMode。NormalizeLanguageID。ResolveEffectiveLanguage。LanguageRegistry 查询和排序。GetLanguageSettings 返回 options。SetLanguageAuto。SetLanguageManual。建议命令:
cd privatevoice.src
go test ./...
前端至少执行:
cd privatevoice.src/frontend
npm run build
config.jsonuserdict.jsonhistory.jsonmodels/sensevoice通过标准:
sensevoice-zh。通过标准:
en-US。sensevoice-zh。通过标准:
通过标准:
通过标准:
可标记 Round 2 功能性 QA PASS 的条件: