Ariver
2026-06-03 8fe9e37f15b7b36a43daa9faf8c410dedcad2745
Complete Round 3 QA coverage
2 files modified
1 files added
34 ■■■■ changed files
02-P-NBL/round-3/logs/download-failure-protection-20260603.log 21 ●●●●● patch | view | raw | blame | history
02-P-NBL/round-3/qa-report-current.md 11 ●●●●● patch | view | raw | blame | history
02-P-NBL/round-3/todo-list.md 2 ●●● patch | view | raw | blame | history
02-P-NBL/round-3/logs/download-failure-protection-20260603.log
New file
@@ -0,0 +1,21 @@
=== RUN   TestDownloadFailureDoesNotRemoveLegacyModel
[2026-06-03 14:18:03] INFO Downloading model from URL 1: ://bad-url
[2026-06-03 14:18:03] INFO Model install from URL 1 failed: parse "://bad-url": missing protocol scheme
--- PASS: TestDownloadFailureDoesNotRemoveLegacyModel (0.00s)
=== RUN   TestDownloadProfileFallsBackWhenPrimaryArchiveInvalid
[2026-06-03 14:18:03] INFO Downloading model from URL 1: http://127.0.0.1:62376/bad
[2026-06-03 14:18:03] INFO Extracting model archive...
[2026-06-03 14:18:03] INFO Model install from URL 1 failed: extraction failed: tar extraction failed: exit status 1, output: tar: Error opening archive: Unrecognized archive format
[2026-06-03 14:18:03] INFO Downloading model from URL 2: http://127.0.0.1:62376/fallback
[2026-06-03 14:18:03] INFO Extracting model archive...
[2026-06-03 14:18:03] INFO Model download and extraction complete
--- PASS: TestDownloadProfileFallsBackWhenPrimaryArchiveInvalid (0.01s)
=== RUN   TestDownloadProfileBadArchiveDoesNotWriteInstalledState
[2026-06-03 14:18:03] INFO Downloading model from URL 1: http://127.0.0.1:62378
[2026-06-03 14:18:03] INFO Extracting model archive...
[2026-06-03 14:18:03] INFO Model install from URL 1 failed: extraction failed: tar extraction failed: exit status 1, output: tar: Error opening archive: Unrecognized archive format
--- PASS: TestDownloadProfileBadArchiveDoesNotWriteInstalledState (0.00s)
PASS
ok      voicesnap/internal/model    0.623s
02-P-NBL/round-3/qa-report-current.md
@@ -1,6 +1,6 @@
# Round 3 QA 报告:Moonshine English 默认模型
状态:核心真实 QA 通过;下载失败保护未测
状态:核心真实 QA 通过;下载失败保护自动化通过
所属子项目:`02-P-NBL`
Round:Round 3
日期:2026-06-03
@@ -36,7 +36,7 @@
| English -> 中文语言切换 | PASS | UI 切换为中文,配置 `LanguageID=zh-CN` |
| 中文 SenseVoice 回归 | PASS | UI 显示 `SenseVoice · CoreML (Apple Neural Engine)`,日志识别 `这是中文离线识别测试。` |
| 用户数据保护 | PASS | 测试前完整备份,测试后 Moonshine 和 SenseVoice 模型均恢复 |
| 下载失败保护 | NOT RUN | 本次未故意制造网络中断/坏 URL 下载失败场景 |
| 下载失败保护 | PASS | `download-failure-protection-20260603.log`,覆盖坏 URL、坏 archive、fallback、失败不破坏已有模型 |
## 4. 关键日志证据
@@ -79,13 +79,10 @@
## 6. 结论
Round 3 核心真实 QA 通过:
Round 3 QA 通过:
- English 可使用 Moonshine English 离线识别。
- 断网状态下 English 识别仍可工作。
- 切回中文后 SenseVoice 可正常加载和识别。
- 中英文模型切换没有破坏已有模型和用户配置。
剩余未测项:
- 下载失败保护。建议如需完整 QA PASS,再单独做坏 URL 或网络中断下载失败测试。
- 下载失败保护自动化验证通过,失败不会破坏已有模型,坏包不会写入 installed state,可 fallback 到可用下载源。
02-P-NBL/round-3/todo-list.md
@@ -45,7 +45,7 @@
- [x] 中文老用户 SenseVoice 回归
- [x] 语言切换模型同步
- [x] 断网英文识别
- [ ] 下载失败保护
- [x] 下载失败保护
- [x] 缺文件保护
- [x] QA 报告