4.0 KiB
4.0 KiB
测试方案
时间戳:2026-04-20-10-14-09 对应需求分析:
需求分析-2026-04-20-10-14-09.md对应实现方案:实现方案-2026-04-20-10-14-09.md
1. 测试环境
- 浏览器:Chrome / Edge(本地验证)
- Node 版本:v24.14.1
- 是否使用默认测试数据:是(通过 Login.tsx 种子数据)
- 环境变量配置(
.env.local或系统环境变量):STORAGE_KEY="TestStorageKeyForDev2024!!!" DEFAULT_API_KEY="sk-test-api-key-123456789" ADMIN_AUTH_HASH="5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8" ADMIN_AUTH_SALT="static-salt-001"注:上述 HASH 是
"password" + "static-salt-001"的 SHA-256,测试时输入password应可通过授权。
2. 功能测试用例
| 用例ID | 测试场景 | 操作步骤 | 预期结果 | 实际结果 | 是否通过 |
|---|---|---|---|---|---|
| TC-01 | AES-GCM 新数据加密写入 | 1. 登录后进入系统设置 2. 修改任意配置并保存 |
localStorage 中 systemSettings 值以 ag: 开头 |
□ | |
| TC-02 | AES-GCM 新数据解密读取 | 1. 刷新页面 2. 进入报告编辑器 3. 查看 AI 配置或抽帧配置 |
正确读取到之前保存的系统设置,无解密报错 | □ | |
| TC-03 | 旧 XOR 数据向后兼容 | 1. 先回退代码,用旧版写入一条 systemSettings 2. 切换回新代码刷新页面 |
旧 XOR 密文被正确识别、解密并静默迁移为 AES-GCM 格式 | □ | |
| TC-04 | 默认 API Key 来源 | 1. 打开浏览器控制台 2. 执行 getDefaultApiKey() |
返回值为 .env 中配置的 DEFAULT_API_KEY,非硬编码字符码数组还原值 |
□ | |
| TC-05 | 管理员禁用授权正确 | 1. 超级管理员编辑任一管理员 2. 状态改为"禁用" 3. 授权码输入 password |
保存成功 | □ | |
| TC-06 | 管理员禁用授权错误 | 1. 同 TC-05 场景 2. 授权码输入 wrong |
表单顶部显示错误提示"授权密钥不正确",保存被阻止 | □ | |
| TC-07 | alert/confirm 已移除 | 1. 尝试删除用户 2. 触发各类表单校验错误 |
不再出现浏览器原生 alert/confirm,全部以内联提示或自定义确认层呈现 | □ |
3. 边界测试
| 场景 | 测试内容 | 预期表现 |
|---|---|---|
| 空数据 | 首次访问(localStorage 无 systemSettings) | storage.init() 正常完成,缓存为 null,后续 get 返回 fallback |
| 大数据量 | systemSettings 包含大量模板和配置 | AES-GCM 加密后 Base64 长度可控,localStorage 5MB 限额不溢出 |
| 异常输入 | 用户输入空授权码提交 | 校验不通过,提示授权密钥不能为空(或错误) |
| 环境变量缺失 | 构建时未设置 STORAGE_KEY |
应用启动时 storage.init() 抛出可读错误,控制台可见 |
4. 回归测试范围
(验证已有功能未被破坏)
- 登录流程(admin / manager / doctor)
- 报告编辑器自动保存与草稿恢复
- 模板管理增删改查
- 系统设置页面配置保存与读取
- AI 功能调用(需配置有效 API Key 验证)
- 用户管理增删改查(非禁用场景)
5. 类型检查
npm run lint
- 预期结果:
tsc --noEmit无错误,无 TS2345 / TS2554 等类型不匹配
6. 构建验证
npm run build
- 预期结果:构建成功,无报错,产物输出至
dist/ - 额外检查:构建产物中搜索
"MedicalReportSys2024"、"DISABLE_ADMIN_2024"、API_KEY_CODES等敏感字符串,应无命中
7. 测试结论
| 项目 | 结果 |
|---|---|
| 功能测试 | □ 通过 / □ 部分通过 / □ 未通过 |
| 类型检查 | □ 通过 / □ 未通过 |
| 构建验证 | □ 通过 / □ 未通过 |
| 安全扫描(构建产物无硬编码密钥) | □ 通过 / □ 未通过 |
| 整体结论 | □ 可交付 / □ 需修复后复测 |
状态:✅ 用户已豁免人工审核确认