Files
Mdeical_Sur_Report/工程分析/测试方案-2026-04-20-10-14-09.md

97 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 测试方案
> 时间戳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. 登录后进入系统设置<br>2. 修改任意配置并保存 | localStorage 中 `systemSettings` 值以 `ag:` 开头 | | □ |
| TC-02 | AES-GCM 新数据解密读取 | 1. 刷新页面<br>2. 进入报告编辑器<br>3. 查看 AI 配置或抽帧配置 | 正确读取到之前保存的系统设置,无解密报错 | | □ |
| TC-03 | 旧 XOR 数据向后兼容 | 1. 先回退代码,用旧版写入一条 systemSettings<br>2. 切换回新代码刷新页面 | 旧 XOR 密文被正确识别、解密并静默迁移为 AES-GCM 格式 | | □ |
| TC-04 | 默认 API Key 来源 | 1. 打开浏览器控制台<br>2. 执行 `getDefaultApiKey()` | 返回值为 `.env` 中配置的 `DEFAULT_API_KEY`,非硬编码字符码数组还原值 | | □ |
| TC-05 | 管理员禁用授权正确 | 1. 超级管理员编辑任一管理员<br>2. 状态改为"禁用"<br>3. 授权码输入 `password` | 保存成功 | | □ |
| TC-06 | 管理员禁用授权错误 | 1. 同 TC-05 场景<br>2. 授权码输入 `wrong` | 表单顶部显示错误提示"授权密钥不正确",保存被阻止 | | □ |
| TC-07 | alert/confirm 已移除 | 1. 尝试删除用户<br>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. 类型检查
```bash
npm run lint
```
- 预期结果:`tsc --noEmit` 无错误,无 TS2345 / TS2554 等类型不匹配
---
## 6. 构建验证
```bash
npm run build
```
- 预期结果:构建成功,无报错,产物输出至 `dist/`
- 额外检查:构建产物中搜索 `"MedicalReportSys2024"`、`"DISABLE_ADMIN_2024"`、`API_KEY_CODES` 等敏感字符串,应无命中
---
## 7. 测试结论
| 项目 | 结果 |
|------|------|
| 功能测试 | □ 通过 / □ 部分通过 / □ 未通过 |
| 类型检查 | □ 通过 / □ 未通过 |
| 构建验证 | □ 通过 / □ 未通过 |
| 安全扫描(构建产物无硬编码密钥) | □ 通过 / □ 未通过 |
| 整体结论 | □ 可交付 / □ 需修复后复测 |
---
**状态**:✅ 用户已豁免人工审核确认