完成OA治理审查矩阵(05-27-oa-product-flow-test-policy-audit)

这个提交包含在:
2026-05-28 00:32:54 +08:00
父节点 6d8ee97b54
当前提交 4b148ccdd4
共修改 15 个文件,包含 386 行新增和 27 行删除
@@ -2,7 +2,7 @@
## Planning 口径
本子任务先保持 planning。总任务完成后,再启动测试覆盖专项。
本子任务已作为测试覆盖审查完成。后续补测试属于代码实施任务,应按风险分批启动。
## 后续执行方式
@@ -16,3 +16,9 @@
- 不自动创建真实业务数据。
- 不执行真实付款、ERP 写入、企业微信写入或数据库重置。
- 不把只读巡检误写成完整业务写入测试通过。
## 完成记录
- 已形成业务流到后端、PC、移动、企业微信、公网只读巡检的覆盖矩阵。
- 已识别高缺口:制度签收、用印台账、发票验真真实 provider、Day 7 真实闭环。
- 已保留 Testing State Capsule,说明本轮没有跑全量 Vitest/E2E。
@@ -21,10 +21,10 @@
## Acceptance Criteria
- [ ] 输出测试覆盖矩阵。
- [ ] 明确每条业务流程是否有后端和前端覆盖。
- [ ] 明确公网试运行只读巡检不能替代真实业务写入流程测试。
- [ ] 给出第一批要补的测试清单和命令。
- [x] 输出测试覆盖矩阵。
- [x] 明确每条业务流程是否有后端和前端覆盖。
- [x] 明确公网试运行只读巡检不能替代真实业务写入流程测试。
- [x] 给出第一批要补的测试清单和命令。
## Out of Scope
@@ -46,3 +46,7 @@ git diff --check
- Testing facts: `docs/测试规约与回归门禁.md`
- Daily runner: `scripts/qa/run-oa-real-use-daily.sh`
- Final readiness runner: `scripts/qa/run-oa-final-launch-readiness.sh`
## Completion Note
2026-05-27:审查型交付已完成,研究结论见 `research/test-coverage-matrix.md`。本轮不新增测试代码,后续缺口补齐需按业务流另起实施任务。
@@ -0,0 +1,55 @@
# 业务流程自动化测试覆盖矩阵
## Conclusion
当前测试不是空白,前端 Playwright 和后端 Vitest 覆盖已经很重。主要缺口集中在:制度签收、用印台账、发票验真真实 provider、合同/采购/付款的真实试运行样本证据,以及最终 Day 7 Go/No-Go 汇总。
## Tooling
| 层级 | 工具/命令 |
| --- | --- |
| Backend | `cd server && npm run prisma:validate && npm test` |
| Frontend static | `cd client && npm run typecheck && npm run build` |
| Frontend E2E | `cd client && npm run test:e2e` 或 focused Playwright |
| UI governance | `node scripts/qa/check-ui-design-rules.mjs` |
| Public smoke/readiness | `scripts/qa/run-oa-real-use-daily.sh`、`run-live-smoke-readiness.sh` |
| Trellis governance | `python3 ./.trellis/scripts/task.py validate <task>`、`node scripts/qa/check-trellis-governance.mjs` |
## Coverage Matrix
| 业务流 | 后端覆盖 | 前端覆盖 | 公网/真实覆盖 | 缺口等级 | 建议 |
| --- | --- | --- | --- | --- | --- |
| 登录/邮箱/找回密码 | `auth.login.test`、email service | `login-portal-ux.spec` | SMTP 已本地/部署验证 | 低 | 继续回归即可 |
| 报销创建/提交/撤回 | `reimbursements.create/detail/withdraw` | `main-flow`、`r102`、`reimbursement-workflow-progress` | OAOPS1 只读;真实写入靠人工 | 中 | Day7 前补人工真实样本 |
| PDF OCR/查重/附件 | `invoicePool.upload/patch/bindable`、`ocrJob`、`invoiceGovernance` | `invoice-ocr-flow`、`r111`、`r125` | live OCR 辅助复核 | 低/中 | 自动验真另列 |
| 发票验真 | `verification.*`、`invoicePool/verification` | 票据中心未覆盖真实 provider | 无真实 provider | 高 | POC 后补 provider 单测和 E2E |
| 审批中心/自审/转审 | `workflow.*`、`utils/workflow` | `workflow-*`、`permission-direct-access` | OAOPS1 只读 | 低/中 | 真实业务闭环继续人工 |
| 付款批次/AP/回单 | `paymentBatches`、`financeLedger`、exports | `reimbursement-payment-batch-flow`、Wave4 | 历史公网短窗口和只读巡检 | 中 | Day7 真实付款闭环证据仍需人工 |
| 采购/费用 | `purchase.*` | `procurement-flow`、移动采购页 | 只读巡检 | 中 | 真实采购样本和制度参数待补 |
| 合同/项目 | `contractsRegistry`、`projects` | `project-workbench`、合同台账页面 | 只读巡检 | 中 | 合同归档/用印样本待补 |
| 资产/盘点/移动扫码 | `assets.*`、inventory | `assets-flow`、MobileAssetScan | ASSET1 证据 | 低/中 | 账号交接证据待制度映射 |
| 员工制度签收 | 员工培训/档案有部分 route 测试 | 无专门签收页 | 无 | 高 | 先人工签收;如阻断再开发 |
| 权限/审计 | `permissions.*`、audit/export | `permission-direct-access`、`settings-governance` | OAOPS1 只读 | 低 | 继续每日巡检 |
## Focused Test Gap List
1. 发票验真 provider POC:provider adapter 单测、feature flag、费用控制、失败降级、票据中心动作 E2E。
2. 制度签收:人工证据先行;若开发,需员工签收 API、不可抵赖记录、公告区分、权限与导出测试。
3. 用印台账:如果现有合同台账字段不足,需合同/用印字段、附件审计、导出和权限测试。
4. Day 7 真实闭环:人工真实报销、采购/费用、合同台账、付款/AP、权限/审计证据应汇总到 OALAUNCH1。
5. 备份恢复:最终启用前仍需独立批准的受控恢复演练证据。
## Commands Observed This Round
- `node scripts/qa/check-ui-design-rules.mjs`:scanned 133 files, 0 findings.
- 任务治理校验在收口阶段执行。
## Testing State Capsule
Goal: 建立业务流程测试覆盖矩阵,不新增测试代码。
Repo signals: Backend Vitest, Frontend Playwright, Vite typecheck/build.
Unit commands: 待最终收口执行 Trellis/task governance;未跑全量 Vitest。
Integration commands: 未执行全量 E2E;本轮引用既有测试清单和 OAOPS1 公网证据。
Assumptions: 审查型任务不要求跑完整回归,只要求识别覆盖和缺口。
Last result: UI design static scan 0 findings.
Next action: 后续专项按缺口补 focused tests。