Install
openclaw skills install @kokxi/industrial-testcase-generator面向工业自动化监控系统(PLC/SCADA/HMI 应用层)领域的标准化测试用例生成技能。 当用户提到以下内容时触发:工业测试、PLC、SCADA、HMI 人机界面、 Modbus/OPC UA/Profinet 协议、数据采集、变频器/伺服/传感器、 报警系统、冗余/热备、工业网络安全 IEC 62443、功能安全 IEC 61508、 工业设备测试、产线测试、设备监控、远程运维等需求的测试用例生成。 输入需求文档(Markdown/PDF/Word/Excel)或需求描述,输出按工业模块分组的、 带优先级着色与模块分隔行的结构化 Excel 测试用例文件。 不适用于:车载/机器人/视觉领域(请使用对应领域技能)、自动化测试脚本生成、测试执行。
openclaw skills install @kokxi/industrial-testcase-generator定位: 面向工业自动化监控系统(PLC/SCADA/HMI 应用层)领域,从需求输出标准化、可追溯、可直接导入用例管理平台的 Excel 测试用例。 独立性声明: 本技能为工业领域专用,不引用其他领域技能;模块前缀、质量属性、设计方法均为工业化定义。
在开始任何阶段之前,先判断输入规模:
| 输入 | 模式 | 执行策略 |
|---|---|---|
| 1 个文件 / 1 段需求描述 | 单文档模式 | 五阶段完整执行 |
| 2-3 个文件 | 小批量模式 | 逐个文档执行阶段二~三 |
| > 3 个文件 | 批量模式 | 见下方批量模式说明 |
输入:N个需求文档(N > 3)
│
▼
阶段一:一次性扫全部文档 → 生成全局工业模块图(含设备/变量/点位依赖)
│
▼
阶段二~三:逐个文档执行(每个文档重复以下循环)
┌──────────────────────────────────────┐
│ 文档i:阶段二(需求提取) │
│ → 阶段三(设计+生成用例) │
│ → 暂存本模块用例 │
└──────────────────────────────────────┘
│
▼
阶段四:合并全部文档结果 → Excel(按模块分组,分隔行)
关键约束(防止 token 稀释):
min(10, 可测需求数*2)由 AI 执行,无需脚本。
扫描文档,识别涉及的工业功能模块。以子系统/软件层级粒度划分(控制层/监控层),参考下方前缀表命名,并在文档出现新模块时补充到模块图中。每个模块记录:
| 模块 | 前缀 | 示例 |
|---|---|---|
| PLC 控制逻辑 | LOGIC | TC-LOGIC-001 |
| HMI 人机界面 | HMI | TC-HMI-001 |
| SCADA 监控 | SCADA | TC-SCADA-001 |
| 数据采集 DAQ | DAQ | TC-DAQ-001 |
| 通信/协议 | COMM | TC-COMM-001 |
| 报警/告警管理 | ALM | TC-ALM-001 |
| 设备管理 | DEV | TC-DEV-001 |
| 用户权限/安全 | AUTH | TC-AUTH-001 |
| 冗余/热备 | REDUN | TC-REDUN-001 |
| 历史数据/趋势 | HIST | TC-HIST-001 |
新模块出现时,按
模块名英文缩写(≤5位大写字母)规则自建前缀,保持全局唯一。
| 层级 | 定义 | 测试深度 |
|---|---|---|
| 核心层 | 无此模块产线不可运行(控制逻辑、报警、冗余) | 穷尽各种场景(≥7条) |
| 重要层 | 影响生产/运维效率(SCADA、通信) | 主流程+关键异常(≥5条) |
| 辅助层 | 锦上添花(报表美化、主题) | 仅主流程(≥3条) |
| 基础层 | 通用能力(日志、参数配置) | 基本功能验证(≥2条) |
安全相关(急停回路、安全联锁)与核心控制逻辑一律按核心层处理,且必须包含故障注入与降级用例。
{
"模块": [{
"名称": "PLC 控制逻辑", "层级": "核心层", "前缀": "LOGIC",
"核心功能": ["启停控制", "顺序控制"],
"关键变量/点位": ["M0.0 启动", "Q0.1 电机", "I0.2 急停"],
"状态流转": ["停止→运行→故障→复位→停止"],
"关联模块": ["HMI", "SCADA", "报警管理"],
"最少用例数": 8
}]
}
批量模式下,所有文档的模块合并到一个 phase1_modules.json,标注 源文件 字段。
由 AI 执行。
从文档中提取每条可验证的需求,不遗漏。工业需求常以「控制功能需求」「通信需求」「报警需求」「性能需求」「安全需求」形式出现,分类标记。同时提取每条需求引用的国标/行标/企标(如 GB/T 17626、GB/T 2423、GB/T 30976、行业标准、设备厂商企标编号),无引用时标注 [无标准引用]。
| 复杂度来源 | 识别信号(工业示例) |
|---|---|
| 输入空间 | 量程、报警阈值、参数范围、输入长度 |
| 状态组合 | 设备运行/停止/故障/维护/冗余切换状态 |
| 条件逻辑 | 联锁条件、报警判定、多条件控制 |
| 流程步骤 | 启停流程、工艺切换流程、程序下载流程 |
| 配置组合 | 设备型号/协议版本/通信参数组合 |
| 质量属性 | 触发条件(工业示例) |
|---|---|
| 功能 | 控制逻辑、画面、报表、报警行为 |
| 协议/一致性 | Modbus/OPC UA/Profinet 报文与规范一致性 |
| 通信 | 掉线重连、超时、丢包、多客户端并发 |
| 性能 | 扫描周期、响应时间、趋势刷新、吞吐 |
| 可靠性 | 7×24 运行、断电恢复、冗余切换、看门狗 |
| 安全性 | 急停、安全联锁、权限控制 |
| 网络安全 | 认证、加密、越权、端口安全 |
| 环境 | 高低温、粉尘、振动、EMI |
| 兼容性 | 设备品牌、协议版本、硬件型号 |
| 标准合规 | 需求引用国标/行标/企标或强制认证(EMC/安全/防爆) |
| 易用性 | HMI/组态画面:操作效率、误操作防护、信息可读性 |
| 可测性状态 | 定义 | 处理方式 |
|---|---|---|
| 可测 | 输入输出明确,结果可验证 | 正常生成用例 |
| 不可测 | 描述模糊(如"运行稳定") | 标记不可测,不生成用例 |
| 需澄清 | 缺少关键细节 | 做合理假设,标注[假设] |
{
"源文件": "01-报警需求.md",
"需求": [{
"编号": "REQ-ALM-001", "描述": "温度超过 80℃ 时触发高温报警并声光提示",
"模块": "报警/告警管理", "复杂度来源": ["输入空间", "条件逻辑"],
"质量属性": ["功能", "安全性"], "引用标准": ["[无标准引用]"], "可测性": "可测"
}]
}
需求未明示但按领域惯例隐含的关注点,默认覆盖或标注 [隐含项] 提示澄清,不得直接忽略:
| 需求类型 | 隐含关注点(需求未明示也须覆盖或澄清) |
|---|---|
| 报警系统 | 回差、并发风暴、确认/复位权限、记录持久化 |
| 通信断线 | 断线检测时间、重连补偿、反复断连 |
| 网络安全 | 越权阻断、审计日志、安全分级 |
| 冗余/热备 | 切换时间、数据一致性 |
每个模块必须严格按以下四层模板生成用例,不允许跳过任何一层。这是硬约束,不是建议。
┌─ 第一层:主流程(至少 1 条 P0)───────────────┐
│ 模块核心路径正向走通(如:启机→生产→停机) │
│ 步骤数: 4-5 步 │
└─────────────────────────────────────────────┘
┌─ 第二层:业务分层(至少 2 条 P1)──────────────┐
│ ├─ UI/交互元素 + 逻辑(画面按钮、弹窗、趋势) │
│ ├─ 点位/参数边界(0/空值/最小/最大/负值) │
│ └─ 元素/参数组合(报警×联锁、阈值×设备) │
│ 步骤数: 3-4 步 │
└─────────────────────────────────────────────┘
┌─ 第三层:黑盒方法(至少 3 种不同方法)──────────┐
│ 场景法 / 边界分析 / 等价类 / 判定表 / 状态迁移 / │
│ 故障注入 / 错误猜测(选3种以上,正反向都要) │
└─────────────────────────────────────────────┘
┌─ 第四层:探索性(每模块至少 2 条 P3,──────────┐
│ 占比为参考值(建议 10%~30%,不强制)) │
│ 极端数据 / 特殊操作 / 环境异常(断电、断线、复位)/ │
│ 数据一致性(画面 vs 实际点位)/ 隐式推测 │
│ 步骤数: 3 步 │
└─────────────────────────────────────────────┘
逐层检查,当前层不通过不进下一层:
| 层 | 完成标志 | 不通过怎么办 |
|---|---|---|
| 第一层 | ≥1 条 P0 主流程 | 写不出 → 需求理解不够 → 回头重读需求 |
| 第二层 | ≥2 条 P1(点位边界+组合) | 写不出 → 漏了交互/点位细节 → 重扫模块要素 |
| 第三层 | ≥3 种不同方法 | 写不出 → 对照复杂度来源表重新分析 |
| 第四层 | ≥2 条探索性(占比参考 10%~30%) | 写不出 → 错误猜测法想 2 个风险点 |
| 复杂度来源 | 推荐方法 | 覆盖目标 |
|---|---|---|
| 输入空间 | 边界分析 + 等价类划分 | 量程/阈值/参数边界、有效/无效值域 |
| 状态组合 | 状态迁移法 | 运行/停止/故障/维护/冗余切换,含非法转换 |
| 条件逻辑 | 判定表法 | 联锁组合、报警判定多条件 |
| 流程步骤 | 场景法 | 启停/工艺切换/程序下载流程 |
| 协议/通信 | 故障注入 + 场景法 | 断线/超时/丢包/错误报文/重连 |
| 可靠性 | 故障注入 + 场景法 | 断电恢复、冗余切换、长时间运行 |
| 配置组合 | Pairwise(参数≥6时) | 设备/协议/通信参数组合 |
每个模块至少使用 3 种不同设计方法;单文档所有用例至少覆盖 4 种方法。安全与核心控制模块必须包含故障注入方法。
异常测试覆盖以下六类,每个模块至少覆盖输入+流程+环境三类(安全模块还须覆盖安全/状态异常):
| 异常类别 | 说明 | 用例示例 |
|---|---|---|
| 输入异常 | 无效值、越界、空值、非法指令 | 参数越界 → 拒绝并提示 |
| 流程异常 | 流程中断、回退、重复触发 | 程序下载中断 → 保持原程序 |
| 环境异常 | 断电、断线、复位、传感器失效 | 通信断线 → 设备进入安全状态 |
| 权限异常 | 未授权、越权、口令错误 | 无权限操作员下发指令 → 拒绝 |
| 数据异常 | 无效寄存器值、历史数据缺失 | 读取不存在的寄存器 → 返回异常码 |
| 状态异常 | 非法状态转换、重复操作 | 运行中请求冗余切换 → 正常切换 |
| 优先级 | 分配规则 | 占比参考 |
|---|---|---|
| P0 | 核心层主流程 + 安全相关 + 阻塞性异常 | 10-20% |
| P1 | 核心层分支 + 重要层主流程 + 关键边界 | 30-40% |
| P2 | 核心层非关键 + 重要层异常 + 辅助层主流程 | 30-40% |
| P3 | 极端边界 + 低频场景 + 探索性测试 | 参考 10-30% |
按以下优先级生成具体值:
涉及真实点位/寄存器时使用测试专用假值,标注
[测试数据]前缀;寄存器地址、Tag 名给出具体值。
固定规范以 references/format-spec.md 为准(生成时必读,不得偏离)。字段速览:
用例编号 / 业务域模块 / 优先级 / 测试维度 / 用例类型 / 设计方法 / 测试场景 / 测试点 / 操作步骤(3-5步) / 测试数据 / 前置条件 / 需求来源 / 协议点位 / 测试环境 / 测试级别。
输出 JSON 结构见 format-spec.md 第 3 节。
模板 A:报警管理(报警类必套)
模板 B:通信断线(通信类必套)
模板 C:冗余切换(冗余类必套)
设计完成后,每个模块对照矩阵自查:核心层模块至少覆盖 7 个测试维度,重要层至少 5 个(功能/协议/通信/性能/可靠性/安全性/网络安全/环境/兼容性)。在输出 Excel 时按「模块 × 测试维度」核对覆盖,缺项补用例。
需求或模块涉及以下专项时,按专项测试生成用例(同样遵循四层深度硬约束;前置条件必须标注专项设备/环境,如 EMC 暗室、环境箱、老化机架):
| 专项测试 | 触发条件 | 用例要点 |
|---|---|---|
| EMC 专项 | 涉及抗扰/发射(IEC 61000-4 系列) | ESD、浪涌、电快速瞬变、电压暂降、工频磁场 |
| 环境专项 | 涉及温湿度/振动/IP 等级 | 高低温、湿热、振动、盐雾、IP 防护实测 |
| 功能安全 | 涉及安全回路/SIL(IEC 61508 / 62061) | 安全 PLC、安全继电器、故障安全、安全回路验证 |
| 网络安全 | 涉及 SCADA/远程运维(IEC 62443) | SL 等级、渗透测试、访问控制、审计日志 |
| 可靠性专项 | 7×24 运行/冗余系统 | 连续运行、断电恢复、冗余切换、看门狗、数据持久化 |
| 协议互操作 | 多品牌设备/协议版本 | 多品牌 PLC/HMI 互操作、协议版本兼容、总线一致性 |
| 实时性专项 | 涉及硬实时控制 | 扫描周期稳定性、抖动、RTOS 时序 |
| 耐久专项 | 机械/电气寿命 | 继电器动作次数、触屏寿命、存储介质寿命 |
| 防爆/认证 | 涉及防爆/认证要求 | Ex 防爆、CE/UL 认证项 |
| 数据质量 | 历史数据/采集链路 | 数据完整性、NTP 时钟同步、断点续传采集 |
专项用例的「测试环境」列必须写明专项设备(EMC 暗室/环境箱/老化机架/认证实验室),不可写通用虚拟环境。
标准是验收依据,不是背景知识。 工业领域强标准监管(准入/认证),按以下规则生成合规用例:
引用标准;需求未注明时,按知识库「标准与规范体系」用领域默认标准兜底references/domain-knowledge.md「标准-试验项矩阵」逐项勾选试验项,每项至少 1 条合规用例(如 GB/T 17626 系列的 ESD/浪涌/EFT/电压暂降、GB/T 2423 的低温/高温/温变/湿热/盐雾/振动、IEC 62443 的分级控制项);覆盖统计 sheet 输出「标准 × 试验项 × 用例数」矩阵,试验项覆盖率 100% 为硬性验收线,缺项直接补用例测试级别(执行层级):每条用例的「测试级别」列按以下规则分配:
| 测试级别 | 定义 | 用例倾向 |
|---|---|---|
| 单元级 | 单控制器逻辑/单功能块 | 逻辑边界、异常 |
| 集成级 | 模块间交互、通信、接口 | 通信、时序、互操作 |
| 系统级 | 端到端流程、多系统联动 | 主流程、组合场景 |
| 验收级 | 指标验收、标准合规、专项 | 精度、EMC、环境、合规 |
执行层级映射:
| 执行层级 | 适用场景 | 用例倾向 |
|---|---|---|
| 虚拟PLC | 软件仿真 | 逻辑、报警、联锁 |
| 半实物 | 控制器+现场设备仿真 | 通信、I/O、故障注入 |
| 现场 | 产线实机 | 验收、互操作、环境 |
冒烟/回归快速用例优先落在虚拟PLC层级;精度/安全/合规类落在现场或实验室层级,报告中注明实际执行层级。
级别覆盖要求(硬性):
回归用例要求(硬性):
回归测试指引(阶段五配套):
输出规范以 references/format-spec.md 第 4 节为准(生成时必读)。要点:双 sheet(用例 15 列 + 覆盖统计)、优先级着色(P0红/P1橙/P2绿/P3灰)、模块分隔行 【模块名称】、操作步骤 chr(10) 换行。
阻断语义(硬性):以下检查任一项不通过 → 返回对应阶段修正,未全部通过不得交付;检查是生成时的门禁,不是事后说明。
高频遗漏核对(生成时逐项核对,勿跳过):
常规检查清单:
| 模块层级 | 最少用例数 | 覆盖内容 |
|---|---|---|
| 核心层 | 7 | P0(1主流程) + P1(2分层) + P2(2黑盒) + P3(2探索) |
| 重要层 | 5 | P1(1主流程) + P2(2分支) + P3(2异常) |
| 辅助层 | 3 | P2(1主流程) + P3(2基本异常) |
| 基础层 | 2 | P2(1正向) + P3(1反向) |
该数字是底线不是上限;安全与核心控制模块不受此限,按核心层从高处理。
| 文件 | 内容 | 何时阅读 |
|---|---|---|
references/domain-knowledge.md | 工业领域知识库(架构/协议/标准/测试类型/风险点/前置条件模板) | 每次生成前通读,重点看「协议要点」「风险点」「前置条件模板」 |
references/format-spec.md | 用例字段结构与 Excel 输出规范(固定格式) | 生成用例与输出 Excel 时必读 |
examples/ | 真实案例:requirements.md(需求输入)+ testcases.xlsx(输出 Excel) | 演示/验收参考,不影响生成 |
核心约束已内联到本文件。本技能不依赖其他领域技能文件。