Files
smart-crop-ui/src/CHANGE_HISTORY_TEST.md

8.7 KiB
Raw Blame History

变更历史功能测试清单

测试目的

验证农机全生命周期档案变更历史功能是否正常工作。

测试环境

  • 浏览器Chrome/Firefox/Safari
  • 系统:智慧农业生产管理系统
  • 模块:智能农机管理系统 > 农机全生命周期档案

测试步骤

1. 基础功能测试

1.1 创建新农机档案

  • 进入"农机档案录入"页面
  • 点击"新增农机"按钮
  • 填写完整的农机信息
  • 保存成功
  • 预期结果:新建不应产生变更记录

1.2 编辑农机档案 - 单字段修改

  • 选择一个已存在的农机档案
  • 点击"编辑"按钮
  • 修改"设备名称"字段:拖拉机A东方红拖拉机
  • 保存
  • 预期结果
    • 提示"农机档案更新成功记录了1项变更"
    • 可以在变更历史中看到这条记录

1.3 编辑农机档案 - 多字段修改

  • 编辑同一农机档案
  • 同时修改以下字段:
    • 设备状态:正常待维护
    • 当前位置:A地块B地块
    • 购机价格:5000048000
  • 保存
  • 预期结果
    • 提示"农机档案更新成功记录了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 空值处理

  • 修改一个空字段为非空值
  • 修改一个非空字段为空
  • 查看变更历史
  • 检查点
    • 空值显示为 (空)
    • 不显示为 nullundefined

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

测试结论

  • 通过 - 所有功能正常
  • 有问题 - 需要修复
  • 阻塞 - 无法继续测试

备注

记录任何额外的观察或建议


快速验证脚本

如需快速验证核心<EFBFBD><EFBFBD>可以按以下顺序执行

  1. 创建测试数据2分钟

    • 新建一个农机"测试拖拉机"
  2. 生成变更记录3分钟

    • 修改设备名称
    • 修改设备状态
    • 修改购机价格
  3. 验证显示2分钟

    • 打开详情页
    • 切换到变更历史标签
    • 验证3条记录都显示正确
  4. 测试过滤2分钟

    • 搜索"设备名称"
    • 切换视图模式
    • 检查统计数据

总计约9分钟完成基础功能验证

自动化测试建议

未来可以考虑使用以下工具进行自动化测试:

  • Cypress:端到端测试
  • Jest + React Testing Library:单元测试
  • Playwright:跨浏览器测试

示例测试用例:

describe('变更历史功能', () => {
  it('应该在编辑后记录变更', () => {
    // 1. 创建农机
    // 2. 编辑农机
    // 3. 验证变更记录存在
  });
  
  it('应该正确过滤变更记录', () => {
    // 1. 创建多条变更记录
    // 2. 应用过滤器
    // 3. 验证过滤结果
  });
});