Skip to content

回归测试与验收清单

这份文档分两件事:

  1. 回归测试:确认本次修改没有把旧功能改坏,重点补那些开发过程中不容易触发的问题。
  2. 验收清单:把最终结果和前面的需求说明书、技术要求、功能项、性能项逐条对齐。

回归测试和验收不是一回事。回归偏“改完有没有引入新问题”,验收偏“是否满足一开始说好的要求”。

1. 回归测试的真实作用

开发和调试过程中,很多明显问题已经被消灭了。比如编译错误、按钮点不了、页面打不开、明显报错,通常在开发时就会发现。

回归测试重点关注剩下那部分不容易暴露的问题:

  1. 触发条件没达到,所以开发时没发现。
  2. 操作顺序不同,问题才出现。
  3. 数据量变大后才出现。
  4. 通信断开、超时、异常帧时才出现。
  5. 长时间运行才出现。
  6. 换电脑、换设备、换配置后才出现。
  7. 修改 A 功能后,B 功能被间接影响。

所以回归测试不应该机械地全测一遍,而应该根据本次修改影响范围选择重点。

2. 按修改等级选择回归范围

修改类型示例回归范围
L1 小改文案、按钮位置、简单样式、明显编译错误编译 + 当前页面/当前功能
L2 快速修复绑定字段、按钮事件、简单空值、路径错误原问题 + 相关页面/相关功能
L3 普通功能修改新增按钮、新增页面字段、修改保存逻辑当前功能 + 上下游功能 + 数据检查
L4 通信/数据/线程修改协议解析、接收缓存、数据保存、UI 刷新通信链路 + 数据链路 + 异常路径
L5 交付/高风险修改真实设备、生产数据、数据库结构、发布版本按需求和技术要求做系统验收

3. 回归测试先问三个问题

每次修改后,先问:

  1. 这次改了什么?
  2. 这次可能影响什么?
  3. 哪些问题开发时不容易触发?

示例:

修改内容可能影响不容易触发的问题
改连接按钮状态连接/断开/UI 状态/日志断线后按钮状态不恢复
改协议解析接收缓存/数据解析/显示/保存粘包半包、异常帧、CRC 错误
改数据保存保存路径/字段/导出/查询权限不足、磁盘满、大数据量
改实时曲线UI 刷新/内存/性能长时间运行后卡顿

4. 通用冒烟检查

小改也至少做这些:

检查项结果备注
项目能编译通过 / 不通过
程序能启动通过 / 不通过
修改目标能看到效果通过 / 不通过
原问题已消失通过 / 不通过
没有明显新报错通过 / 不通过

5. 按影响范围选择回归项

UI 回归

检查项什么时候测
页面能打开改页面、改样式、改导航
按钮状态正确改按钮、连接状态、流程状态
数据能刷新改绑定、ViewModel、数据源
页面切换正常改导航、窗口、Tab
长文本/异常值不撑坏布局改显示字段、表格、日志

通信回归

检查项什么时候测
能连接/断开改连接逻辑、状态机
能收发数据改发送、接收、协议
粘包半包能处理改解析、缓存、TCP
超时有提示改请求回复、等待逻辑
断线状态正确改重连、心跳、连接状态
原始日志可追踪改通信、协议、异常处理

通信专项回归矩阵

涉及串口、TCP、Modbus、自定义协议、心跳、重连、缓存或解析时,不要只测“能收到一条正常数据”。

场景验证方法通过标准证据
正常连接打开串口或建立 TCP 连接UI 状态、日志、内部状态一致连接日志截图或文本
正常收发发送一条命令,接收正常响应原始报文和解析结果一致TX/RX/PARSE 日志
半包用模拟器分两次发送一帧第一次不误解析,第二次解析成功分包日志
粘包一次发送两帧或多帧能连续解析多帧多帧解析日志
CRC/校验错误发送故意错误校验帧不输出错误业务数据,有错误日志错误帧日志
未知命令发送未定义命令字不崩溃,不污染正常流程未知命令日志
超时发送命令后不回复UI 提示或状态正确,日志有超时记录超时日志
断线拔线、关串口、停止 TCP 服务状态恢复,禁止继续误操作断线日志
重连断线后恢复设备或服务按规则重连,不重复创建连接状态切换日志
高频接收按目标频率连续发送数据UI 不卡,缓存不持续增长运行时长、错误数、CPU/内存

如果没有模拟器,可以先用固定报文单元测试或日志回放验证协议解析;最终交付前再补真实设备验证。

数据回归

检查项什么时候测
数据能保存改保存逻辑、字段、路径
保存字段完整改数据模型、导出、数据库
查询结果正确改查询、过滤、时间范围
导出文件可打开改导出、格式、路径
保存失败有提示改异常处理、权限、路径

长时间和异常触发回归

检查项什么时候测
连续运行一段时间不卡死实时曲线、高频数据、通信接收
数据量变大不明显卡顿表格、曲线、日志、保存
断线/重连后状态正确串口/TCP/设备通信
异常帧/错误数据不崩溃协议解析、数据处理
重复操作不出错连接/断开、开始/停止、保存/导出

6. 验收清单要和需求对齐

验收不是凭感觉列一堆通用项,而是要和前面的需求说明书、技术要求、功能项、性能项对应起来。

建议把验收做成这种表:

需求编号需求/技术要求验收方法通过标准结果备注
R-001软件能连接指定设备连接真实设备或模拟设备状态显示在线,日志有连接记录通过 / 不通过
R-002能显示实时数据设备发送测试数据界面数值和设备发送值一致通过 / 不通过
R-003能保存测试结果完成一次测试文件/数据库字段完整通过 / 不通过
P-001连续运行 8 小时长时间运行测试无崩溃、无明显卡顿通过 / 不通过

如果前面没有需求编号,可以先让 AI 根据第一版需求方案生成编号。

6.1 验收证据怎么留

验收结论不要只写“通过”。至少保留能复查的证据。

验收类型建议证据
UI 功能操作截图、关键状态截图、异常提示截图
通信功能带时间戳的 TX/RX/PARSE 日志、模拟器记录、设备返回截图
数据保存文件样例、数据库记录截图、导出文件、字段对照表
异常处理超时、断线、保存失败、参数错误的日志或截图
性能稳定运行时长、数据量、错误次数、CPU/内存记录
发布交付版本号、配置文件、运行环境、旧版本备份位置

建议在验收报告里加一列“证据位置”:

需求编号验收方法通过标准结果证据位置备注
R-001连接设备状态在线,日志有连接记录通过 / 不通过日志文件或截图路径

7. 验收项分类

类型对应内容
功能项连接、采集、显示、控制、保存、查询、导出
通信项收发、解析、异常帧、超时、断线、重连
数据项字段完整、时间正确、查询正确、导出正确
UI 项页面可操作、状态清晰、关键数据可见
异常项错误参数、设备断线、保存失败、通信异常
性能项刷新频率、数据量、连续运行、不卡顿
文档项使用说明、配置说明、测试记录、交付说明

7.1 工控交付测试分层

工控软件和上位机项目不要把“开发电脑上能跑”直接当成交付通过。更稳妥的分层是:

层级名称主要目的典型环境通过标准
DEV开发自测确认功能基本可运行开发电脑、模拟数据、少量固定报文编译、启动、核心功能跑通
SIT系统集成测试确认 UI、通信、数据、日志能串起来测试环境、模拟器、部分真实设备正常流程和异常路径通过
FAT出厂/交付前测试在交付前按需求验收软件和设备联动公司内部、客户可远程或现场见证需求项、通信项、数据项、异常项有记录
SAT现场验收测试确认软件在客户现场或产线环境可用客户现场、真实设备、真实网络和权限现场流程通过,环境和配置确认
Trial试运行验证一段时间内稳定性和问题闭环产线或真实使用环境长稳、错误数、数据完整性、问题记录可接受

不是每个项目都需要完整 FAT/SAT。简单自用工具可以只做 DEV + 关键回归;客户交付、产线、真实设备控制建议至少做 FAT 和 SAT。

FAT 检查重点

检查项证据
需求编号逐条验收需求追踪表、验收表
通信正常和异常场景TX/RX/PARSE 日志、模拟器或设备记录
数据保存和导出数据文件、数据库截图、字段对照
配置文件和运行环境配置说明、版本号、运行环境记录
已知风险未测项、限制条件、客户待确认项

SAT 检查重点

检查项证据
现场电脑和系统环境Windows、.NET、驱动、权限、路径
真实设备连接端口/IP、线缆、设备状态、连接日志
现场操作流程操作截图、客户确认、异常处理记录
数据保存路径和权限实际路径、写入测试、导出样例
回滚方案旧版本、旧配置、恢复步骤

8. 发给 AI 的回归 Prompt

text
请根据本次上位机修改内容,生成回归测试清单。

不要机械列全量清单,请先判断影响范围。

修改内容:
【写本次改了什么】

可能影响:
【如果不确定,请让 AI 判断】

请输出:
1. 修改等级:L1/L2/L3/L4/L5。
2. 必须回归的功能。
3. 开发时不容易触发、但需要补测的场景。
4. 正常路径测试。
5. 异常路径测试。
6. 需要保留的验收证据。
7. 安全检查点。
8. 发布前检查点。
9. 最小验证步骤。

9. 发给 AI 的验收 Prompt

text
请根据下面的需求方案/技术要求,生成上位机项目验收清单。

要求:
1. 验收项必须和需求功能项、技术要求、性能要求一一对应。
2. 不要只给通用清单。
3. 每个验收项要包含:需求编号、验收方法、通过标准。
4. 如果需求里没有编号,请先自动编号。

需求方案/技术要求:
【粘贴需求方案或技术要求】

请输出:
1. 功能验收表。
2. 通信验收表。
3. 数据验收表。
4. UI 验收表。
5. 异常处理验收表。
6. 性能和稳定性验收表。
7. 仍需人工确认的验收项。

10. 验收报告模板

text
项目名称:
验证日期:
验证人员:
验证环境:
需求版本:

一、验收范围
本次验收对应哪些需求编号/功能模块:

二、验收结果汇总
- 功能项:
- 通信项:
- 数据项:
- UI 项:
- 异常项:
- 性能项:

三、未通过项
| 需求编号 | 问题 | 影响 | 处理建议 |

四、已知风险
1.
2.

五、结论
通过 / 有条件通过 / 不通过

11. 测试分层

不要把所有测试都理解成“手工点一遍界面”。不同风险对应不同测试层级。

层级测什么适合什么时候用
单元测试纯逻辑、协议解析、校验、格式转换改算法、CRC、报文解析、数据模型
集成测试通信服务、存储服务、配置读写改串口/TCP、数据库、文件保存
UI 手工测试页面操作、按钮状态、数据显示改界面、绑定、命令、流程状态
模拟器测试用模拟设备或测试报文验证链路真实设备不方便、协议需要反复测
真实设备测试和实际硬件联调涉及真实动作、最终交付、客户现场
长稳测试连续运行、数据量、内存、卡顿高频采集、曲线、日志、保存、产线使用

建议:

  1. 协议解析优先做单元测试或固定报文测试。
  2. 通信链路优先用模拟器补正常帧、异常帧、断线重连。
  3. 涉及真实设备动作时,先模拟器,再低风险设备,再现场流程。
  4. 长稳测试要记录时间、数据量、错误数、CPU/内存趋势。

12. 安全检查

上位机虽然常见于测试和调试,但也可能控制真实设备。以下情况必须做安全检查。

检查项什么时候必须检查通过标准
危险动作确认控制电机、继电器、电源、气缸、加热等操作前有明确确认或互锁
参数范围限制写入电压、电流、频率、速度、温度等超范围不能下发,并有提示
通信命令确认新增或修改控制命令命令码、长度、校验、方向确认无误
断线状态设备连接中断UI 状态恢复,禁止继续误操作
日志追踪涉及设备动作或数据追溯有时间、命令、结果、错误记录
权限和路径保存到系统目录、网络目录、客户电脑权限不足时不崩溃,有明确提示
数据隐私日志或导出包含客户、设备、工艺信息交付前脱敏或确认可保存
配置保护修改配置文件、数据库连接、设备地址旧配置可备份,新配置可回退

安全检查不通过时,不允许进入真实设备验证或现场交付。

13. 长稳测试记录

如果项目涉及实时采集、曲线刷新、连续保存、产线使用,建议做长稳测试。

项目记录
测试日期
测试环境电脑、系统、.NET、设备或模拟器
软件版本
运行时长
数据频率
总数据量
通信错误次数
CRC/异常帧次数
保存文件大小
CPU/内存变化
是否卡顿或崩溃
结论通过 / 有条件通过 / 不通过

长稳测试不是越长越好。第一阶段可以先做 30 分钟或 1 小时;交付或产线使用再按需求做 4 小时、8 小时或更长。

13.1 长稳测试分级

场景建议时长适合阶段
快速验证10 到 15 分钟刚改完高频接收、曲线或保存逻辑
阶段验收30 分钟到 1 小时功能基本完成,准备给客户或同事试用
交付前验证4 到 8 小时产线、客户现场、连续采集、自动测试
专项压力按项目要求高频数据、大文件保存、长时间日志、数据库写入

长稳测试期间至少记录:

  1. 开始时间和结束时间。
  2. 数据频率和累计数据量。
  3. 通信错误次数、CRC 错误次数、超时次数。
  4. CPU 和内存的大致变化。
  5. UI 是否卡顿、日志是否持续增长、保存文件是否正常。
  6. 断线或异常恢复是否符合预期。

14. 发布前检查

准备把软件发给客户、现场或产线前,至少确认:

检查项结果备注
发布版本号明确通过 / 不通过
编译配置正确Debug / Release
运行环境明确通过 / 不通过Windows、.NET、驱动
配置文件已说明通过 / 不通过串口、IP、路径、数据库
日志路径可写通过 / 不通过
数据保存路径可写通过 / 不通过
旧版本已备份通过 / 不通过
旧配置已备份通过 / 不通过
已知风险已记录通过 / 不通过
人工审核完成通过 / 不通过真实设备和危险动作必须审核

15. 可回滚检查

改动越靠近交付,越要提前想好回滚。

回滚对象检查内容
程序版本是否保留上一版可运行程序
配置文件是否备份旧配置,是否能恢复默认配置
数据库是否有迁移脚本和备份,是否能兼容旧数据
协议配置新旧命令是否兼容,设备端是否同步
数据文件新字段是否影响旧工具打开
现场说明如果新版本失败,谁负责恢复,怎么恢复

如果没有回滚方案,不建议在生产环境或客户现场直接替换。

上位机 AI 开发工作流资料包 | 閑魚:別來無恙 | QQ群:1016188499