HMS 功能审计 — Phase 7: 测试覆盖率审计
日期: 2026-04-30 | 审计范围: 后端 + 前端测试分布与缺口
总览
| 指标 |
值 |
| 测试总数 |
772 个函数 |
| 通过 |
753(97.5%) |
| 失败 |
9(全部因 blind_indexes 表缺失) |
| 跳过 |
0 |
| 后端测试 |
767(611 单元 + 153 集成 + 3 多模块集成) |
| Web 前端测试 |
5 单元(vitest)+ 5 E2E(playwright) |
| 小程序测试 |
0 |
1. 模块测试分布
1.1 后端 Rust 测试
| Crate |
单元测试 |
集成测试 |
总计 |
通过率 |
评估 |
| erp-core |
74 |
— |
74 |
100% |
良好 |
| erp-auth |
41 |
3 |
44 |
100% |
良好 |
| erp-config |
78 |
— |
78 |
100% |
良好 |
| erp-workflow |
63 |
4 |
67 |
100% |
良好 |
| erp-message |
72 |
— |
72 |
100% |
中等(缺集成测试) |
| erp-health |
159 |
144 |
303 |
97% |
良好 |
| erp-ai |
36 |
— |
36 |
100% |
中等(缺集成测试) |
| erp-dialysis |
10 |
15 |
25 |
93% |
中等 |
| erp-plugin |
78 |
2 |
80 |
100% |
良好 |
| erp-server |
— |
153 |
153 |
94% |
良好(API 集成测试) |
| 合计 |
611 |
153 |
767 |
97.5% |
|
1.2 前端测试
| 层级 |
框架 |
数量 |
评估 |
| Web 单元测试 |
vitest |
5 |
极低 |
| Web E2E 测试 |
playwright |
5 spec |
低 |
| 小程序测试 |
— |
0 |
无 |
1.3 测试 vs 代码规模比
| 维度 |
代码量 |
测试数 |
比率 |
| Rust 后端 |
~77k 行 |
767 |
1:100 |
| Web 前端 |
~20k 行(163 文件) |
10 |
1:2000 |
| 小程序 |
~15k 行(125 文件) |
0 |
N/A |
2. 失败测试根因
9 个失败测试全部集中在 erp-health,原因一致:
| 测试文件 |
失败数 |
根因 |
| health_patient_tests.rs |
2 |
blind_indexes 表不存在 |
| health_dialysis_tests.rs |
1 |
同上 |
| health_pii_encryption_tests.rs |
6 |
同上 |
修复方案:执行数据库迁移创建 blind_indexes 表。这是测试环境配置问题,非代码逻辑错误。
3. 测试缺口分析
3.1 关键缺口(按风险排序)
| 优先级 |
模块 |
缺口 |
影响 |
| P0 |
erp-ai |
无集成测试(SSE 流 + 外部 API) |
AI 功能仅通过手动测试验证,无法回归 |
| P1 |
小程序 |
完全无测试 |
40 个页面全靠手工验证 |
| P1 |
erp-message |
无集成测试(SSE 推送) |
SSE 连接/重连行为未测试 |
| P2 |
Web 前端 |
仅 10 个测试 |
163 个文件的 API 调用/组件/路由无覆盖 |
| P2 |
erp-dialysis |
93% 通过率 |
2 个测试失败待修复 |
| P3 |
erp-config |
无集成测试 |
简单 CRUD,风险较低 |
3.2 测试类型覆盖矩阵
| 测试类型 |
后端 |
Web 前端 |
小程序 |
| 单元测试 |
✓ 丰富 |
⚠️ 极少 |
✗ 无 |
| 集成测试 |
✓ health+plugin+server |
✗ 无 |
✗ 无 |
| E2E 测试 |
— |
⚠️ 5 spec |
✗ 无 |
| 多租户隔离 |
✓ PII 加密测试 |
✗ 无 |
✗ 无 |
| 并发测试 |
✓ 预约 CAS 测试 |
✗ 无 |
✗ 无 |
| 安全测试 |
⚠️ 部分(权限/注入) |
✗ 无 |
✗ 无 |
3.3 测试覆盖良好的领域
| 领域 |
测试特点 |
| 患者 CRUD |
完整的集成测试覆盖创建/更新/删除/列表 |
| PII 加密 |
独立测试文件验证加密/解密/盲索引/跨租户隔离 |
| 预约并发 |
CAS 原子操作测试,验证乐观锁和排班满额 |
| 工作流引擎 |
BPMN 解析 + Token 驱动 + 任务分配测试 |
| 权限 RBAC |
角色/权限/菜单关联测试 |
| 插件系统 |
WASM 运行时 + 动态表 CRUD + 租户隔离 |
4. 测试覆盖率评分
| 检查项 |
评分 |
说明 |
| 后端单元测试 |
85% |
611 个,覆盖核心 service 逻辑 |
| 后端集成测试 |
70% |
153 个 API 测试,但 AI/Message 模块缺失 |
| 前端测试 |
5% |
仅 10 个测试覆盖 163 个文件 |
| 小程序测试 |
0% |
完全空白 |
| 测试稳定性 |
98% |
9 个失败因环境配置,非代码缺陷 |
| 综合评分 |
65% |
后端测试基础扎实,前端和 AI 是主要缺口 |