8.0 KiB
8.0 KiB
| 1 | ID | Title | Description | Acceptance | Test_Method | Tools | Dev_Status | Review1_Status | Regression_Status | Files | Dependencies | Notes |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2 | S1 | 测试组织账号合同与现状确认 | 建立正式审批链测试替身账号执行合同,确认当前只用 SMOKE001/SMOKE002 不足以替代负责人、财务、主管等真实人员。 | 1) 合同记录不使用真实员工日常账号;2) 明确远端写入边界仅限 SMOKE 测试账号;3) 只读确认现有 SMOKE 账号、部门和法人;4) 主 R5/O3 仍不标完成。 | 流程级验证:git status --short;只读查询远端 SMOKE* 账号、departments、legalEntities;python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-10_20-33-04-formal-smoke-test-accounts.csv。 | git|ssh|python3|manual | DONE | DONE | DONE | issues/2026-05-10_20-33-04-formal-smoke-test-accounts.csv | [] | S1 completed:当前远端只有 SMOKE001=admin+employee directManager=null、SMOKE002=employee directManager=majianyong/HYD000007;部门=公司/管理部,法人=试运行法体;现有账号不足以替代主管/负责人/财务/HR 正式验收;本轮后续写入边界限定为 SMOKE 测试账号,不部署、不迁移、不改远端 .env。 |
| 3 | S2 | 创建测试组织账号与本机凭据 | 创建或更新 SMOKE101/SMOKE201/SMOKE301/SMOKE302/SMOKE401,并更新 SMOKE002 直属主管到测试主管;密码只写入仓库外本机凭据文件。 | 1) SMOKE002 直属主管为 SMOKE101;2) SMOKE101=manager+employee 直属领导 SMOKE201;3) SMOKE201=ceo+employee;4) SMOKE301=finance+employee;5) SMOKE302=finance+finance_mgr+employee;6) SMOKE401=hr+employee;7) ~/.hyb-oa/live-smoke.env 权限 600 且不提交。 | 流程级验证:stat -c '%a %n' ~/.hyb-oa/live-smoke.env;远端 Prisma transaction 写入后只读复核 employeeNo/email/status/roles/directManager;node scripts/qa/check-live-smoke-env.mjs --strict。 | ssh|node|manual | DONE | DONE | DONE | external|~/.hyb-oa/live-smoke.env | ["S1"] | S2 completed:因上一轮工具输出污染过生成密码,本轮已轮换全部 SMOKE 测试密码;~/.hyb-oa/live-smoke.env 权限 600,未提交、未打印密码;远端 Prisma transaction 已创建/更新 SMOKE001/SMOKE002/SMOKE101/SMOKE201/SMOKE301/SMOKE302/SMOKE401,部门=管理部,法人=试运行法体;SMOKE002.directManager=SMOKE101,SMOKE101.directManager=SMOKE201,SMOKE201=ceo+employee,SMOKE301=finance+employee,SMOKE302=finance+finance_mgr+employee,SMOKE401=hr+employee;已撤销测试账号旧会话 23 个;check-live-smoke-env --strict 通过。回滚:删除新增 SMOKE101/SMOKE201/SMOKE301/SMOKE302/SMOKE401,SMOKE002.direct_manager_id 恢复 HYD000007/majianyong,按需要再次重置 SMOKE001/SMOKE002 密码;未部署、未迁移、未重启、未改远端 .env。 |
| 4 | S3 | 更新 R5/O3 与真机清单口径 | 把 O3/R5 和真机验收清单从真实人员链路调整为测试替身账号链路,同时保留生产组织事实源说明。 | 1) 真机矩阵使用 SMOKE002->SMOKE101->SMOKE201->SMOKE302/SMOKE301;2) SMOKE001 仅管理员不具备业务审批权;3) 企业微信测试成员缺失时记录 BLOCKED;4) 主 R5/O3 不因文档调整自动完成。 | 流程级验证:rg -n 'SMOKE101|SMOKE201|SMOKE301|SMOKE302|测试替身|企业微信测试成员|admin 不代表业务审批权' docs/trialrun/real-device-public-checklist.md issues/2026-05-10_12-39-37-release-readiness-live-smoke.csv issues/2026-05-10_18-25-33-formal-approval-org-config.csv;git diff --check。 | rg|manual | DONE | DONE | DONE | docs/trialrun/real-device-public-checklist.md|issues/2026-05-10_12-39-37-release-readiness-live-smoke.csv|issues/2026-05-10_18-25-33-formal-approval-org-config.csv | ["S2"] | S3 completed:真机清单、O3 合同和主 R5 Notes 已改为测试替身账号验收口径;生产正式组织事实源仍为 majianyong/wangshunli,但 R5/O3 验收使用 SMOKE002->SMOKE101->SMOKE201->SMOKE302/SMOKE301;SMOKE001 仅测试管理员,不代表业务审批权;若无企业微信测试成员,企业微信原生身份验收记 BLOCKED,R5/O3 不得 DONE。 |
| 5 | S4 | 测试组织自动化验收 | 用测试组织账号执行公网自动化 live smoke、真实 OCR 和正式审批链自动化覆盖,验证不依赖真实员工。 | 1) run-live-smoke-readiness.sh 通过;2) 普通员工低/中额待办给 SMOKE101;3) 高额/例外链路进入 SMOKE101->SMOKE201 或按现有规则进入财务节点;4) SMOKE101 本人申请给 SMOKE201;5) SMOKE201 自审被阻断或进入非本人兜底;6) SMOKE001 不能仅凭 admin 审批;7) 财务/财务主管权限由 SMOKE301/SMOKE302 验证。 | 流程级验证:LIVE_SMOKE_BASE_URL=https://oa.hyinda.com bash scripts/qa/run-live-smoke-readiness.sh;执行临时/仓库脚本提交请假/报销/采购并只读检查 workflowTask assignee;远端 audit-smoke-data 只读统计。 | bash|node|ssh|playwright | DONE | DONE | DONE | scripts/qa/*|external | ["S3"] | S4 completed:run-live-smoke-readiness.sh 通过,证据 artifacts/qa-flow/live-smoke-readiness-20260510-205136,public-bundle findings=0,live smoke 3 passed,真实 OCR 样票不再 SKIP,终态 ocr_failed/重复发票可解释,pending OCR 因缺 DATABASE_URL 辅助 SKIP;临时正式测试组织链路脚本通过:SMOKE002 请假 214cb9d1-4b5a-4cef-9b3f-07243e9ea100 -> task 8a72bc3a-7773-4cc9-af3f-ce8b08c66a72,由 SMOKE101 可见;SMOKE001 admin-only 审批该任务被拒绝 403/PERM_002;SMOKE101 本人请假 af74a8e3-3df4-4a0b-b33d-8ab1f9116652 -> task da6cc325-4621-4992-a5a8-96ffd56b442a,由 SMOKE201 可见;SMOKE201 本人请假 81dcded2-e455-4568-9d25-9152f725ef33 提交被 409/VALID_001 阻断,details.workflow=no_actionable_approver reason=no_manager_found;小额报销 735095fa-dec1-492b-ab00-1d042a85d838 经 SMOKE101 审批后进入 finance role task 262f25d2-0203-470b-a4fc-fa4f81d62448,可由 SMOKE301 验证;大额报销 edfc6bbb-3210-433d-94fe-61eaacfb1eff 链路为 SMOKE101 task 177b3a9e-67fe-447d-92f4-96a652a06841 -> ceo role task 2b3a28d9-bfbb-42f8-8349-870d488577b6 -> finance_mgr role task 61af7b2f-5463-4c1c-97e9-b1c68dad6b63,可由 SMOKE302 验证;只读 smoke 审计 employees=7, authSessions=613, reimbursements=3, reimbursementItems=2, invoices=7, leaveRequests=4, workflowInstances=5, workflowTasksAssigned=4, workflowTasksCompleted=3, workflowHistory=8, notifications=6, auditLogs=280;本轮不清理测试数据,清理需另拆 destructive cleanup Issue。 |
| 6 | S5 | 企业微信移动体验门禁与状态回填 | 使用现有 oa_smoke_01/oa_smoke_02 企业微信测试成员绑定 OA 测试员工和测试主管,完成移动入口与体验复测;不再要求负责人、财务、财务主管替身账号绑定企业微信。 | 1) 企业微信工作台可进入 OA;2) 已绑定免登录、移动首页、审批待办、报销详情、PDF 上传入口、底部导航、吸底双按钮和通知 deeplink 有记录;3) SMOKE201/SMOKE301/SMOKE302 通过 PC/自动化验收,不作为企业微信硬门槛;4) O3/R5 仅在 PC 审批链、自动化 live smoke、真实 PDF OCR 和企业微信移动体验均通过后 DONE;5) R6 仍等待 R5 完成。 | 流程级验证:按 docs/trialrun/real-device-public-checklist.md 用 oa_smoke_01->SMOKE002 和 oa_smoke_02->SMOKE101 执行企业微信移动体验;负责人/财务替身角色通过 PC 公网网页或自动化验证;校验新合同、O3 合同和主 R5 合同;git diff --check。 | manual|python3 | DOING | TODO | TODO | docs/trialrun/real-device-public-checklist.md|issues/2026-05-10_12-39-37-release-readiness-live-smoke.csv|issues/2026-05-10_18-25-33-formal-approval-org-config.csv | ["S4"] | S5 gate split 2026-05-10:企业微信真机门禁改为移动体验验收,不再承担全角色审批链证明;现有 oa_smoke_01->SMOKE002、oa_smoke_02->SMOKE101 足够覆盖提交人和审批人核心移动体验。SMOKE201/SMOKE301/SMOKE302 负责人/财务替身账号通过 PC 公网网页或自动化验证,不再要求企业微信绑定。S5 仍 DOING/TODO/TODO:491b42a 尚未部署,移动底部导航、报销详情吸底双按钮、PDF 上传入口和通知 deeplink 需部署后复测;主 R5 和 R6 仍未解锁。 |