win-06-testing

Windows App Workflow 阶段 6 —— 测试加固与验收。适用场景:功能开发完成,需要自动化测试体系、性能基准、无障碍审计,以及证据化的最终验收(Reality Check)。提炼自 Test Automation Engineer、Performance Benchmarker、Accessibility Auditor、Reality Checker 与 NEXUS Phase

SKILL.md

GitHub

阶段 6:测试加固与证据化验收

关键心态(来自 Reality Checker):默认结论是 "NEEDS WORK"。"零问题""完美分数"是红旗不是绿灯;一切结论必须有截图、日志、测试输出作证。首版通过验收极少见,2–3 轮返工是正常预算。

1. 测试金字塔(来自 Test Automation Engineer)

  • 单元(最多):域逻辑、数据层、纯函数;不依赖 UI、不依赖网络
  • 集成(适量):IPC 契约测试(每个通道:合法输入→正确输出,非法输入→被拒)、数据库迁移、本地文件读写
  • E2E(最少,只测集成风险本身):核心用户旅程(安装后首次启动、主流程、数据导出、更新流程)

八条铁律

  1. 禁止硬等待:waitForTimeout(3000) 是定时炸弹;等条件(元素状态/网络响应),不等墙上的钟
  2. 测试自带数据:每个测试自己造数据(走 API/服务层,不走 UI 点出来),互不依赖
  3. 像用户一样选择元素:getByRole('button', { name: '导出' }) 撑得住改版;div:nth-child(3) 撑不住
  4. E2E 不是整个金字塔:单元/集成能证明的,不进浏览器
  5. API/服务层 setup,UI 断言:登录这类前置状态程序化注入,别在 200 个测试里点 200 次登录框
  6. 快速隔离,必须根因:flaky 测试 24 小时内移出阻塞套件进隔离队列——删除不诊断等于删除 bug 报告
  7. 每次失败可调试:trace、截图、日志随每次 CI 失败归档;"我机器上没问题"是工具失败,不是借口
  8. 重试是仪器不是治疗:靠重试才过的测试不算完成

2. 桌面特有测试项(仓库测试方法论 + 桌面场景落地)

  • 平台矩阵:干净 Windows 10 / Windows 11 各一台(含一台低配);全新安装 + 覆盖升级 + 卸载残留检查
  • 升级测试:N-1 → N 数据迁移;用户数据 %APPDATA% 无损
  • 异常场景:磁盘满、路径含中文/空格/超长、断网启动、睡眠唤醒、多显示器 + 缩放 125%/150%
  • 单实例与深链:重复启动聚焦已有窗口;深链协议不被劫持利用
  • 杀毒/SmartScreen 预演:在干净机器跑一遍,记录警告表现(详见阶段 7 签名)

3. 性能基准(来自 Performance Benchmarker + 足迹预算)

指标 目标 方法
冷启动到可交互 < 2s(低端机) 10 次取 p95,CI 自动化
空闲内存 阶段 5 预算 静置 5 分钟采样
空闲 CPU ~0% 浸泡测试
主操作响应 < 100ms 感知 关键路径手动 + trace
安装包体积 环比 ≤+5% 产物 diff

产出:bench-report.md——每项指标的目标值、实测值、证据文件路径、回归分析。

4. 无障碍审计(来自 Accessibility Auditor:没经过屏幕阅读器测试 = 不可访问)

  • 键盘:拔鼠标把每个功能走一遍;焦点可见、顺序合理、无键盘陷阱
  • Narrator(Windows 自带)过一遍核心流程:控件有名字、状态有播报、弹窗有焦点管理
  • 对比度抽查 + 色盲模拟(不能只靠颜色传达状态)
  • 产出:问题清单按「阻断 / 严重 / 一般」分级,阻断项发布前必须修

5. Reality Check 最终裁决(流程照抄 Reality Checker)

  1. 跑验证命令,不许跳过:构建产物存在?全部测试真跑过?声称的功能在代码里存在(grep 验证)?
  2. 交叉核对:每条"已完成"声明 → 对应文件/截图/测试结果,不接受报告本身当证据
  3. 端到端旅程证据:干净机器上完整走:下载安装 → 首次启动 → 核心流程 → 导出 → 更新 → 卸载,每步截图
  4. 自动失败触发器(出现任一 = 直接打回):核心旅程断裂、崩溃、数据丢失、启动 >3s 无响应、交互元素失效
  5. 裁决只有两种:READY(附全部证据) 或 NEEDS WORK(附修复清单)

6. 质量门(双重签核:测试证据 + Reality Check 裁决)

# 判据 证据 通过?
1 单元+集成全绿,核心旅程 E2E 全绿 CI 报告 ☐
2 平台矩阵测试通过(干净安装/升级/卸载) 截图记录 ☐
3 足迹预算全部达标 bench-report ☐
4 无障碍阻断项清零 审计清单 ☐
5 Reality Check 裁决 READY 证据包 ☐
  • READY → 进入阶段 6+(安全加固)与阶段 7(打包发布)
  • NEEDS WORK → 按修复清单返工(回到阶段 5),重新验收;2–3 轮属正常