Files
TurboHR/20260815-用户测试指南.md
T
selfrelease aa8189f571 docs: 新增 20260815 优化批次用户测试指南
面向测试人员的功能验证手册,覆盖 5 个批次共 43 项任务的完整测试用例:
- P0 紧急(6 项):草稿保存、补偿金合计、驳回更新、违法解除风险、日期校验、批次数据源
- P1 高(14 项):社保联动、合规软阻断、补偿月数、年龄校验、转正、三期性别等
- P2 中(9 项):文案调整、年假折算、证件号码、手机查重、批量操作、菜单调整
- P3 规划(2 项):组织架构+审批流、客服工作台
- 电子签署(12 项):发起签署、验证码签署、证据链、线下手签、花名册联动

每个测试用例含前置条件、详细测试步骤、预期结果,附测试结果记录模板。

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-08-15 17:34:44 +08:00

1030 lines
32 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.
# 20260815 优化批次 · 用户测试指南
> 面向测试人员的功能验证手册。覆盖 5 个批次共 43 项任务的完整测试用例。
> 测试环境:https://on.hr8ai.top/
> 测试账号:管理员 `13800000010 / 12345678`
> 文档版本:2026-08-16
---
## 目录
- [测试前准备](#测试前准备)
- [第一批 P0 紧急(6 项)](#第一批-p0-紧急6-项)
- [第二批 P1 高(14 项)](#第二批-p1-高14-项)
- [第三批 P2 中(9 项)](#第三批-p2-中9-项)
- [第四批 P3 规划(2 项)](#第四批-p3-规划2-项)
- [第五批 电子签署(12 项)](#第五批-电子签署12-项)
- [测试结果记录模板](#测试结果记录模板)
---
## 测试前准备
### 账号与权限
| 角色 | 账号 | 用途 |
|------|------|------|
| 管理员 | `13800000010 / 12345678` | 全部管理端功能测试 |
| 员工 | 通过管理员生成自动登录令牌 | 员工端签署功能测试 |
### 测试数据准备
1. **测试员工**:刘大壮(男,技术部,在职,月薪 ¥8500,有劳动合同)
2. **女员工**:李娜(女,技术部,在职)— 用于三期测试
3. **试用期员工**:需在花名册中确认有 `probationInfo.isProbation === true` 的员工
4. **合同即将到期员工**:合同结束日期距今 ≤ 30 天的员工
### 通用测试步骤
1. 登录管理端:访问 https://on.hr8ai.top/ ,使用管理员账号登录
2. 每个测试用例完成后,记录实际结果(通过/失败/有偏差)
3. 发现问题时截图保存,记录复现步骤
---
## 第一批 P0 紧急(6 项)
### TASK-001 · 草稿保存完整性
**前置条件**:花名册中有在职员工
**测试步骤**
1. 进入「离职管理」→ 点击「新建解聘」(或从花名册操作栏点击「离职」→ 选择非主动离职类型)
2. 选择员工,填写至 step 3(补偿金)
3. 在补偿金区域手动调整任一分项金额
4. 切换到 step 4(工作交接),在交接清单的「备注」列填写文字(如"测试备注001"
5. 点击「保存草稿」
6. 退出向导,回到离职管理列表,点击该草稿重新进入
7. 检查 step 3 的补偿金调整记录和 step 4 的交接备注是否完整保留
**预期结果**
- ✅ 补偿金手动调整记录完整回读
- ✅ 工作交接清单的备注文字完整回读
- ✅ 合规检查的覆盖原因(如有填写)完整回读
---
### TASK-002 · 手动调整补偿金分项后合计同步
**前置条件**:已进入解聘向导 step 3
**测试步骤**
1. 查看系统预估补偿金(如 ¥50000)
2. 手动调整 severance(经济补偿金)从 ¥50000 改为 ¥45000
3. 观察「合计应付」是否实时更新为 ¥45000
4. 点击「保存草稿」→ 重新进入 → 检查合计是否仍为 ¥45000
5. 进入确认步骤,检查是否显示"系统预估 ¥X + 手动调整 ¥Y = 实际补偿 ¥Z"
**预期结果**
- ✅ 调整分项后「合计应付」实时刷新
- ✅ 保存后回读合计值正确
- ✅ 确认页显示系统预估 + 手动调整 = 实际补偿
---
### TASK-003 · 解聘驳回后修改内容更新
**前置条件**:已创建解聘草稿
**测试步骤**
1. 创建解聘草稿(协商解除,补偿金 ¥50000)
2. 提交审批
3. 由管理员在审批列表中驳回该草稿
4. 回到草稿列表,点击该驳回草稿重新编辑
5. 修改解聘类型为「过错解除」,补偿金改为 ¥0
6. 保存 → 重新进入检查
**预期结果**
- ✅ 驳回后可重新编辑(不是新建)
- ✅ 修改的解聘类型和补偿金正确覆盖
- ✅ 旧版本留有快照可查看
---
### TASK-004 · 违法解除降低补偿金风险提醒
**前置条件**:已进入解聘向导 step 3
**测试步骤**
1. 选择解聘类型为「违法解除」
2. 查看法定 2N 金额(如 ¥100000)
3. 手动将实际补偿金改为 ¥80000(低于 2N)
4. 观察是否弹出合规风险提醒
5. 不勾选「已知风险并继续」→ 尝试下一步 → 应被阻断
6. 勾选「已知风险并继续」→ 可进入下一步
7. 进入 Dashboard 或风险中心,检查是否生成风险项
**预期结果**
- ✅ 实际补偿金 < 2N 时强制弹出风险提醒
- ✅ 必须勾选「已知风险并继续」才能下一步
- ✅ Dashboard/风险中心出现对应风险项
---
### TASK-005 · 合同结束日期早于开始日期校验
**前置条件**:无
**测试步骤**
1. **前端校验**
- 进入「批量流程」(原用工办理)→ 选择「签订合同」
- 选择员工,填写合同开始日期 `2026-06-01`,结束日期 `2026-05-31`
- 点击提交 → 应被阻断并提示"合同结束日期不能早于合同开始日期"
2. **续签校验**
- 选择「合同续签」→ 选择员工
- 填写新合同开始日期 `2026-06-01`,结束日期 `2026-05-31`
- 提交 → 应被阻断
3. **正常日期**
- 开始日期 `2026-06-01`,结束日期 `2026-12-31` → 应通过
**预期结果**
- ✅ 倒置日期被前端阻断并提示
- ✅ 正常日期可提交
---
### TASK-006 · 补偿金批次数据源
**前置条件**:有已审批通过的离职记录且含补偿金
**测试步骤**
1. 进入「薪税管理」→ 批次管理
2. 创建新批次,类型选择「补偿金」(SEVERANCE)
3. 选择月份 → 查看预览页
4. 检查预览中每位员工的补偿金明细(补偿金/代通知金/赔偿金/合计)
5. 确认创建批次
6. 检查批次数据是否与离职草稿的补偿金一致
**预期结果**
- ✅ 预览页展示补偿金明细
- ✅ 数据来源为离职草稿的 `compensationBreakdown.grandTotal`(非工资数据)
- ✅ 仅包含已审批通过且有补偿金的离职员工
---
## 第二批 P1 高(14 项)
### TASK-007 · 离职日期联动社保/公积金截止月
**前置条件**:系统设置中 `socialInsCutoffDay` 默认为 15
**测试步骤**
1. 创建离职草稿,离职日期填写 `2026-08-10`10 日 < 15 日)
2. 检查社保截止月是否自动填为 `2026-07`
3. 检查公积金截止月是否自动填为 `2026-07`
4. 修改离职日期为 `2026-08-20`20 日 > 15 日)
5. 检查社保截止月是否自动变为 `2026-08`
6. 手动修改社保截止月 → 应提示"与自动推导不一致"
**预期结果**
- ✅ 15 日前离职 → 截止月 = 离职月 - 1
- ✅ 15 日后离职 → 截止月 = 离职月
- ✅ 手动覆盖时有提示
---
### TASK-008 · 合规检查软阻断 + 待办
**前置条件**:已进入解聘向导 step 2(合规检查)
**测试步骤**
1. 在合规检查步骤,不勾选「已支付经济补偿金」
2. 点击下一步 → 应可进入(不硬阻断)
3. 完成解聘草稿保存
4. 进入 Dashboard → 检查是否出现待办"XX 解聘未支付经济补偿金"
5. 检查法定禁止情形(如孕期女职工)是否仍硬阻断
**预期结果**
- ✅ 未勾选 required 项可下一步(软阻断)
- ✅ Dashboard 出现对应待办
- ✅ 法定禁止情形仍硬阻断
---
### TASK-009 · 补偿月数支持 N / N+1 / 2N / 其他
**前置条件**:已进入解聘向导 step 3
**测试步骤**
1. 查看系统默认推荐月数 N(如 N=3)
2. 将补偿月数下拉改为「N+1」→ 月数变为 4 → 补偿金实时重算
3. 改为「2N」→ 月数变为 6 → 补偿金重算
4. 改为「其他」→ 输入 5 + 填写说明 → 补偿金重算
5. 保存草稿 → 重新进入 → 检查月数模式是否保留
**预期结果**
- ✅ 下拉支持 N / N+1 / 2N / 其他
- ✅ 切换后补偿金实时重算
- ✅ 「其他」需填写说明
- ✅ 保存后月数模式可回读
---
### TASK-010 · 计算基数支持多种来源
**前置条件**:已进入解聘向导 step 3
**测试步骤**
1. 默认计算基数为「近 12 月平均工资」(如 ¥10000)
2. 切换为「合同工资」(如 ¥8000)→ 补偿金实时重算
3. 切换为「其他」→ 手动输入 ¥12000 + 说明 → 重算
4. 检查近 12 月平均工资是否显示三倍社平封顶后的值
5. 保存草稿 → 重新进入 → 检查基数来源是否保留
**预期结果**
- ✅ 下拉支持 3 种来源
- ✅ 切换后补偿金实时重算
- ✅ 基数来源可回读
---
### TASK-011 · 工作交接软阻断 + 待办
**前置条件**:已进入解聘向导 step 4(工作交接)
**测试步骤**
1. 不勾选「工作交接完成」「设备归还」「权限收回」三项
2. 点击下一步 → 应可进入(不硬阻断)
3. 检查确认页是否提示"3 项未完成"
4. 保存草稿 → 进入 Dashboard → 检查是否出现待办
**预期结果**
- ✅ 未完成交接可下一步(软阻断)
- ✅ 确认页强提示未完成项
- ✅ Dashboard 出现待办
---
### TASK-012 · 花名册操作栏离职入口
**前置条件**:花名册中有在职员工
**测试步骤**
1. 进入「花名册」
2. 点击某员工操作栏的「离职」按钮
3. 检查是否弹出解聘类型选择(协商/过错/非过错/裁员/到期/违法/主动离职)
4. 选择「协商解除」→ 应跳转解聘向导,员工和类型已预填
5. 选择「主动离职」→ 应走快速离职流程
6. 进入「离职管理」列表页 → 检查是否已移除「新建解聘」按钮
**预期结果**
- ✅ 操作栏「离职」按钮弹出类型选择
- ✅ 非主动离职跳转向导并预填
- ✅ 主动离职走快速流程
- ✅ 列表页无「新建解聘」按钮
---
### TASK-013 · 合同续签开始日期自动推导
**前置条件**:员工有已签合同且结束日期明确
**测试步骤**
1. 进入「批量流程」→ 选择「合同续签」
2. 选择员工(如刘大壮,合同结束日期 2025-02-27
3. 检查新合同开始日期是否自动填为 `2025-02-28`(结束日期 + 1 天)
4. 手动修改开始日期 → 应提示"建议开始日期为 YYYY-MM-DD"
**预期结果**
- ✅ 新合同开始日期默认 = 上一份合同结束日期 + 1 天
- ✅ 偏离时有提示
- ✅ 无历史合同时默认为今天
---
### TASK-014 · 添加员工年龄合规筛查
**前置条件**:无
**测试步骤**
1. 进入「花名册」→ 点击「添加员工」
2. 输入身份证号 `110105201501011234`(出生 2015-01-0111 岁)
3. 检查是否阻断提示"禁止使用童工(未满 16 周岁)"
4. 输入身份证号 `110105196501011234`(出生 1965-01-0161 岁男)
5. 检查是否提示"已达法定退休年龄" → 确认后可继续录入
**预期结果**
- ✅ 童工(< 16 岁)阻断保存
- ✅ 退休年龄提示但允许确认后录入
---
### TASK-015 · 编辑入职日期后状态联动
**前置条件**:花名册中有在职员工
**测试步骤**
1. 进入花名册 → 点击某在职员工查看详情
2. 编辑入职日期改为下月 1 日(未来日期)
3. 检查是否弹出确认窗"入职日期变更将导致状态从 在职 变为 待入职,是否继续?"
4. 确认 → 状态应变为「待入职」
5. 再次编辑入职日期改为今天
6. 检查是否弹窗确认 → 确认后状态变为「在职」
**预期结果**
- ✅ 入职日期 > 今天 → 状态变「待入职」+ 二次确认
- ✅ 入职日期 ≤ 今天 → 状态变「在职」+ 二次确认
---
### TASK-016 · 花名册操作栏转正按钮
**前置条件**:花名册中有试用期员工
**测试步骤**
1. 进入花名册
2. 找到试用期员工(状态标注试用期)
3. 检查操作栏是否显示「转正」按钮(CheckCircle 图标)
4. 非试用期员工不应显示转正按钮
5. 点击「转正」→ 弹出转正 Modal
6. 填写转正日期 + 转正薪资 → 确认
7. 检查员工状态是否变为正式
**预期结果**
- ✅ 仅试用期员工显示转正按钮
- ✅ 转正 Modal 含日期和薪资
- ✅ 转正后状态变为正式
---
### TASK-017 · 转正薪资回写 + 合同一致性校验
**前置条件**:试用期员工有合同记录
**测试步骤**
1. 试用期薪资 ¥8000 的员工,转正填写 ¥10000
2. 确认转正
3. 回到花名册 → 检查员工薪资是否更新为 ¥10000
4. 查看薪资变更记录是否显示"试用期 ¥8000 → 转正 ¥10000"
5. 如合同薪资为 ¥9000 → 检查是否提示"转正薪资 ¥10000 与合同薪资 ¥9000 不一致,是否发起合同变更?"
**预期结果**
- ✅ 转正后员工薪资同步更新
- ✅ 薪资变更记录可查
- ✅ 与合同薪资不一致时提示
---
### TASK-018 · 合同变更/续签按员工过滤合同列表
**前置条件**:员工有已签合同
**测试步骤**
1. 进入「批量流程」→ 选择「合同变更」
2. 选择员工 A → 点击原合同下拉
3. 检查下拉是否仅显示员工 A 的合同(非全部合同)
4. 下拉项应显示合同名称 + 起止日期 + 状态
5. 选择「合同续签」→ 选择员工 A → 原合同下拉同样仅显示员工 A 的合同
**预期结果**
- ✅ 合同下拉按员工过滤
- ✅ 不再需要手动输入 UUID
- ✅ 下拉显示完整合同信息
---
### TASK-019 · 男职工无法选择三期
**前置条件**:花名册中有男职工和女职工
**测试步骤**
1. 进入「特殊状态」→ 点击新增
2. 选择男职工(如刘大壮)
3. 检查类型下拉中「三期」选项是否置灰或移除
4. 置灰时应提示"三期仅适用于女性员工"
5. 选择女职工(如李娜)→ 「三期」选项应可选
6. 尝试通过 API 直接传男职工 + PREGNANCY → 应返回 400
**预期结果**
- ✅ 男职工不可选三期
- ✅ 女职工可选三期
- ✅ 后端有双保险校验
---
## 第三批 P2 中(9 项)
### TASK-020 · "劳动合同"调整为"用工关系"
**测试步骤**
1. 全域检查面向用户的菜单、标题、提示文案
2. 侧边栏、花名册、合同页面中"劳动合同"应改为"用工关系"或"用工协议"
3. 法律文书模板中的"劳动合同"保持不变(法定术语)
4. 进入合同详情 → 检查是否有「合同分类」字段(劳动合同/劳务协议/实习协议/灵活用工)
**预期结果**
- ✅ 面向用户文案已替换
- ✅ 法律模板保持不变
- ✅ 合同分类字段存在
---
### TASK-021 · 费用结算新增剩余年假天数
**前置条件**:已进入解聘向导 step 3
**测试步骤**
1. 在费用结算区找到「剩余年假天数」字段
2. 输入 5 天
3. 检查是否自动计算未休年假折算工资
4. 公式:日工资 = 月工资 / 21.75,折算 = 日工资 × 天数 × 300%
5. 如月工资 ¥10000 → 日工资 ¥460 → 折算 ¥6900
6. 检查折算金额是否计入「合计应付」
7. 确认页和文书中是否展示年假折算明细
**预期结果**
- ✅ 年假天数可录入
- ✅ 按 300% 规则折算
- ✅ 计入合计应付
- ✅ 确认页展示明细
---
### TASK-022 · 身份证号全域改为"证件号码"
**测试步骤**
1. 全域搜索面向用户的 label "身份证号"
2. 花名册添加/编辑员工、批量流程、特殊状态等页面 → label 应为"证件号码"
3. 检查是否有证件类型下拉(身份证/护照/港澳台通行证/其他)
4. 选择「身份证」→ 输入 18 位号码 → 保留校验 + 自动推导性别/年龄
5. 选择「护照」→ 输入非 18 位号码 → 应跳过 18 位校验
6. 搜索框 placeholder 应同步更新
**预期结果**
- ✅ 全域 label 改为"证件号码"
- ✅ 证件类型下拉可用
- ✅ 非身份证类型跳过 18 位校验
---
### TASK-023 · 录入手机号查重
**前置条件**:花名册中已有员工手机号
**测试步骤**
1. 进入花名册 → 添加员工
2. 输入已存在的手机号(如某员工的手机号)
3. 检查是否提示"该手机号已用于 XX 人员"
4. 允许继续保存(一人多号场景)
5. 输入不存在的手机号 → 无提示
6. 输入格式错误的手机号(非 11 位)→ 格式校验提示
**预期结果**
- ✅ 已存在手机号有提示
- ✅ 允许继续保存
- ✅ 格式校验生效
---
### TASK-024 · 花名册操作栏开具证明
**前置条件**:花名册中有在职员工
**测试步骤**
1. 进入花名册
2. 点击某员工操作栏的「证明」按钮(FileText 图标)
3. 检查是否弹出证明类型选择(收入证明/离职证明/在职证明)
4. 选择「收入证明」→ 填写信息 → 生成
5. 检查是否支持下载/打印
**预期结果**
- ✅ 操作栏有「证明」按钮
- ✅ 弹出类型选择
- ✅ 生成后可下载
---
### TASK-025 · 花名册操作栏合同续签
**前置条件**:有合同即将到期(≤ 30 天)或已到期的员工
**测试步骤**
1. 进入花名册
2. 找到合同即将到期的员工
3. 检查操作栏是否显示「续签」按钮
4. 合同未到期的员工不应显示续签按钮
5. 点击「续签」→ 应跳转续签流程,员工已预填
6. 检查新合同开始日期是否自动推导
**预期结果**
- ✅ 仅即将到期/已到期员工显示续签按钮
- ✅ 点击后员工已预填
- ✅ 开始日期自动推导
---
### TASK-026 · 花名册多选批量转正
**前置条件**:花名册中有至少 2 名试用期员工
**测试步骤**
1. 进入花名册 → 勾选多名试用期员工
2. 检查批量操作栏是否出现「批量转正」按钮
3. 点击「批量转正」→ 弹窗填写统一转正日期 + 转正薪资
4. 确认 → 检查所有选中员工状态是否均变为正式
5. 混选试用期 + 非试用期员工 → 批量转正仅对试用期员工生效
**预期结果**
- ✅ 多选后显示批量转正按钮
- ✅ 统一填写日期和薪资
- ✅ 仅试用期员工生效
---
### TASK-027 · 花名册多选批量开具证明
**前置条件**:花名册中有多名员工
**测试步骤**
1. 进入花名册 → 勾选多名员工
2. 检查批量操作栏是否出现「批量开具证明」按钮
3. 点击 → 选择证明类型(在职/收入/离职)
4. 确认 → 批量生成
5. 检查生成数量是否与选中人数一致
6. 检查是否支持批量下载或逐个下载
**预期结果**
- ✅ 多选后显示批量证明按钮
- ✅ 选择类型后批量生成
- ✅ 生成数量正确
---
### TASK-028 · 去掉用工办理菜单
**测试步骤**
1. 查看左侧侧边栏 → 应无「用工办理」菜单项
2. 确认各流程入口已下沉到花名册操作栏:
- 转正 → 操作栏「转正」按钮
- 续签 → 操作栏「续签」按钮
- 变更 → 操作栏或合同页面
- 证明 → 操作栏「证明」按钮
- 入职 → 花名册「添加员工」
3. 直接访问 `/work-process` 路由 → 页面仍可访问(不丢数据)
4. 面包屑显示「批量流程」而非「用工办理」
**预期结果**
- ✅ 侧边栏无「用工办理」
- ✅ 所有流程入口已下沉
- ✅ WorkProcess 页面仍可访问
- ✅ 面包屑文案已更新
---
## 第四批 P3 规划(2 项)
### TASK-029 · 组织架构 + 审批流
**前置条件**:管理员权限
**测试步骤**
1. **部门管理**
- 进入「系统设置」→「组织架构」
- 创建部门"技术部" → 创建子部门"前端组"
- 编辑部门名称 → 删除无关联员工的部门
2. **岗位管理**
- 在组织架构中创建岗位"前端工程师",归属"技术部"
- 填写编制人数、职级
- 编辑/删除岗位
3. **员工关联**
- 花名册编辑员工 → 关联部门和岗位
- 设置直属上级
4. **审批流配置**
- 配置休假审批流:步骤1 直属上级 → 步骤2 部门负责人
- 配置离职审批流:步骤1 HR 审批
5. **审批流执行**
- 提交休假申请 → 直属上级审批 → 部门负责人审批 → 通过
**预期结果**
- ✅ 部门树形管理可用
- ✅ 岗位字典可增删改查
- ✅ 员工可关联部门/岗位/上级
- ✅ 审批流可配置最多 3 步
- ✅ 现有流程可接入审批流
---
### TASK-030 · 客服工作台
**前置条件**:需有客服角色账号(SUPPORT
**测试步骤**
1. **客服登录**
- 访问客服独立登录页 → 使用客服账号登录
- 检查独立侧边栏(非管理端侧边栏)
2. **工单管理**
- 查看工单列表 → 创建工单 → 回复工单 → 关闭工单
- 转派工单给其他客服
3. **客户会话**
- 查看会话列表 → 发送消息 → 未读消息提醒
4. **租户数据穿透**
- 选择租户 → 以只读模式查看该租户花名册/合同/薪税/风险
- 检查请求头是否带 `X-Support-Tenant-Id`
5. **协助操作**
- 代客户重置密码
- 代客户发起流程
6. **AI 辅助**
- 客服侧 AI 问答 → 检查会话隔离
7. **操作日志**
- 查看客服操作日志 → 检查留痕审计
**预期结果**
- ✅ 客服独立登录和侧边栏
- ✅ 工单完整生命周期
- ✅ 租户数据穿透只读
- ✅ AI 会话隔离
- ✅ 操作留痕
---
## 第五批 电子签署(12 项)
### TASK-031 · 发起签署 + 模板自动渲染
**前置条件**:管理端登录
**测试步骤**
1. 进入「电子签署」页面
2. 点击「发起签署」
3. 选择员工(如刘大壮)
4. 选择场景「劳动合同」
5. 检查文件标题是否自动填充
6. 提交创建
7. 在列表中找到该记录 → 点击查看详情
8. 检查文件内容是否已从模板自动渲染
9. 检查初始状态是否为「待签署」(PENDING)
10. 检查签署方式是否为「电子签署」(ELECTRONIC)
**预期结果**
- ✅ 发起签署时校验组织开关
- ✅ 文件内容自动从模板渲染
- ✅ 创建时自动生成证据链(发起签署事件)
- ✅ 状态为 PENDING,签署方式为 ELECTRONIC
---
### TASK-032 · 员工端验证码签署
**前置条件**:管理端已发起签署,员工有待签文件
**测试步骤**
1. 获取员工端自动登录令牌(管理端生成)
2. 员工端登录 → 进入「我的签署」
3. 查看待签文件列表
4. 点击某条待签记录 → 查看文件内容
5. 点击「获取验证码」
6. 开发模式下验证码直接显示(如 326292)
7. 输入验证码 → 点击「确认签署」
8. 检查签署状态是否变为「已完成」(COMPLETED)
9. 输入错误验证码 → 应被拒绝
10. 连续 5 次错误 → 应限制签署
**预期结果**
- ✅ 验证码发送成功
- ✅ 正确验证码签署成功
- ✅ 错误验证码被拒绝
- ✅ 5 次错误后限制
- ✅ 60 秒限流
---
### TASK-033 · 签署全流程证据链
**前置条件**:完成 TASK-031 和 TASK-032 的完整签署流程
**测试步骤**
1. 管理端进入签署记录详情页
2. 查看证据链时间线
3. 检查事件数量和类型:
- 事件 1:发起签署(创建时)
- 事件 2:验证码发送(员工端获取验证码时)
- 事件 3:签署完成(含 IP/UA/时间戳/验证码/签署人)
4. 取消一条签署 → 检查证据链是否追加「取消签署」事件
5. 检查每个事件是否包含时间戳、IP、操作人
6. 检查证据链是否包含 hash 值用于完整性校验
**预期结果**
- ✅ 完整签署流程证据链有 3 个事件
- ✅ 取消签署追加第 4 个事件
- ✅ 每个事件含时间戳/IP/操作人
- ✅ hash 值存在
---
### TASK-034 · 签署完成回写合同
**前置条件**:签署记录关联了合同 ID
**测试步骤**
1. 管理端发起劳动合同签署(关联员工合同)
2. 员工端完成验证码签署
3. 回到管理端 → 进入花名册 → 查看该员工合同
4. 检查合同 `signMethod` 是否变为 `ELECTRONIC`
5. 检查合同 `attachmentName` 是否包含证据摘要(IP/UA/时间戳)
**预期结果**
- ✅ 签署完成后合同 signMethod 回写为 ELECTRONIC
- ✅ attachmentName 包含证据摘要
---
### TASK-035 · 组织电子签开关校验
**前置条件**:系统设置中电子签开关默认关闭
**测试步骤**
1. 发起签署,场景选择「规章制度」(POLICY)
2. 组织未开启 `esignPolicyEnabled` → 应返回错误"组织未开启规章制度电子签功能"
3. 发起签署,场景选择「工资条」(PAYSLIP)
4. 组织未开启 `esignPayslipEnabled` → 应返回错误
5. 发起签署,场景选择「劳动合同」(CONTRACT)
6. CONTRACT 场景不受开关限制 → 应通过
7. 进入系统设置 → 开启 `esignPolicyEnabled` → 再发起 POLICY 签署 → 应通过
**预期结果**
- ✅ POLICY/PAYSLIP/ONBOARDING 场景受开关限制
- ✅ CONTRACT/RESIGNATION 场景不受限制
- ✅ 未开启时返回明确错误提示
---
### TASK-036 · scene 关联模板自动填充 + 过期处理
**测试步骤**
1. 发起签署 → 选择场景「劳动合同」→ 检查文件标题是否自动填充
2. 选择场景「离职协议」→ 检查文件标题自动填充
3. 创建一条 PENDING 签署记录 → 修改数据库 `expiresAt` 为过去时间
4. 刷新列表 → 检查该记录是否自动标记为「已过期」(EXPIRED)
**预期结果**
- ✅ 场景选择后自动填充默认标题
- ✅ 过期 PENDING 自动标记为 EXPIRED
- ✅ 过期时间默认 30 天
---
### TASK-037 · 管理端发起签署 UI
**测试步骤**
1. 进入「电子签署」页面
2. 检查发起签署表单是否包含:
- 场景选择(5 种:劳动合同/离职协议/规章制度/工资条/入职文件)
- 员工选择
- 文件标题(场景选择后自动填充)
3. 创建签署记录 → 点击查看详情
4. 检查详情页是否包含:
- 文件内容预览
- 证据链时间线
- 签署流程说明(6 步流程图)
5. 检查列表页是否有「签署方式」列
**预期结果**
- ✅ 5 种场景可选
- ✅ 场景选择后标题自动填充
- ✅ 详情页含文件预览和证据链
- ✅ 列表含签署方式列
---
### TASK-038 · 员工端签署 UI
**前置条件**:员工端有待签文件
**测试步骤**
1. 员工端登录 → 进入「我的签署」
2. 检查待签文件列表
3. 点击某条记录 → 检查文件内容预览
4. 点击「获取验证码」→ 检查 60 秒倒计时
5. 输入验证码 → 确认签署
6. 检查签署完成状态展示
7. 检查线下手签记录是否只读展示(含扫描件链接)
**预期结果**
- ✅ 验证码签署流程完整
- ✅ 60 秒倒计时限制
- ✅ 文件内容可预览
- ✅ 线下手签记录只读展示
---
### TASK-039 · 线下手签完整流程
**前置条件**:管理端登录
**测试步骤**
1. 进入「电子签署」页面
2. 点击「线下手签登记」
3. 选择员工
4. 填写签署日期、签署地点、见证人姓名、见证人电话
5. 上传扫描件(PDF/图片)
6. 提交登记
7. 检查记录状态是否直接为「已完成」(COMPLETED)
8. 检查签署方式是否为「线下手签」(PAPER)
9. 查看证据链 → 检查是否记录线下手签事件
10. 员工端登录 → 检查线下手签记录是否可见且含扫描件链接
**预期结果**
- ✅ 线下手签登记表单完整
- ✅ 登记后状态为 COMPLETED,方式为 PAPER
- ✅ 证据链记录
- ✅ 员工端可查看扫描件
---
### TASK-040 · 花名册操作自动创建电子签署
**前置条件**:花名册中有在职员工
**测试步骤**
1. **主动离职**
- 花名册点击员工「离职」→ 选择「主动离职」
- 完成离职草稿创建
- 进入「电子签署」→ 检查是否自动创建「离职协议」签署记录
- 员工端登录 → 检查是否可见该签署记录
2. **公司解聘执行**
- 创建解聘草稿 → 审批通过 → 执行解聘
- 检查是否自动创建离职协议签署记录
**预期结果**
- ✅ 主动离职自动创建离职协议签署
- ✅ 公司解聘执行后自动创建
- ✅ 员工端可见自动创建的签署记录
- ✅ 自动创建失败不阻断主流程
---
### TASK-041 · 通用签署方式选择弹窗 + 花名册 4 项联动
**前置条件**:花名册中有可操作的员工
**测试步骤**
1. **重新入职**
- 花名册找到已离职员工 → 操作「重新入职」
- 操作成功后 → 检查是否弹出签署方式选择(电子签/线下手签/稍后处理)
- 选择「电子签」→ 检查是否自动创建劳动合同签署记录
- 选择「线下手签」→ 检查是否跳转签署页面且信息已预填
- 选择「稍后处理」→ 跳过
2. **合同续签**
- 花名册合同即将到期员工 → 操作「续签」
- 操作成功后 → 弹窗选择签署方式
- scene 应为 CONTRACT,文件标题为续签劳动合同
3. **薪酬变更**
- 花名册员工 → 操作「薪酬变更」
- 操作成功后 → 弹窗选择签署方式
- scene 应为 POLICY,文件标题为薪酬调整确认书
4. **调岗调动**
- 花名册员工 → 操作「调岗调动」
- 操作成功后 → 弹窗选择签署方式
- scene 应为 POLICY,文件标题为调岗确认书
5. **ESign 页面 URL 参数**
- 选择「线下手签」后跳转 ESign 页面
- 检查 URL 是否包含预填参数
- 检查线下手签 Modal 是否自动打开且信息已预填
**预期结果**
- ✅ 4 项操作成功后均弹出签署方式选择
- ✅ 三种选择(电子签/线下手签/稍后处理)均可正确处理
- ✅ ESign 页面支持 URL 参数自动打开线下手签登记
---
### TASK-042 · 转正弹窗显示原薪资 + 薪资变化联动签署
**前置条件**:花名册中有试用期员工
**测试步骤**
1. **薪资有变化**
- 试用期员工(薪资 ¥8000)→ 点击「转正」
- 检查转正 Modal 是否显示原薪资(¥8000)
- 检查转正薪资字段是否默认填入 ¥8000
- 修改转正薪资为 ¥10000
- 检查是否提示"将发起薪酬调整确认书签署"
- 确认转正 → 操作成功后弹出签署方式选择
- 检查签署文件标题是否为"转正薪酬调整确认书"
- 检查备注是否记录"¥8000 → ¥10000"
2. **薪资无变化**
- 试用期员工(薪资 ¥8000)→ 点击「转正」
- 不修改转正薪资(保持 ¥8000
- 确认转正 → 仅显示"转正已提交",不弹窗
**预期结果**
- ✅ 转正 Modal 显示原薪资
- ✅ 转正薪资默认填入原薪资
- ✅ 薪资变化时提示将发起签署
- ✅ 薪资有变化时弹窗选择签署方式
- ✅ 薪资未变化时不弹窗
- ✅ 签署文件标题和备注正确
---
## 测试结果记录模板
### 按任务记录
| 任务编号 | 任务名称 | 测试结果 | 实际情况说明 | 测试人 | 测试日期 |
|---------|---------|---------|-------------|-------|---------|
| TASK-001 | 草稿保存完整性 | ✅ 通过 / ❌ 失败 | | | |
| TASK-002 | 补偿金合计同步 | ✅ 通过 / ❌ 失败 | | | |
| ... | ... | ... | | | |
### 问题反馈模板
```
问题编号:BUG-001
对应任务:TASK-XXX
问题描述:(详细描述)
复现步骤:
1. ...
2. ...
3. ...
预期结果:...
实际结果:...
截图:(附截图)
严重程度:阻断 / 主要 / 次要 / 建议
测试人:
测试日期:
```
### 测试汇总
| 批次 | 任务数 | 通过 | 失败 | 有偏差 | 通过率 |
|------|--------|------|------|--------|--------|
| P0 紧急 | 6 | | | | |
| P1 高 | 14 | | | | |
| P2 中 | 9 | | | | |
| P3 规划 | 2 | | | | |
| 电子签署 | 12 | | | | |
| **合计** | **43** | | | | |
---
## 注意事项
1. **测试顺序**:建议按批次顺序测试,因部分任务有依赖关系(如 TASK-002 依赖 TASK-001
2. **数据清理**:测试完成后请清理测试数据,避免影响生产环境
3. **电子签署验证码**:开发模式下验证码直接返回,生产环境需对接短信服务商
4. **线下手签扫描件**:测试上传的扫描件存储在服务器 `uploads/paper-sign/` 目录
5. **历史脏数据**:部分历史数据可能存在倒置日期、男职工三期等问题,属预期内
6. **法律效力提示**:当前电子签署证据链(IP/UA/时间戳/验证码)为初步举证材料,完整法律效力需配合第三方 CA 机构