Files
lijiaoqiao/docs/supply_test_plan_enhanced_v1_2026-03-25.md
2026-03-26 20:06:14 +08:00

7.6 KiB
Raw Blame History

供应侧测试方案增强版XR-002

  • 版本v1.0
  • 日期2026-03-25
  • 状态:生效(测试执行基线)
  • 目标:形成“需求-接口-测试-指标-门禁”全链路闭环,补齐并发与重放风险覆盖
  • 关联文档:
    • supply_button_level_prd_v1_2026-03-25.md
    • supply_api_contract_openapi_draft_v1_2026-03-25.yaml
    • supply_ui_test_cases_executable_v1_2026-03-25.md
    • supply_technical_design_enhanced_v1_2026-03-25.md
    • acceptance_gate_single_source_v1_2026-03-18.md

1. 测试目标与分层策略

1.1 目标

  1. 保障供应侧三页链路(账号、套餐、结算)功能正确且不越权。
  2. 保障凭证边界红线M-013~M-016持续达标。
  3. 保障关键写路径在并发和重复提交下无双扣、无跳态、无脏数据。
  4. 保障业主口径 SLA、申诉与赔付流程可验证、可追溯、可复盘。

1.2 分层覆盖

  1. L1 单元测试:状态机迁移、不变量校验、幂等判定、金额计算。
  2. L2 契约测试OpenAPI 请求/响应字段、错误码、枚举与脱敏约束。
  3. L3 集成测试数据库事务一致性、唯一索引冲突、Outbox 事件。
  4. L4 UI+API 端到端:按钮级流程、权限态、异常态、审计事件联查。
  5. L5 安全专项凭证泄露扫描、query key 拦截、绕平台直连探测。
  6. 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 提现并发双提防护

  1. 前置:同一 supplier_id 可提现余额 1000且无 processing 单。
  2. 步骤10 并发请求同一金额提现,使用不同 request_id,相同业务时窗。
  3. 断言:
    1. 最多 1 笔进入 processing
    2. 其余请求返回 409/202,无余额负值。
    3. 账务流水借贷平衡,billing_conflict_rate_pct<=0.01%

3.2 CON-SET-002 提现幂等重放

  1. 前置:准备固定 Idempotency-Key
  2. 步骤:同请求体重复发送 20 次;再发送一次异构请求体。
  3. 断言:
    1. 同参重复返回同一 settlement_ididempotent_replay=true
    2. 异参返回 409 IDEMPOTENCY_PAYLOAD_MISMATCH

3.3 CON-PKG-001 套餐发布冲突

  1. 步骤:两个会话同时发布同一 draft 套餐。
  2. 断言:
    1. 仅一个成功转为 active
    2. 另一个返回 409 SUP_PKG_4091
    3. 审计日志有冲突记录,且状态无跳变。

4. 安全与合规专项P0

4.1 凭证泄露扫描

  1. 扫描对象API 响应体、错误体、导出文件、审计日志、告警消息。
  2. 扫描规则:上游 key/token 模式库 + 熵检测 + 前缀检测。
  3. 通过标准:supplier_credential_exposure_events=0

4.2 鉴权边界专项

  1. 平台凭证成功链路header bearer 访问主路径成功。
  2. query key 拒绝链路:/v1/*/v1beta/* 全拒绝。
  3. 直连阻断链路:模拟需求方绕平台访问供应方,必须失败并告警。

4.3 申诉与赔付流程可测性

  1. 场景:提现延迟、误扣款、导出异常、账户误冻结。
  2. 断言具备工单编号、SLA 计时、处理人、结果说明、赔付记录。
  3. 指标:业主承诺时限命中率 >=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 数据分层

  1. 固定样本:用于回归(可重复、可比较)。
  2. 脱敏样本:用于安全扫描与导出验证。
  3. 回放样本:来自线上脱敏事件,验证真实边界场景。

6.2 数据规则

  1. 测试数据必须通过脱敏策略,不得包含真实凭证。
  2. 每次执行必须记录 dataset_version
  3. 幂等与并发用例必须复位余额和状态,防止脏数据串案。

7. CI 与门禁编排

7.1 执行顺序

  1. Contract GateOpenAPI 漂移检测(阻断)。
  2. Core Integration Gate:事务与不变量校验(阻断)。
  3. UI-SUP Gate:按钮级 E2E阻断
  4. SEC-SUP Gate:凭证边界与泄露扫描(阻断)。
  5. PERF/REL Gate:每晚定时跑,异常进入发布前强制复核。

7.2 失败策略

  1. P0 用例失败:立即阻断发布 + 当日复盘。
  2. P1 用例失败冻结升波48h 内修复并补测。
  3. Flaky 管理:单用例 7 日 flaky 率 >2% 必须治理,禁止“无限重试掩盖失败”。

8. 准入与退出标准

8.1 准入Entry

  1. PRD 按钮级规格冻结。
  2. OpenAPI 字段冻结。
  3. 技术增强稿XR-001已落地。

8.2 退出Exit

  1. 追踪矩阵全部有执行结果与证据链接。
  2. P0 用例通过率 100%P1 用例通过率 >=98%。
  3. M-013~M-016 全部达标,且无未关闭 P0 缺陷。
  4. 业主验收条款SLA/申诉/赔付)签字通过。

9. 交付物清单

  1. tests/supply/ui_sup_acc_report_2026-03-28.md
  2. tests/supply/ui_sup_pkg_report_2026-03-29.md
  3. tests/supply/ui_sup_set_report_2026-03-29.md
  4. tests/supply/sec_sup_boundary_report_2026-03-30.md
  5. reports/supply_gate_review_2026-03-31.md
  6. reports/supply_traceability_matrix_2026-03-25.csv(新增)
  7. reports/supply_flaky_budget_2026-03-25.md(新增)

完成以上 7 项即视为 XR-002 关闭。