test-strategy-report.md 9.1 KB

数字能量小程序测试策略评估报告

日期: 2026-05-31 评估人: 数字能量小程序测试工程师


1. 现有测试资产总览

1.1 后端测试(10个JUnit类,共 2,683 行)

测试类 被测模块 行数 覆盖程度 质量评估
CalculatorServiceTest 命盘计算引擎 401 ⭐⭐⭐ 高 7位置+16位置+卓越数+30位置方案文档
UserServiceTest 用户/登录/配额 369 ⭐⭐⭐ 高 注册、推广码、VIP、额度、跨天重置
OrderServiceTest 订单/支付回调 365 ⭐⭐⭐ 高 幂等、B端固定佣金、C端比例佣金、多级
ChartServiceTest 命盘CRUD/咨询 287 ⭐⭐⭐ 高 创建/配额/Dify降级/查重/删除权限
ControllerIntegrationTest 控制器集成 683 ⭐⭐⭐ 高 Auth/Chart/Chat/Pay/Admin/Profile/Commission
ChatServiceTest AI问答 166 ⭐⭐⭐ 高 消息保存/配额/权限/Dify降级/顺序验证
ConfigServiceTest 系统配置 155 ⭐⭐⭐ 高 缓存/CRUD/类型转换/缺省值
CommissionServiceTest 佣金查询 147 ⭐⭐ 中 基础查询覆盖,状态流转测试 @Disabled
WithdrawServiceTest 提现管理 125 ⭐⭐ 中 Phase 2功能,基础覆盖
DifyServiceTest AI调用 83 ⭐⭐ 中 成功/异常/空响应,工具类覆盖有限

1.2 测试资产分布

后端总代码量: ~2,897 行(12 services + 10 controllers)
后端测试代码: ~2,683 行(含 ControllerIntegrationTest)
测试/代码比: ~92%(仅看有测试的模块)

1.3 前端测试

类型 状态
单元测试框架 ❌ 未安装
组件测试 ❌ 无
Store 测试 ❌ 无
E2E 测试 ❌ 无
真机测试方案 ❌ 无

2. 覆盖缺口矩阵

2.1 后端完全未覆盖

服务 行数 风险等级 说明
WxPayService 189 行 🔴 高 微信支付统一下单、回调验证、签名。支付是资金核心
WeChatService 67 行 🟡 中 codeToOpenid、消息模板等
AnnotationService 64 行 🟢 低 标注/标签CRUD,逻辑简单

2.2 控制器分层覆盖

ControllerIntegrationTest 覆盖了 API 层级的集成,但缺少:

  • 逐控制器粒度测试(不依赖MockMvc的场景测试)
  • AdminController 的配置管理具体功能验证(仅测了 token 拦截)
  • ProfileController updateProfile 的字段级验证

2.3 已知缺陷(标记 @Disabled

位置 问题 影响
CommissionServiceTest.testCommissionStatusFlow_pendingToSettled pending→settled 状态流转断链 佣金状态显示可能不正确
CommissionServiceTest.testCommissionStatusFlow_settledToAvailable settled→available 自动流转未实现 提现管理 Phase 2 依赖此功能
CalculatorServiceTest.testExternalPosition_Formulas_Documented 外部位置独立公式待实现 P-X 位置计算可能沿用旧方案
CalculatorServiceTest.testExternalPosition_30PositionNaming 30位置命名方案待实现 A-H input层命名不完整

2.4 前端测试缺口

模块 风险 理由
TriangleChart.vue (930行) 🔴 高 复杂Canvas/position定位/交互/批注/Tag。视觉呈现无自动化保障
calculator.js (172行) 🔴 高 前端保留计算逻辑,需与后端CalculatorService一致性验证
stores/user.js (132行) 🟡 中 登录、状态管理、配额、分销数据的state变动
stores/chart.js (72行) 🟡 中 咨询流程状态管理
API层 utils/api.js 🟡 中 请求拦截、错误处理、token刷新
10个页面 🟢→🟡 页面间导航、参数传递、生命周期

3. 分层测试策略建议

3.1 优先级 P0 — 阻塞级(立刻行动)

# 测试项 类型 预估工作量
1 WxPayService 单元测试 后端 0.5天
2 calculator.js 与 CalculatorService 一致性验证 前端+后端 0.5天
3 前端单元测试框架搭建 (vitest + @vue/test-utils) 基础设施 0.5天

3.2 优先级 P1 — 关键级(当前 Phase 1)

# 测试项 类型 预估工作量
4 TriangleChart.vue 组件测试(渲染+交互) 前端 1天
5 stores/user.js Pinia store 测试 前端 0.5天
6 stores/chart.js 咨询流程测试 前端 0.5天
7 WeChatService 单元测试 后端 0.25天
8 CommissionService 状态流转修复验证 后端 0.25天
9 AnnotationService 单元测试 后端 0.25天
10 分销链路E2E测试(推广码→绑定→付费→佣金→面板) 集成 1天

3.3 优先级 P2 — 重要级

# 测试项 类型 预估工作量
11 AdminController 管理后台API测试 后端 0.5天
12 ProfileController 资料更新字段级验证 后端 0.25天
13 页面导航流测试(首页→登录→命盘→支付→记录→个人) 前端集成 0.5天
14 真机兼容测试矩阵(Top 10设备 + iOS/Android) 真机 1天
15 Canvas截图比对回归方案 视觉 1天

3.4 优先级 P3 — 增强级

# 测试项 类型 预估工作量
16 额度控制边界测试(0/1/3/999 边界) 后端 0.25天
17 API错误码全覆盖验证(每个controller的异常路径) 后端 0.5天
18 云函数冷启动性能测试 性能 0.5天
19 分销多级(3+层)佣金结算准确性 后端 0.5天
20 微信审核合规检查自动化 合规 0.5天

4. 测试架构建议

4.1 前端测试技术选型

单元测试: vitest + @vue/test-utils(与 Vite 生态兼容)
组件测试: vitest + @vue/test-utils(渲染 + 交互 + Emits)
Store测试: pinia 测试助手(isolate store from component)
E2E:     Playwright(web版)/ 小程序自动化SDK(真机)
覆盖率:   c8/istanbul(vitest内置)

4.2 后端测试增强

现有体系: JUnit 5 + Mockito + SpringBootTest + MockMvc
建议补充:
  - WxPayService: Mock RestTemplate, 验证签名/参数/回调
  - WeChatService: Mock HttpClient, 验证codeToOpenid异常
  - AnnotationService: 与已存在的ControllerIntegrationTest互补
  - 参数化测试: @ParameterizedTest 覆盖更多生日边界

4.3 calculator.js 一致性验证方案

使用 数据驱动参数化测试,取 N=50+ 组生日分别在前端和后端计算,对比结果:

// 前端数据生成(Node环境运行calculator.js)
const result = calculateTriangle(1990, 6, 15)
// 输出: {I:6, J:6, K:1, L:9, M:3, N:1, O:4, P:9, ...}
// 后端验证(JUnit ParameterizedTest)
@CsvSource({
  "1990,6,15,6,6,1,9,3,1,4,9,9,9,2,1,3,7,5,3",
  "2009,5,26,5,8,2,9,4,11,6,4,3,7,3,2,5,1,8,9"
})
void testConsistency(int y, int m, int d, ...int expected) {
  assertEquals(expected, calculatorService.calculateFullTriangle(y, m, d));
}

4.4 可视化测试方案

TriangleChart 组件验证分为三层:

Layer 1: 数据层 — chart prop 传入不同数据,验证matrix computed正确
Layer 2: 渲染层 — vitest + jsdom 验证 DOM 结构(数字位置、CSS class)
Layer 3: 视觉层 — Playwright 截图比对(需web版),或真机手动

5. 风险矩阵

风险 概率 影响 缓解措施
支付接口Mock与实际微信行为不一致 沙箱验证+手工回归+日志审计
小程序Canvas在真机和模拟器渲染差异 截面对比+真机抽查清单
calculator.js与后端计算逻辑不同步 一致性参数化测试+CI门禁
分销佣金计算出现精度问题 大数据量随机测试+边界验证
微信审核政策变更导致下线 极高 合规检查清单+审核预检流程
AI解读降级策略未被触发 Dify异常注入测试+Dify健康监控

6. 量化目标

指标 当前 目标 (Phase 1)
后端Service测试覆盖率 ~75% (9/12) 100% (12/12)
后端Controller测试覆盖率 ~100% (1集成) 逐控制器+集成
前端单元测试覆盖率 0% >60% (关键模块)
前端组件测试 0 至少3个 (TriangleChart + 2 stores)
E2E链路覆盖 0 3条核心链路 (咨询+支付+分销)
已知@Disabled测试 4个 全部修复或明确理由
真机兼容测试 未执行 Top 10设备每版本

7. 后续行动建议

  1. 本周: 修复 CommissionService 状态流转、启动 WxPayService 测试
  2. 下周: 搭建前端测试框架 + calculator.js 一致性验证
  3. Phase 1 过半: TriangleChart 组件测试 + 分销E2E
  4. Phase 1 末: 真机兼容矩阵 + 灰度发布前全回归