# 变更历史功能测试清单 ## 测试目的 验证农机全生命周期档案变更历史功能是否正常工作。 ## 测试环境 - 浏览器:Chrome/Firefox/Safari - 系统:智慧农业生产管理系统 - 模块:智能农机管理系统 > 农机全生命周期档案 ## 测试步骤 ### 1. 基础功能测试 #### 1.1 创建新农机档案 - [ ] 进入"农机档案录入"页面 - [ ] 点击"新增农机"按钮 - [ ] 填写完整的农机信息 - [ ] 保存成功 - [ ] **预期结果**:新建不应产生变更记录 #### 1.2 编辑农机档案 - 单字段修改 - [ ] 选择一个已存在的农机档案 - [ ] 点击"编辑"按钮 - [ ] 修改"设备名称"字段:`拖拉机A` → `东方红拖拉机` - [ ] 保存 - [ ] **预期结果**: - 提示"农机档案更新成功,记录了1项变更" - 可以在变更历史中看到这条记录 #### 1.3 编辑农机档案 - 多字段修改 - [ ] 编辑同一农机档案 - [ ] 同时修改以下字段: - 设备状态:`正常` → `待维护` - 当前位置:`A地块` → `B地块` - 购机价格:`50000` → `48000` - [ ] 保存 - [ ] **预期结果**: - 提示"农机档案更新成功,记录了3项变更" - 变更历史中应显示3条新记录 ### 2. 变更历史显示测试 #### 2.1 查看变更历史 - [ ] 点击农机名称查看详情 - [ ] 切换到"变更历史"标签页 - [ ] **检查点**: - [ ] 可以看到之前修改的所有记录 - [ ] 记录按时间倒序排列(最新的在最上面) - [ ] 每条记录显示:字段名、旧值、新值、操作人、时间 #### 2.2 统计卡片 - [ ] 查看顶部的4个统计卡片 - [ ] **检查点**: - [ ] "总变更次数"显示正确(应该是4次) - [ ] "变更字段数"显示正确 - [ ] "操作人数"显示正确(应该是1人) - [ ] "最近变更"显示相对时间(如"刚刚"、"5分钟前") ### 3. 过滤和搜索测试 #### 3.1 关键词搜索 - [ ] 在搜索框输入"设备名称" - [ ] **预期结果**:只显示设备名称相关的变更记录 - [ ] 清空搜索框 - [ ] 输入"东方红" - [ ] **预期结果**:显示包含"东方红"的变更记录 #### 3.2 操作人筛选 - [ ] 点击"操作人"下拉框 - [ ] **检查点**: - [ ] 下拉列表包含所有操作过的人员 - [ ] 选择"系统管理员" - [ ] 只显示该操作人的变更记录 #### 3.3 字段筛选 - [ ] 点击"字段"下拉框 - [ ] **检查点**: - [ ] 下拉列表包含所有被修改过的字段 - [ ] 选择"设备状态" - [ ] 只显示设备状态字段的变更记录 #### 3.4 组合过滤 - [ ] 同时使用搜索、操作人筛选和字段筛选 - [ ] **预期结果**:应该显示同时满足所有条件的记录 - [ ] 清空所有过滤条件 - [ ] **预期结果**:恢复显示所有记录 ### 4. 视图模式测试 #### 4.1 时间轴视图 - [ ] 确认当前为"时间轴"视图(默认) - [ ] **检查点**: - [ ] 每条记录显示在时间线上 - [ ] 有垂直的连接线 - [ ] 显示相对时间(如"2小时前") - [ ] 悬停在记录上显示完整时间 #### 4.2 按日期分组视图 - [ ] 点击"按日期"按钮 - [ ] **检查点**: - [ ] 记录按日期分组显示 - [ ] 每个日期显示该日的变更数量 - [ ] 日期按倒序排列 - [ ] 同一天内的记录紧凑显示 #### 4.3 视图切换 - [ ] 在两种视图之间来回切换 - [ ] **预期结果**: - [ ] 切换流畅,无卡顿 - [ ] 数据保持一致 - [ ] 过滤条件保持有效 ### 5. 数据格式化测试 #### 5.1 日期字段 - [ ] 修改"出厂日期"或"购买日期" - [ ] 查看变更历史 - [ ] **检查点**: - [ ] 日期显示为 `YYYY/MM/DD` 格式 - [ ] 中文日期格式正确 #### 5.2 金额字段 - [ ] 修改"购机价格"或"保险金额" - [ ] 查看变更历史 - [ ] **检查点**: - [ ] 显示货币符号 `¥` - [ ] 千位分隔符正确(如 `¥50,000`) #### 5.3 数组字段 - [ ] 修改"标签"(添加或删除标签) - [ ] 查看变更历史 - [ ] **检查点**: - [ ] 旧值显示原标签列表 - [ ] 新值显示更新后的标签列表 - [ ] 标签之间用逗号分隔 #### 5.4 空值处理 - [ ] 修改一个空字段为非空值 - [ ] 修改一个非空字段为空 - [ ] 查看变更历史 - [ ] **检查点**: - [ ] 空值显示为 `(空)` - [ ] 不显示为 `null` 或 `undefined` ### 6. 变更统计测试 #### 6.1 字段变更频率 - [ ] 滚动到"变更统计"区域 - [ ] 查看"字段变更频率 Top 5" - [ ] **检查点**: - [ ] 显示最常修改的5个字段 - [ ] 按变更次数降序排列 - [ ] 显示每个字段的变更次数 #### 6.2 操作人统计 - [ ] 查看"操作人变更统计" - [ ] **检查点**: - [ ] 显示所有操作人 - [ ] 显示每个操作人的操作次数 - [ ] 按次数降序排列 ### 7. 边界情况测试 #### 7.1 无变更记录 - [ ] 创建一个新农机(不要编辑) - [ ] 查看其变更历史 - [ ] **预期结果**:显示"暂无变更记录" #### 7.2 大量变更记录 - [ ] 对同一农机进行20次以上的编辑 - [ ] 查看变更历史 - [ ] **检查点**: - [ ] 滚动区域正常工作 - [ ] 不会卡顿或崩溃 - [ ] 统计数据正确 #### 7.3 相同值修改 - [ ] 编辑农机,但不修改任何字段(或改回原值) - [ ] 保存 - [ ] **预期结果**: - [ ] 提示"更新成功" - [ ] 不应产生变更记录 ### 8. 用户体验测试 #### 8.1 响应式布局 - [ ] 缩小浏览器窗口 - [ ] **检查点**: - [ ] 统计卡片自动换行 - [ ] 过滤器在小屏幕上垂直排列 - [ ] 变更记录卡片适应屏幕宽度 #### 8.2 交互反馈 - [ ] 悬停在变更记录卡片上 - [ ] **检查点**: - [ ] 卡片有阴影效果 - [ ] 鼠标指针变化(如果可点击) #### 8.3 加载性能 - [ ] 打开有大量变更记录的农机详情 - [ ] **检查点**: - [ ] 页面加载时间 < 2秒 - [ ] 滚动流畅,无明显延迟 ### 9. 数据一致性测试 #### 9.1 跨页面一致性 - [ ] 在"农机档案录入"页面编辑农机 - [ ] 关闭并重新打开详情页 - [ ] **预期结果**:变更记录保持一致 #### 9.2 刷新后数据保持 - [ ] 查看变更历史 - [ ] 刷新浏览器页面(F5) - [ ] 重新打开农机详情 - [ ] **预期结果**:所有变更记录仍然存在 #### 9.3 多农机独立性 - [ ] 编辑农机A - [ ] 编辑农机B - [ ] 分别查看两者的变更历史 - [ ] **预期结果**: - [ ] 农机A只显示A的变更 - [ ] 农机B只显示B的变更 - [ ] 互不干扰 ### 10. 异常处理测试 #### 10.1 特殊字符处理 - [ ] 修改字段值为包含特殊字符的文本(如 `<>&"'`) - [ ] 查看变更历史 - [ ] **预期结果**:特殊字符正确显示,不会导致页面错误 #### 10.2 超长文本 - [ ] 修改备注字段为超长文本(1000+字符) - [ ] 查看变更历史 - [ ] **预期结果**: - [ ] 文本正确显示或截断 - [ ] 不会破坏页面布局 ## 测试结果记录 ### 测试信息 - 测试日期:__________ - 测试人员:__________ - 浏览器版本:__________ - 系统版本:__________ ### 测试结果统计 - 通过数量:______ / 60+ - 失败数量:______ - 阻塞数量:______ ### 发现的问题 | 问题编号 | 问题描述 | 严重程度 | 状态 | |---------|---------|---------|------| | 1 | | | | | 2 | | | | | 3 | | | | ### 测试结论 - [ ] 通过 - 所有功能正常 - [ ] 有问题 - 需要修复 - [ ] 阻塞 - 无法继续测试 ### 备注 _记录任何额外的观察或建议_ --- ## 快速验证脚本 如需快速验证核心��能,可以按以下顺序执行: 1. **创建测试数据**(2分钟) - 新建一个农机"测试拖拉机" 2. **生成变更记录**(3分钟) - 修改设备名称 - 修改设备状态 - 修改购机价格 3. **验证显示**(2分钟) - 打开详情页 - 切换到变更历史标签 - 验证3条记录都显示正确 4. **测试过滤**(2分钟) - 搜索"设备名称" - 切换视图模式 - 检查统计数据 总计:约9分钟完成基础功能验证 ## 自动化测试建议 未来可以考虑使用以下工具进行自动化测试: - **Cypress**:端到端测试 - **Jest + React Testing Library**:单元测试 - **Playwright**:跨浏览器测试 示例测试用例: ```javascript describe('变更历史功能', () => { it('应该在编辑后记录变更', () => { // 1. 创建农机 // 2. 编辑农机 // 3. 验证变更记录存在 }); it('应该正确过滤变更记录', () => { // 1. 创建多条变更记录 // 2. 应用过滤器 // 3. 验证过滤结果 }); }); ```