7.6 KiB
7.6 KiB
供应侧测试方案增强版(XR-002)
- 版本:v1.0
- 日期:2026-03-25
- 状态:生效(测试执行基线)
- 目标:形成“需求-接口-测试-指标-门禁”全链路闭环,补齐并发与重放风险覆盖
- 关联文档:
supply_button_level_prd_v1_2026-03-25.mdsupply_api_contract_openapi_draft_v1_2026-03-25.yamlsupply_ui_test_cases_executable_v1_2026-03-25.mdsupply_technical_design_enhanced_v1_2026-03-25.mdacceptance_gate_single_source_v1_2026-03-18.md
1. 测试目标与分层策略
1.1 目标
- 保障供应侧三页链路(账号、套餐、结算)功能正确且不越权。
- 保障凭证边界红线(M-013~M-016)持续达标。
- 保障关键写路径在并发和重复提交下无双扣、无跳态、无脏数据。
- 保障业主口径 SLA、申诉与赔付流程可验证、可追溯、可复盘。
1.2 分层覆盖
- L1 单元测试:状态机迁移、不变量校验、幂等判定、金额计算。
- L2 契约测试:OpenAPI 请求/响应字段、错误码、枚举与脱敏约束。
- L3 集成测试:数据库事务一致性、唯一索引冲突、Outbox 事件。
- L4 UI+API 端到端:按钮级流程、权限态、异常态、审计事件联查。
- L5 安全专项:凭证泄露扫描、query key 拦截、绕平台直连探测。
- L6 可靠性/性能专项:高并发冲突率、重试重放、降级与回滚演练。
2. 测试追踪矩阵(Requirement -> API -> Test -> Metric -> Gate)
| 需求ID | 需求描述 | API | 测试用例 | 验收指标 | 门禁映射 |
|---|---|---|---|---|---|
| R-ACC-001 | 账号凭证验证成功可视化 | POST /accounts/verify |
UI-SUP-ACC-001 | 验证成功率 >=99.5% | SUP-004 |
| R-ACC-002 | 挂载需风险确认与审计 | POST /accounts |
UI-SUP-ACC-002 | 审计覆盖率=100% | SUP-004 |
| R-ACC-003 | 账号状态不跳态 | POST /accounts/{id}/activate/suspend |
UI-SUP-ACC-003/004 + INT-ACC-STATE-001 | 冲突可解释率=100% | SUP-004 |
| R-ACC-004 | 活跃账号不可删除 | DELETE /accounts/{id} |
UI-SUP-ACC-005 | 违规删除成功率=0 | SUP-004 |
| R-PKG-001 | 草稿保存可追踪 | POST /packages/draft |
UI-SUP-PKG-001 | 保存成功率>=99.5% | SUP-005 |
| R-PKG-002 | 套餐发布满足保护价与状态约束 | POST /packages/{id}/publish |
UI-SUP-PKG-002 + INT-PKG-INV-001 | 保护价违规放行率=0 | SUP-005 |
| R-PKG-003 | 批量调价部分失败可回执 | POST /packages/batch-price |
UI-SUP-PKG-005 | 明细完备率=100% | SUP-005 |
| R-SET-001 | 提现发起防重复防双扣 | POST /settlements/withdraw |
UI-SUP-SET-002 + CON-SET-001 | M-004/M-005 达标 | SUP-006 |
| R-SET-002 | 处理中/已完成不可撤销 | POST /settlements/{id}/cancel |
UI-SUP-SET-003 + INT-SET-STATE-001 | 跳态成功率=0 | SUP-006 |
| R-SET-003 | 对账单导出不泄露敏感信息 | GET /settlements/{id}/statement |
UI-SUP-SET-004 + SEC-SUP-001 | M-013=0 | SUP-006/SUP-007 |
| R-SEC-001 | 仅平台凭证入站 | 全部北向 API | SEC-SUP-002 | M-014=100% | SUP-007 |
| R-SEC-002 | 外部 query key 全拒绝 | 全部北向 API | SEC-SUP-002 | M-016=100% | SUP-007 |
| R-SEC-003 | 需求方不可绕平台直连 | 出网策略与告警 | SEC-SUP-002 + SEC-DIRECT-001 | M-015=0 | SUP-007 |
| R-UX-001 | 按钮可见性和禁用规则正确 | 三页面全部按钮 | UI-DESIGN-QA-001~020 | 按钮规则通过率=100% | SUP-003/SUP-008 |
3. 并发与幂等专项(P0)
3.1 CON-SET-001 提现并发双提防护
- 前置:同一
supplier_id可提现余额 1000,且无 processing 单。 - 步骤:10 并发请求同一金额提现,使用不同
request_id,相同业务时窗。 - 断言:
- 最多 1 笔进入
processing。 - 其余请求返回
409/202,无余额负值。 - 账务流水借贷平衡,
billing_conflict_rate_pct<=0.01%。
- 最多 1 笔进入
3.2 CON-SET-002 提现幂等重放
- 前置:准备固定
Idempotency-Key。 - 步骤:同请求体重复发送 20 次;再发送一次异构请求体。
- 断言:
- 同参重复返回同一
settlement_id,idempotent_replay=true。 - 异参返回
409 IDEMPOTENCY_PAYLOAD_MISMATCH。
- 同参重复返回同一
3.3 CON-PKG-001 套餐发布冲突
- 步骤:两个会话同时发布同一
draft套餐。 - 断言:
- 仅一个成功转为
active。 - 另一个返回
409 SUP_PKG_4091。 - 审计日志有冲突记录,且状态无跳变。
- 仅一个成功转为
4. 安全与合规专项(P0)
4.1 凭证泄露扫描
- 扫描对象:API 响应体、错误体、导出文件、审计日志、告警消息。
- 扫描规则:上游 key/token 模式库 + 熵检测 + 前缀检测。
- 通过标准:
supplier_credential_exposure_events=0。
4.2 鉴权边界专项
- 平台凭证成功链路:header bearer 访问主路径成功。
- query key 拒绝链路:
/v1/*与/v1beta/*全拒绝。 - 直连阻断链路:模拟需求方绕平台访问供应方,必须失败并告警。
4.3 申诉与赔付流程可测性
- 场景:提现延迟、误扣款、导出异常、账户误冻结。
- 断言:具备工单编号、SLA 计时、处理人、结果说明、赔付记录。
- 指标:业主承诺时限命中率 >=99%,逾期需自动升级。
5. 性能与可靠性专项(P1)
| 用例ID | 场景 | 负载 | 目标 |
|---|---|---|---|
| PERF-ACC-001 | 账号验证峰值 | 100 RPS, 10min | P95 <= 800ms,错误率 <0.5% |
| PERF-PKG-001 | 套餐批量调价 | 2000 套餐/批 | 全量回执,超时率 <1% |
| PERF-SET-001 | 提现高峰并发 | 50 并发/供应方 | 无双扣,余额不为负 |
| REL-SET-001 | 结算服务实例重启 | 执行中重启一次 | 无状态跳变,幂等可恢复 |
| REL-SEC-001 | 网关规则热更新 | 更新 query key 拦截规则 | M-016 不下降 |
6. 测试数据治理
6.1 数据分层
- 固定样本:用于回归(可重复、可比较)。
- 脱敏样本:用于安全扫描与导出验证。
- 回放样本:来自线上脱敏事件,验证真实边界场景。
6.2 数据规则
- 测试数据必须通过脱敏策略,不得包含真实凭证。
- 每次执行必须记录
dataset_version。 - 幂等与并发用例必须复位余额和状态,防止脏数据串案。
7. CI 与门禁编排
7.1 执行顺序
Contract Gate:OpenAPI 漂移检测(阻断)。Core Integration Gate:事务与不变量校验(阻断)。UI-SUP Gate:按钮级 E2E(阻断)。SEC-SUP Gate:凭证边界与泄露扫描(阻断)。PERF/REL Gate:每晚定时跑,异常进入发布前强制复核。
7.2 失败策略
- P0 用例失败:立即阻断发布 + 当日复盘。
- P1 用例失败:冻结升波,48h 内修复并补测。
- Flaky 管理:单用例 7 日 flaky 率 >2% 必须治理,禁止“无限重试掩盖失败”。
8. 准入与退出标准
8.1 准入(Entry)
- PRD 按钮级规格冻结。
- OpenAPI 字段冻结。
- 技术增强稿(XR-001)已落地。
8.2 退出(Exit)
- 追踪矩阵全部有执行结果与证据链接。
- P0 用例通过率 100%,P1 用例通过率 >=98%。
- M-013~M-016 全部达标,且无未关闭 P0 缺陷。
- 业主验收条款(SLA/申诉/赔付)签字通过。
9. 交付物清单
tests/supply/ui_sup_acc_report_2026-03-28.mdtests/supply/ui_sup_pkg_report_2026-03-29.mdtests/supply/ui_sup_set_report_2026-03-29.mdtests/supply/sec_sup_boundary_report_2026-03-30.mdreports/supply_gate_review_2026-03-31.mdreports/supply_traceability_matrix_2026-03-25.csv(新增)reports/supply_flaky_budget_2026-03-25.md(新增)
完成以上 7 项即视为 XR-002 关闭。