yinji/docs/TEST_PLAN_PHASE5.md
wenpai f8ce89a715 docs: 添加 Phase 5 测试计划
- Create comprehensive test plan for Phase 5 features (74 test cases)
- Test coverage for:
  - Batch operations (multi-page selection, batch stamp add/delete)
  - Batch export (selected/all/split modes)
  - Seal library (save/load/delete with settings)
  - Performance (virtual scrolling, Web Worker, memory usage)
  - Compatibility (Chrome/Firefox/Safari, mobile)
  - Edge cases (empty PDF, 2000 pages, localStorage full)
- Test plan includes: step-by-step instructions, expected results, pass/fail columns
- Format: Markdown table for easy manual testing

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 16:19:50 +08:00

233 lines
10 KiB
Markdown
Raw Permalink 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.

# PDF Stamper Phase 5 测试计划
**测试版本**: v1.5.0
**测试日期**: 2026-04-03
**测试范围**: Phase 5 所有新增功能
---
## 测试环境
| 项目 | 要求 |
|------|------|
| 浏览器 | Chrome 120+, Firefox 120+, Safari 17+ |
| 测试文件 | 10页PDF, 100页PDF, 500页PDF |
| 内存限制 | 最小 4GB 可用内存 |
| 存储 | localStorage 可用 |
---
## 1. 批量操作测试 (Batch Operations)
### 1.1 多页选择
| 测试项 | 操作步骤 | 预期结果 | 状态 |
|--------|----------|----------|------|
| Ctrl+Click 单选 | 按住 Ctrl 点击缩略图 3, 5, 7 | 仅 3, 5, 7 页显示蓝色边框 | [ ] |
| Shift+Click 范围 | 点击第2页Shift+点击第6页 | 2-6页全部选中共5页 | [ ] |
| 全选按钮 | 点击"全选" | 所有页面被选中 | [ ] |
| 清除选择 | 点击"清除选择" | 所有页面取消选中 | [ ] |
| 连续 Shift+Click | 点击第3页 -> Shift+点击第8页 -> Shift+点击第1页 | 1-8页全部选中 | [ ] |
| 切换选中状态 | Ctrl+Click 第2页已选中-> Ctrl+Click 第2页取消 | 第2页从选中变为未选中 | [ ] |
### 1.2 批量添加印章
| 测试项 | 操作步骤 | 预期结果 | 状态 |
|--------|----------|----------|------|
| 无选中页添加 | 不选择任何页面,点击"批量添加印章" | 提示"请先选择要添加印章的页面" | [ ] |
| 无印章添加 | 选中3页但未选择印章图片点击"批量添加印章" | 提示"请先选择印章图片" | [ ] |
| 选中3页添加 | 选中3页选择印章点击"批量添加印章" | 在3页中心位置添加印章显示进度 | [ ] |
| 全选批量添加 | 全选20页批量添加印章 | 所有20页都添加印章 | [ ] |
| 重复添加 | 对同一页连续批量添加2次 | 该页有2个重叠印章 | [ ] |
### 1.3 批量删除印章
| 测试项 | 操作步骤 | 预期结果 | 状态 |
|--------|----------|----------|------|
| 无选中页删除 | 不选择任何页面,点击"批量删除印章" | 提示"请先选择要删除印章的页面" | [ ] |
| 选中3页删除 | 选中3页每页1个印章点击"批量删除印章" | 3页的所有印章被删除 | [ ] |
| 全选删除 | 全选20页每页1个印章点击"批量删除" | 所有印章被删除 | [ ] |
| 空页面删除 | 选中没有印章的页面,点击"批量删除" | 不报错,提示"已从X页删除0个印章" | [ ] |
### 1.4 UI 视觉反馈
| 测试项 | 操作步骤 | 预期结果 | 状态 |
|--------|----------|----------|------|
| 选中边框 | 选择页面 | 蓝色边框(#3b82f6, 2px | [ ] |
| 选中背景 | 选择页面 | 半透明蓝色背景 | [ ] |
| 页面指示器 | 选中3/20页 | 显示"选中 3/20 页" | [ ] |
| 批量工具栏 | 选中页面后 | 显示批量操作工具栏 | [ ] |
| 选中页面列表 | 选中 2,4,6页 | 显示"2, 4, 6" | [ ] |
---
## 2. 批量导出测试 (Batch Export)
### 2.1 导出选中页面
| 测试项 | 操作步骤 | 预期结果 | 状态 |
|--------|----------|----------|------|
| 无选中导出 | 不选择页面,点击"导出选中页面" | 提示"请先选择要导出的页面" | [ ] |
| 选中3页导出 | 选中 2,4,6页点击"导出选中页面" | 生成包含 2,4,6页的 PDF | [ ] |
| 文件名格式 | 原文件 test.pdf选中3页 | 文件名: test_选中3页.pdf | [ ] |
| 含印章导出 | 选中页有印章,导出 | 导出的 PDF 包含印章 | [ ] |
| 进度显示 | 导出10页 | 显示"正在生成文件..." 进度 0-100% | [ ] |
### 2.2 导出全部页面
| 测试项 | 操作步骤 | 预期结果 | 状态 |
|--------|----------|----------|------|
| 全部导出 | 点击"导出全部页面" | 生成包含所有页面的 PDF | [ ] |
| 无选中导出 | 未选中任何页面,点击"导出全部页面" | 仍导出所有页面 | [ ] |
| 文件名格式 | 原文件 test.pdf | 文件名: test.pdf不变 | [ ] |
### 2.3 分别导出
| 测试项 | 操作步骤 | 预期结果 | 状态 |
|--------|----------|----------|------|
| 分别导出10页 | 点击"分别导出"10页PDF | 下载10个独立文件 | [ ] |
| 文件命名 | 原文件 test.pdf | test_page1.pdf, test_page2.pdf, ... | [ ] |
| 文件大小 | 每页独立文件 | 每个文件大小合理(与单页内容匹配) | [ ] |
| 含印章导出 | 某页有印章,分别导出 | 该页的独立文件包含印章 | [ ] |
| 进度显示 | 导出50页 | 显示"导出第 X/50 页" | [ ] |
### 2.4 导出提示
| 测试项 | 操作步骤 | 预期结果 | 状态 |
|--------|----------|----------|------|
| 有选中页面 | 选中 2,4,6页 | 显示"当前选中: 2, 4, 6 页" | [ ] |
| 无选中页面 | 不选择任何页面 | 显示"未选择页面,将导出全部页面" | [ ] |
| 选择变化 | 动态改变选中页面 | 提示自动更新 | [ ] |
---
## 3. 印章模板库测试 (Seal Library)
### 3.1 保存印章
| 测试项 | 操作步骤 | 预期结果 | 状态 |
|--------|----------|----------|------|
| 保存新印章 | 选择印章设置旋转30°、亮度120%,点击"保存到印章库",输入"公章A" | 提示"印章已保存" | [ ] |
| 保存到满库 | 保存20个印章上限 | 提示"印章库已满" | [ ] |
| 重名保存 | 保存同名"公章A" | 提示"将覆盖旧版本",旧印章被替换 | [ ] |
| 空名称保存 | 保存时不输入名称 | 提示"印章名称不能为空" | [ ] |
| 取消保存 | 点击"取消" | 不保存任何内容 | [ ] |
### 3.2 加载印章
| 测试项 | 操作步骤 | 预期结果 | 状态 |
|--------|----------|----------|------|
| 加载印章 | 点击印章库中"公章A"的"使用"按钮 | 印章预览、旋转角度、亮度全部恢复 | [ ] |
| 加载后添加 | 加载"公章A"旋转30°点击"添加普通章" | 添加的印章旋转30° | [ ] |
| 亮度恢复 | 加载亮度120%的印章 | 预览图亮度为120% | [ ] |
| 多个印章切换 | 依次加载"公章A"、"公章B" | 最终显示"公章B"的设置 | [ ] |
### 3.3 删除印章
| 测试项 | 操作步骤 | 预期结果 | 状态 |
|--------|----------|----------|------|
| 删除单个印章 | 点击"公章A"的"×"按钮 | 提示"已删除",印章从列表消失 | [ ] |
| 删除后加载 | 尝试加载已删除的印章 | 无反应或提示"印章不存在" | [ ] |
| 清空库 | 点击"清空印章库" | 二次确认对话框 | [ ] |
| 确认清空 | 确认清空 | 所有印章被删除 | [ ] |
| 取消清空 | 取消清空 | 印章库保持不变 | [ ] |
### 3.4 UI 显示
| 测试项 | 操作步骤 | 预期结果 | 状态 |
|--------|----------|----------|------|
| 网格布局 | 保存5个印章 | 2列网格显示共3行 | [ ] |
| 印章预览 | 印章旋转30° | 缩略图显示旋转30° | [ ] |
| 印章名称 | 名称"公章A" | 显示在缩略图下方 | [ ] |
| 空状态 | 印章库为空 | 显示"暂无保存的印章" | [ ] |
| 滚动容器 | 保存15个印章 | 容器可滚动max-height 300px | [ ] |
| Hover 效果 | 鼠标悬停在印章上 | 边框变蓝,阴影效果 | [ ] |
---
## 4. 性能测试 (Performance)
### 4.1 虚拟滚动
| 测试项 | 操作步骤 | 预期结果 | 状态 |
|--------|----------|----------|------|
| 100页加载 | 加载100页 PDF | 缩略图容器只渲染可见区域(~10页 | [ ] |
| 500页加载 | 加载500页 PDF | 页面不崩溃,缩略图正常滚动 | [ ] |
| 滚动渲染 | 快速滚动缩略图容器 | 可见区域外的缩略图自动移除 | [ ] |
| 内存使用 | 500页PDF打开 Task Manager | Chrome 内存 < 200MB | [ ] |
| 初始加载时间 | 加载100页 PDF | < 5秒 | [ ] |
### 4.2 Web Worker
| 测试项 | 操作步骤 | 预期结果 | 状态 |
|--------|----------|----------|------|
| Worker 消息 | 打开 Console加载 PDF | 看到 "WORKER_READY" 消息 | [ ] |
| 非阻塞渲染 | 加载500页 PDF拖动印章 | 拖动流畅,不卡顿 | [ ] |
| 并发操作 | 加载 PDF 时添加印章 | 两项操作都不阻塞 | [ ] |
### 4.3 综合性能
| 测试项 | 操作步骤 | 预期结果 | 状态 |
|--------|----------|----------|------|
| 页面切换 | 100页 PDF从第1页跳到第100页 | < 200ms | [ ] |
| 批量操作速度 | 批量添加印章到50页 | 显示进度条,总时间 < 10秒 | [ ] |
| 导出速度 | 导出50页含印章 PDF | < 15秒 | [ ] |
---
## 5. 兼容性测试 (Compatibility)
### 5.1 浏览器兼容
| 测试项 | 浏览器 | 预期结果 | 状态 |
|--------|--------|----------|------|
| 批量选择 | Chrome 120+ | 正常工作 | [ ] |
| 批量选择 | Firefox 120+ | 正常工作 | [ ] |
| 批量选择 | Safari 17+ | 正常工作 | [ ] |
| 印章库 LocalStorage | 所有浏览器 | 数据持久化 | [ ] |
| 虚拟滚动 | 所有浏览器 | 平滑滚动 | [ ] |
### 5.2 移动端兼容
| 测试项 | 设备 | 预期结果 | 状态 |
|--------|------|----------|------|
| 批量选择 | iPad (Safari) | 触摸选择页面 | [ ] |
| 批量添加 | iPad (Safari) | 正常工作 | [ ] |
| 印章库 | iPad (Safari) | 滚动正常 | [ ] |
---
## 6. 边界测试 (Edge Cases)
| 测试项 | 操作步骤 | 预期结果 | 状态 |
|--------|----------|----------|------|
| 空 PDF (0页) | 加载 0页 PDF | 提示错误或无操作 | [ ] |
| 单页 PDF | 全选1页PDF | 只选中第1页 | [ ] |
| 超大文件 | 加载 2000页 PDF | 不崩溃,虚拟滚动正常工作 | [ ] |
| localStorage 满 | 保存20个大印章>5MB | 提示"存储空间不足" | [ ] |
| 中断操作 | 批量添加时关闭页面 | 无数据损坏 | [ ] |
| 无印章选择批量删除 | 选中页没有印章 | 提示"已删除0个印章" | [ ] |
---
## 测试结果汇总
| 模块 | 总测试数 | 通过 | 失败 | 备注 |
|------|---------|------|------|------|
| 批量操作 | 15 | [ ] | [ ] | |
| 批量导出 | 15 | [ ] | [ ] | |
| 印章模板库 | 20 | [ ] | [ ] | |
| 性能测试 | 10 | [ ] | [ ] | |
| 兼容性测试 | 8 | [ ] | [ ] | |
| 边界测试 | 6 | [ ] | [ ] | |
| **总计** | **74** | [ ] | [ ] | |
---
**测试人员**: ____________
**测试日期**: ____________
**整体结果**: [ ] 通过 [ ] 不通过
**备注**:
______________________________
______________________________