360 Secure SkillHub
360 安全技能中心

industrial-testcase-generator

核心功能:针对PLC/SCADA/HMI等工业场景,按模块分层生成合规、可追溯的测试用例,覆盖标准合规、回归测试等要求。典型场景:工业设备/产线测试、报警/冗余系统测试等。支持多模式需求输入,输出带优先级着色、按模块分组的结构化Excel文件,不适用于非工业自动化领域。

kokxi
kokxi
热度 16.63
最近更新 2026-09-01 10:01:49
分类:效率依赖:代码执行 / 读写文件 / 内部调用大模型应用场景:数据处理 / 报告撰写 / 模板

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add industrial-testcase-generator
Metadata
name
industrial-testcase-generator
license
Apache-2.0
metadata
{"slug":"industrial-testcase-generator","displayName":"工业测试用例生成器","version":"V1.2.0","author":"Kokxi","tags":"testing,industrial,test-case,plc,scada","openclaw":{"requires":{"bins":["python3"]}}}
compatibility
需要 Python 3 与 openpyxl 生成 Excel 输出
description
面向工业自动化监控系统(PLC/SCADA/HMI 应用层)领域的标准化测试用例生成技能。 当用户提到以下内容时触发:工业测试、PLC、SCADA、HMI 人机界面、 Modbus/OPC UA/Profinet 协议、数据采集、变频器/伺服/传感器、 报警系统、冗余/热备、工业网络安全 IEC 62443、功能安全 IEC 61508、 工业设备测试、产线测试、设备监控、远程运维等需求的测试用例生成。 输入需求文档(Markdown/PDF/Word/Excel)或需求描述,输出按工业模块分组的、 带优先级着色与模块分隔行的结构化 Excel 测试用例文件。 不适用于:车载/机器人/视觉领域(请使用对应领域技能)、自动化测试脚本生成、测试执行。

工业测试用例生成器(Industrial Test Case Generator)

定位: 面向工业自动化监控系统(PLC/SCADA/HMI 应用层)领域,从需求输出标准化、可追溯、可直接导入用例管理平台的 Excel 测试用例。 独立性声明: 本技能为工业领域专用,不引用其他领域技能;模块前缀、质量属性、设计方法均为工业化定义。


第一步:判断输入模式

在开始任何阶段之前,先判断输入规模:

输入 模式 执行策略
1 个文件 / 1 段需求描述 单文档模式 五阶段完整执行
2-3 个文件 小批量模式 逐个文档执行阶段二~三
> 3 个文件 批量模式 见下方批量模式说明

批量模式执行策略

输入:N个需求文档(N > 3)
         │
         ▼
阶段一:一次性扫全部文档 → 生成全局工业模块图(含设备/变量/点位依赖)
         │
         ▼
阶段二~三:逐个文档执行(每个文档重复以下循环)
  ┌──────────────────────────────────────┐
  │  文档i:阶段二(需求提取)           │
  │       → 阶段三(设计+生成用例)       │
  │       → 暂存本模块用例               │
  └──────────────────────────────────────┘
         │
         ▼
阶段四:合并全部文档结果 → Excel(按模块分组,分隔行)

关键约束(防止 token 稀释):

  • 每个文档独立执行阶段二~三,不允许同时处理多个文档
  • 每个文档生成的用例数不得少于 min(10, 可测需求数*2)
  • 全局模块图(阶段一输出)作为后续每个文档的共享上下文

阶段一:工业模块识别与分层

由 AI 执行,无需脚本。

1.1 模块识别

扫描文档,识别涉及的工业功能模块。以子系统/软件层级粒度划分(控制层/监控层),参考下方前缀表命名,并在文档出现新模块时补充到模块图中。每个模块记录:

  • 模块名称 — 如「PLC 控制逻辑」「SCADA 监控」「报警管理」
  • 核心功能 — 该模块承担的功能清单
  • 关键变量/点位 — 寄存器地址、变量名、Tag、I/O 点位
  • 状态流转 — 运行/停止/故障/维护/冗余切换
  • 模块间交互 — 与其他模块的数据流/指令依赖

1.2 工业模块前缀表(编号规则)

模块 前缀 示例
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位大写字母) 规则自建前缀,保持全局唯一。

1.3 业务分层与最少用例数

层级 定义 测试深度
核心层 无此模块产线不可运行(控制逻辑、报警、冗余) 穷尽各种场景(≥7条)
重要层 影响生产/运维效率(SCADA、通信) 主流程+关键异常(≥5条)
辅助层 锦上添花(报表美化、主题) 仅主流程(≥3条)
基础层 通用能力(日志、参数配置) 基本功能验证(≥2条)

安全相关(急停回路、安全联锁)与核心控制逻辑一律按核心层处理,且必须包含故障注入与降级用例。

1.4 输出格式

{
  "模块": [{
    "名称": "PLC 控制逻辑", "层级": "核心层", "前缀": "LOGIC",
    "核心功能": ["启停控制", "顺序控制"],
    "关键变量/点位": ["M0.0 启动", "Q0.1 电机", "I0.2 急停"],
    "状态流转": ["停止→运行→故障→复位→停止"],
    "关联模块": ["HMI", "SCADA", "报警管理"],
    "最少用例数": 8
  }]
}

批量模式下,所有文档的模块合并到一个 phase1_modules.json,标注 源文件 字段。


阶段二:需求提取与分类

由 AI 执行。

2.1 需求提取

从文档中提取每条可验证的需求,不遗漏。工业需求常以「控制功能需求」「通信需求」「报警需求」「性能需求」「安全需求」形式出现,分类标记。同时提取每条需求引用的国标/行标/企标(如 GB/T 17626、GB/T 2423、GB/T 30976、行业标准、设备厂商企标编号),无引用时标注 [无标准引用]。

2.2 复杂度来源分类

复杂度来源 识别信号(工业示例)
输入空间 量程、报警阈值、参数范围、输入长度
状态组合 设备运行/停止/故障/维护/冗余切换状态
条件逻辑 联锁条件、报警判定、多条件控制
流程步骤 启停流程、工艺切换流程、程序下载流程
配置组合 设备型号/协议版本/通信参数组合

2.3 工业质量属性标记

质量属性 触发条件(工业示例)
功能 控制逻辑、画面、报表、报警行为
协议/一致性 Modbus/OPC UA/Profinet 报文与规范一致性
通信 掉线重连、超时、丢包、多客户端并发
性能 扫描周期、响应时间、趋势刷新、吞吐
可靠性 7×24 运行、断电恢复、冗余切换、看门狗
安全性 急停、安全联锁、权限控制
网络安全 认证、加密、越权、端口安全
环境 高低温、粉尘、振动、EMI
兼容性 设备品牌、协议版本、硬件型号
标准合规 需求引用国标/行标/企标或强制认证(EMC/安全/防爆)
易用性 HMI/组态画面:操作效率、误操作防护、信息可读性

2.4 需求可测性检查

可测性状态 定义 处理方式
可测 输入输出明确,结果可验证 正常生成用例
不可测 描述模糊(如"运行稳定") 标记不可测,不生成用例
需澄清 缺少关键细节 做合理假设,标注[假设]

2.5 输出格式

{
  "源文件": "01-报警需求.md",
  "需求": [{
    "编号": "REQ-ALM-001", "描述": "温度超过 80℃ 时触发高温报警并声光提示",
    "模块": "报警/告警管理", "复杂度来源": ["输入空间", "条件逻辑"],
    "质量属性": ["功能", "安全性"], "引用标准": ["[无标准引用]"], "可测性": "可测"
  }]
}

2.6 需求完备性提示(隐含关注点)

需求未明示但按领域惯例隐含的关注点,默认覆盖或标注 [隐含项] 提示澄清,不得直接忽略:

需求类型 隐含关注点(需求未明示也须覆盖或澄清)
报警系统 回差、并发风暴、确认/复位权限、记录持久化
通信断线 断线检测时间、重连补偿、反复断连
网络安全 越权阻断、审计日志、安全分级
冗余/热备 切换时间、数据一致性

阶段三:测试设计 + 用例生成

3.0 四层深度硬约束模板

每个模块必须严格按以下四层模板生成用例,不允许跳过任何一层。这是硬约束,不是建议。

┌─ 第一层:主流程(至少 1 条 P0)───────────────┐
│  模块核心路径正向走通(如:启机→生产→停机)      │
│  步骤数: 4-5 步                                 │
└─────────────────────────────────────────────┘

┌─ 第二层:业务分层(至少 2 条 P1)──────────────┐
│  ├─ UI/交互元素 + 逻辑(画面按钮、弹窗、趋势)   │
│  ├─ 点位/参数边界(0/空值/最小/最大/负值)       │
│  └─ 元素/参数组合(报警×联锁、阈值×设备)        │
│  步骤数: 3-4 步                                 │
└─────────────────────────────────────────────┘

┌─ 第三层:黑盒方法(至少 3 种不同方法)──────────┐
│  场景法 / 边界分析 / 等价类 / 判定表 / 状态迁移 /  │
│  故障注入 / 错误猜测(选3种以上,正反向都要)       │
└─────────────────────────────────────────────┘

┌─ 第四层:探索性(每模块至少 2 条 P3,──────────┐
│  占比为参考值(建议 10%~30%,不强制))                       │
│  极端数据 / 特殊操作 / 环境异常(断电、断线、复位)/ │
│  数据一致性(画面 vs 实际点位)/ 隐式推测          │
│  步骤数: 3 步                                   │
└─────────────────────────────────────────────┘

3.1 每层完成检查

逐层检查,当前层不通过不进下一层:

层 完成标志 不通过怎么办
第一层 ≥1 条 P0 主流程 写不出 → 需求理解不够 → 回头重读需求
第二层 ≥2 条 P1(点位边界+组合) 写不出 → 漏了交互/点位细节 → 重扫模块要素
第三层 ≥3 种不同方法 写不出 → 对照复杂度来源表重新分析
第四层 ≥2 条探索性(占比参考 10%~30%) 写不出 → 错误猜测法想 2 个风险点

3.2 工业设计方法选择矩阵

复杂度来源 推荐方法 覆盖目标
输入空间 边界分析 + 等价类划分 量程/阈值/参数边界、有效/无效值域
状态组合 状态迁移法 运行/停止/故障/维护/冗余切换,含非法转换
条件逻辑 判定表法 联锁组合、报警判定多条件
流程步骤 场景法 启停/工艺切换/程序下载流程
协议/通信 故障注入 + 场景法 断线/超时/丢包/错误报文/重连
可靠性 故障注入 + 场景法 断电恢复、冗余切换、长时间运行
配置组合 Pairwise(参数≥6时) 设备/协议/通信参数组合

3.3 方法数量约束

每个模块至少使用 3 种不同设计方法;单文档所有用例至少覆盖 4 种方法。安全与核心控制模块必须包含故障注入方法。

3.4 工业异常场景分类

异常测试覆盖以下六类,每个模块至少覆盖输入+流程+环境三类(安全模块还须覆盖安全/状态异常):

异常类别 说明 用例示例
输入异常 无效值、越界、空值、非法指令 参数越界 → 拒绝并提示
流程异常 流程中断、回退、重复触发 程序下载中断 → 保持原程序
环境异常 断电、断线、复位、传感器失效 通信断线 → 设备进入安全状态
权限异常 未授权、越权、口令错误 无权限操作员下发指令 → 拒绝
数据异常 无效寄存器值、历史数据缺失 读取不存在的寄存器 → 返回异常码
状态异常 非法状态转换、重复操作 运行中请求冗余切换 → 正常切换

3.5 优先级分配

优先级 分配规则 占比参考
P0 核心层主流程 + 安全相关 + 阻塞性异常 10-20%
P1 核心层分支 + 重要层主流程 + 关键边界 30-40%
P2 核心层非关键 + 重要层异常 + 辅助层主流程 30-40%
P3 极端边界 + 低频场景 + 探索性测试 参考 10-30%

3.6 测试数据生成规则

按以下优先级生成具体值:

  1. 边界值数据 — 温度 0/80/100℃、压力 0/上限、量程上下限、阈值 ±1 单位
  2. 有效等价类数据 — 典型工况参数(如温度 60℃、压力 0.5MPa)
  3. 无效等价类数据 — 每个违规类型各一条(越界、负值、超长字符串)
  4. 特殊值数据 — 空值、0、-1、0xFFFF、NaN、重复指令

涉及真实点位/寄存器时使用测试专用假值,标注 [测试数据] 前缀;寄存器地址、Tag 名给出具体值。

3.7 用例字段结构与输出格式

固定规范以 references/format-spec.md 为准(生成时必读,不得偏离)。字段速览: 用例编号 / 业务域模块 / 优先级 / 测试维度 / 用例类型 / 设计方法 / 测试场景 / 测试点 / 操作步骤(3-5步) / 测试数据 / 前置条件 / 需求来源 / 协议点位 / 测试环境 / 测试级别。 输出 JSON 结构见 format-spec.md 第 3 节。

3.9 工业领域设计模板(遇到对应功能直接套用)

模板 A:报警管理(报警类必套)

  1. 阈值边界:低于阈值不触发 → 等于阈值触发 → 恢复阈值(含回差)→ 再次触发
  2. 确认/复位:操作员权限确认、确认后状态(已确认/已恢复)、复位条件
  3. 记录与查询:报警时间戳、等级、设备点位、保存期限(如 90 天)、按条件查询
  4. 并发/风暴:≥50 条并发按等级优先显示,不丢失、不阻塞正常功能

模板 B:通信断线(通信类必套)

  1. 断线检测:断线后规定时间内(如 2s)上报断线报警
  2. 断线期间:画面显示最后有效值/质量位异常,写操作被禁止或提示
  3. 重连:恢复后自动重连,数据补偿或状态同步
  4. 反复断连:短时间频繁断连不造成崩溃、无累积错误

模板 C:冗余切换(冗余类必套)

  1. 触发切换:主控制器故障/断电 → 自动切换备机
  2. 切换时间:切换完成时间 ≤ 需求值(如 100ms),期间无数据丢失
  3. 数据连续性:切换后变量值、报警、历史数据连续一致
  4. 恢复:主控制器恢复后自动同步,回切策略验证

3.10 模块-维度覆盖矩阵(深化约束)

设计完成后,每个模块对照矩阵自查:核心层模块至少覆盖 7 个测试维度,重要层至少 5 个(功能/协议/通信/性能/可靠性/安全性/网络安全/环境/兼容性)。在输出 Excel 时按「模块 × 测试维度」核对覆盖,缺项补用例。

3.11 工业专项测试(区别于常规功能/异常/边界测试)

需求或模块涉及以下专项时,按专项测试生成用例(同样遵循四层深度硬约束;前置条件必须标注专项设备/环境,如 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 暗室/环境箱/老化机架/认证实验室),不可写通用虚拟环境。

3.12 标准合规要求(国标/行标/企标)

标准是验收依据,不是背景知识。 工业领域强标准监管(准入/认证),按以下规则生成合规用例:

  1. 标准识别:阶段二已提取每条需求的 引用标准;需求未注明时,按知识库「标准与规范体系」用领域默认标准兜底
  2. 标准优先级:强制国标(GB)> 推荐国标(GB/T)> 行标(JB/T 等)> 企标(厂商/集成商规范);企标严于国标时以企标为验收线,冲突取更严值;强制认证(防爆/CE)不可豁免
  3. 合规用例生成:标准条款 → 验证方法 → 判定准则,逐条成例:
    • EMC 类:按 GB/T 17626(等同 IEC 61000-4)试验等级写前置条件与判定
    • 环境类:按 GB/T 2423 试验条件(温度/湿度/振动)写参数
    • 安全类:按 IEC 61508 / 62061 安全回路要求验证故障安全与 SIL
  4. 判定准则:用例「预期」必须引用标准限值(如 GB/T 17626.2-2018 ESD ±8kV 等级 B、GB/T 2423.1 低温 -40℃ 运行)
  5. 标准版本:注明标准号+年份(如 GB/T 17626.2-2018)
  6. 合规用例的「测试维度」标为「标准合规」,需求来源列同时关联需求编号与标准号
  7. 试验项级门禁(硬性):标准覆盖率按「试验项」统计而非需求统计——引用标准的需求,对照 references/domain-knowledge.md「标准-试验项矩阵」逐项勾选试验项,每项至少 1 条合规用例(如 GB/T 17626 系列的 ESD/浪涌/EFT/电压暂降、GB/T 2423 的低温/高温/温变/湿热/盐雾/振动、IEC 62443 的分级控制项);覆盖统计 sheet 输出「标准 × 试验项 × 用例数」矩阵,试验项覆盖率 100% 为硬性验收线,缺项直接补用例

3.13 测试级别分配与回归指引

测试级别(执行层级):每条用例的「测试级别」列按以下规则分配:

测试级别 定义 用例倾向
单元级 单控制器逻辑/单功能块 逻辑边界、异常
集成级 模块间交互、通信、接口 通信、时序、互操作
系统级 端到端流程、多系统联动 主流程、组合场景
验收级 指标验收、标准合规、专项 精度、EMC、环境、合规

执行层级映射:

执行层级 适用场景 用例倾向
虚拟PLC 软件仿真 逻辑、报警、联锁
半实物 控制器+现场设备仿真 通信、I/O、故障注入
现场 产线实机 验收、互操作、环境

冒烟/回归快速用例优先落在虚拟PLC层级;精度/安全/合规类落在现场或实验室层级,报告中注明实际执行层级。

级别覆盖要求(硬性):

  1. 每个模块用例至少覆盖 2 个测试级别(单元/集成/系统/验收)
  2. 整份交付物必须出现全部 4 个测试级别(单元/集成/系统/验收 各 ≥1 条)
  3. 执行层级与级别对应:逻辑/算法类用单元级,通信/协议用集成级,端到端用系统级(现场/半实物),合规/精度用验收级(专项设备)

回归用例要求(硬性):

  • 每个模块至少 1 条「用例类型 = 回归」的用例(P1/P2 为主),需求来源列关联原需求,作为回归集复用基础

回归测试指引(阶段五配套):

  1. 变更驱动筛选:按「模块 + 需求来源」过滤受影响用例作为回归集
  2. 冒烟集:每个核心层模块的 P0 主流程用例作为变更后快速验证集
  3. 回归复用:用例类型=回归 的用例优先复用;探索性用例不纳入常规回归
  4. 层级匹配:回归环境优先与产线一致(现场),成本不允许时用虚拟PLC/高保真仿真替代并在报告注明

阶段四:Excel 输出

输出规范以 references/format-spec.md 第 4 节为准(生成时必读)。要点:双 sheet(用例 15 列 + 覆盖统计)、优先级着色(P0红/P1橙/P2绿/P3灰)、模块分隔行 【模块名称】、操作步骤 chr(10) 换行。


阶段五:交付前最终检查

阻断语义(硬性):以下检查任一项不通过 → 返回对应阶段修正,未全部通过不得交付;检查是生成时的门禁,不是事后说明。

高频遗漏核对(生成时逐项核对,勿跳过):

  • 引用标准的需求已对照「标准-试验项矩阵」枚举全部试验项(缺项即补合规用例)
  • 每个模块「用例类型 = 回归」≥ 1 条(3.13 回归集基础)
  • 交付物覆盖全部 4 个测试级别(单元/集成/系统/验收 各 ≥1)
  • 每个模块设计方法 ≥ 3 种(3.3,可脚本统计)
  • 核心层维度 ≥ 7、重要层 ≥ 5(3.10)
  • 每个模块异常场景 ≥ 3 类(3.4)

常规检查清单:

  • 每个模块最外层结构 ≥ 设计方法 3 种
  • 每个模块覆盖异常场景 ≥ 3 类(安全/控制模块含故障注入)
  • 每条用例操作步骤 3-5 步
  • 测试数据提供具体值(温度/压力/寄存器值)
  • 每条用例可追溯到需求(需求来源列非空)
  • 通信/点位类用例填写「协议/点位」列
  • 无跨领域内容混入(本技能只出工业用例)
  • 引用标准的需求均有合规用例(标准覆盖率 100%,判定引用标准限值)
  • 回归集可用:核心层模块均有 P0 冒烟集,变更可按模块+需求来源筛选回归用例

单文档模式最少用例数参考

模块层级 最少用例数 覆盖内容
核心层 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) 演示/验收参考,不影响生成

核心约束已内联到本文件。本技能不依赖其他领域技能文件。