工业验证测试报告模板
用途: 路线图 Phase 2 各支持协议的联机验证归档模板。
门禁: 须满足 G-Industrial — 工业验证门禁。
说明: 每协议一份报告;仿真器与现场设备须分别注明,不可混填为「已通过现场验证」。
1. 基本信息
| 字段 |
内容 |
| 报告编号 |
IND-________ |
| 协议 |
☐ Modbus TCP ☐ Modbus RTU ☐ OPC UA ☐ Siemens S7 ☐ DL/T645 ☐ BACnet |
| EdgeX 版本 |
v________(Git commit:________) |
| 测试日期 |
开始:________ 结束:________ |
| 测试负责人 |
________ |
| 环境类型 |
☐ 现场设备 ☐ 高保真仿真器 ☐ 混合(注明各场景) |
2. 测试环境
2.1 设备与固件
| 项目 |
说明 |
| 设备型号 / 仿真器 |
|
| 固件 / 软件版本 |
|
| 从站 / 节点数量 |
|
| 采集点位规模(tag 数) |
|
| 扫描周期配置 |
|
2.2 网络拓扑
(示意:网关 ──[以太网/RS485]── 设备/PLC;注明 VLAN、NAT、串口参数等)
| 项目 |
说明 |
| 网关硬件 / OS |
|
| 网络类型 |
☐ 以太网 ☐ RS485 ☐ 其他:________ |
| 延迟 / 带宽基线 |
|
| 故障注入方式 |
☐ 拔线 ☐ 防火墙规则 ☐ tc/netem ☐ 设备侧重启 ☐ 其他 |
2.3 EdgeX 配置摘要
- 通道 ID / 驱动配置路径:
- 超时 / 重试 / CB 相关参数(如有覆盖):
- diagnostics 采样间隔:
3. 测试场景清单
按协议风险选择 24h 或 72h 长跑时长;其余场景为必测项。
| # |
场景 |
必测 |
计划时长 |
执行日期 |
结果 |
备注 |
| S1 |
24h / 72h 长跑 |
✔ |
☐ 24h ☐ 72h |
|
☐ 通过 ☐ 失败 ☐ 跳过 |
|
| S2 |
网络断开恢复 |
✔ |
|
|
☐ 通过 ☐ 失败 |
拔线 / 防火墙 / 路由切换 |
| S3 |
PLC / 设备重启 |
✔ |
|
|
☐ 通过 ☐ 失败 |
设备侧重启后自动恢复采集 |
| S4 |
网络抖动 |
✔ |
|
|
☐ 通过 ☐ 失败 |
延迟波动、间歇丢包 |
| S5 |
超时 |
✔ |
|
|
☐ 通过 ☐ 失败 |
响应超时与 CB 联动 |
| S6 |
高丢包 |
✔ |
|
|
☐ 通过 ☐ 失败 |
极端网络下的隔离与恢复 |
场景通过定义(每项): 采集恢复、无 channel 级 Offline(除非预期)、同通道其他设备不受影响(共享链路协议)、无 panic / 死锁。量化阈值与 PASS/WARN/BLOCK 裁量见 G-Industrial — 发布判定标准。
4. 指标记录
4.1 汇总指标(测试全程 / 稳态窗口)
| 指标 |
字段 / 来源 |
阈值(联机) |
实测 |
是否达标 |
| Scan Lag P95 |
scan_lag_p95_ms |
<150ms(PASS) |
|
☐ PASS ☐ WARN ☐ BLOCK |
| Scan Lag P99 |
diagnostics / 采样 |
记录值;>300ms 须说明 |
|
— |
| Scan Drift 均值 |
scan_drift_avg_ms |
<80ms(PASS) |
|
☐ |
| 任务失败率 |
tasks_failed/tasks_executed |
<0.1%(PASS) |
|
☐ |
| Miss Deadline |
scan_miss_deadline_total |
稳态 =0 |
|
☐ |
| 恢复时间 |
场景 S2–S6 各次 |
S2≤60s;S3≤120s;超 2× 为 BLOCK |
|
☐ |
| CB Open 次数 |
driver_circuit_open_total |
可解释、可恢复 |
|
☐ |
| Heap drift |
60s / 1h / 长跑窗口 |
<8%(PASS) |
|
☐ |
| GC pause max |
gc_pause_max_ms |
<30ms(PASS) |
|
☐ |
| Goroutine 数量趋势 |
runtime.NumGoroutine 采样 |
无持续增长 |
|
☐ |
4.2 分场景指标(可选附表)
| 场景 |
Lag P95 |
Lag P99 |
失败率 |
恢复时间 |
CB 行为摘要 |
| S1 长跑 |
|
|
|
— |
|
| S2 断网恢复 |
|
|
|
|
|
| S3 设备重启 |
|
|
|
|
|
| S4 网络抖动 |
|
|
|
|
|
| S5 超时 |
|
|
|
|
|
| S6 高丢包 |
|
|
|
|
|
4.3 diagnostics 采样命令(示例)
# ScanEngine SLA 快照
curl -s http://<host>:8082/api/diagnostics/scan-engine | jq '{
lag_p95: .scan_lag_p95_ms,
drift: .scan_drift_avg_ms,
miss: .scan_miss_deadline_total,
cb_open: .driver_circuit_open_total,
warnings: .sla_warnings
}'
# Goroutine / 内存(长跑期间定期执行)
curl -s http://<host>:8082/api/diagnostics/scan-engine | jq '{goroutines: .goroutine_count, heap: .heap_inuse_bytes}'
5. 问题与偏差
| ID |
场景 |
现象 |
根因(初判) |
是否阻塞发布 |
跟踪项 |
| |
|
|
|
☐ 是 ☐ 否 |
|
6. G-Industrial 门禁判定
对照 RELEASE_GATE — G-Industrial 发布判定标准:
6.1 检查项
| 检查项 |
标准 |
本报告结论 |
| 协议覆盖 |
本协议联机/仿真验证完整;长跑时长符合协议分级(24h/72h) |
☐ 满足 ☐ 不满足 |
| 异常场景 |
S2–S6 全部通过(单项 FAIL → 本协议 BLOCK) |
☐ 满足 ☐ 不满足 |
| 长时联机 |
S1 达到协议要求时长且稳态指标达标 |
☐ 满足 ☐ 不满足 |
| 量化指标 |
§4 硬指标无 BLOCK 项(Lag P95、失败率、miss deadline、恢复时间等) |
☐ 满足 ☐ 不满足 |
| 三件套 |
设计 + 代码 + 本报告 已归档 |
☐ 满足 ☐ 不满足 |
6.2 裁量级别
| 级别 |
触发条件(摘要) |
勾选 |
| PASS |
S1–S6 全过;§4 指标均为 PASS;无阻塞级偏差 |
☐ |
| WARN |
无 BLOCK;存在可解释偏差(如仅仿真、Lag WARN 档、单次恢复略超上限)且 §5 已跟踪 |
☐ |
| BLOCK |
任必测场景 FAIL;panic/死锁/跨设备污染;指标 BLOCK 档;CB 不可恢复 |
☐ |
本协议 G-Industrial 结论: ☐ PASS ☐ WARN(注明:________) ☐ BLOCK
§6.2 为 BLOCK 时,§7 不得选择「准予纳入 Release 工业验证范围」。
7. 总体结论
- 综合结论: ☐ 准予纳入 Release 工业验证范围 ☐ 需复测 ☐ 不予通过
- 版本发布矩阵对照: 见 RELEASE_GATE — 版本发布判定矩阵(G-Industrial 全部协议 PASS/WARN 签核 → 可纳入 Release)
- 与 Mock / 单测差异摘要:
- 发版前建议(如有):
8. 签核
| 角色 |
姓名 |
日期 |
签名 |
| 测试执行 |
|
|
|
| 开发负责人 |
|
|
|
| 产品 / 发布负责人 |
|
|
|
附录 — 相关文档
复制本模板为 docs/testing/<协议>_industrial_report_<日期>.md 填写后归档。