360 Secure SkillHub
360 安全技能中心

vision-testcase-generator

核心功能:为机器视觉各模块生成标准化、可追溯的测试用例,覆盖主流程、边界、异常等场景,支持批量处理需求。典型场景:适用于缺陷检测、OCR识别、视觉定位等视觉功能的测试用例设计。输入为需求文档(多格式)或需求描述,输出按模块分组、带优先级着色的结构化Excel文件,含覆盖统计,可直接导入用例管理平台。不适用于车载等其他领域及自动化脚本生成。

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

安装技能

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

执行命令安装此 skill: npx secure-skills-cli add vision-testcase-generator
Metadata
name
vision-testcase-generator
license
Apache-2.0
metadata
{"slug":"vision-testcase-generator","displayName":"视觉测试用例生成器","version":"V1.1.0","author":"Kokxi","tags":"testing,vision,test-case,machine-vision","openclaw":{"requires":{"bins":["python3"]}}}
compatibility
需要 Python 3 与 openpyxl 生成 Excel 输出
description
面向机器视觉(图像处理/视觉检测)领域的标准化测试用例生成技能。 当用户提到以下内容时触发:视觉测试、机器视觉、缺陷检测、AOI、视觉定位、尺寸测量、 OCR/字符识别、读码(二维码/条码)、3D 视觉、工业相机/镜头/光源、图像算法、 Halcon/OpenCV/VisionPro、误检率/漏检率、识别精度、阈值、标定、视觉检测需求、 图像质量、相机参数等需求的测试用例生成。 输入需求文档(Markdown/PDF/Word/Excel)或需求描述,输出按视觉模块分组的、 带优先级着色与模块分隔行的结构化 Excel 测试用例文件。 不适用于:车载/机器人/工业领域(请使用对应领域技能)、自动化测试脚本生成、测试执行。

视觉测试用例生成器(Vision Test Case Generator)

定位: 面向机器视觉领域,从需求输出标准化、可追溯、可直接导入用例管理平台的 Excel 测试用例。 独立性声明: 本技能为视觉领域专用,不引用其他领域技能;模块前缀、质量属性、设计方法均为视觉化定义。


第一步:判断输入模式

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

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

批量模式执行策略

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

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

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

阶段一:视觉模块识别与分层

由 AI 执行,无需脚本。

1.1 模块识别

扫描文档,识别涉及的视觉功能模块。以功能/算法粒度划分,参考下方前缀表命名,并在文档出现新模块时补充到模块图中。每个模块记录:

  • 模块名称 — 如「缺陷检测」「尺寸测量」「OCR 识别」
  • 核心功能 — 该模块承担的功能清单
  • 关键参数/指标 — 阈值、精度指标、识别率、误检率
  • 状态流转 — 初始化→标定→采集→处理→输出/NG
  • 模块间交互 — 与其他模块的图像流/结果依赖

1.2 视觉模块前缀表(编号规则)

模块 前缀 示例
缺陷检测 DEF TC-DEF-001
视觉定位 LOC TC-LOC-001
尺寸测量 MEAS TC-MEAS-001
识别(分类/模板) RECG TC-RECG-001
OCR/字符识别 OCR TC-OCR-001
读码(二维码/条码) CODE TC-CODE-001
3D 视觉 V3D TC-V3D-001
相机标定 CALIB TC-CALIB-001
图像采集 ACQ TC-ACQ-001
光源控制 LIGHT TC-LIGHT-001
算法配置 CFG TC-CFG-001
性能/流水线 PRF TC-PRF-001

新模块出现时,按 模块名英文缩写(≤5位大写字母) 规则自建前缀,保持全局唯一。

1.3 业务分层与最少用例数

层级 定义 测试深度
核心层 无此模块视觉系统不可用(缺陷检测、测量、标定) 穷尽各种场景(≥7条)
重要层 影响良率/效率(定位、OCR、读码、3D) 主流程+关键异常(≥5条)
辅助层 锦上添花(报表、界面美化) 仅主流程(≥3条)
基础层 通用能力(参数配置、日志) 基本功能验证(≥2条)

核心算法模块(缺陷检测/测量)一律按核心层处理,且必须包含样本级鲁棒性用例(光照/角度/噪声)。

1.4 输出格式

{
  "模块": [{
    "名称": "缺陷检测", "层级": "核心层", "前缀": "DEF",
    "核心功能": ["表面划痕检测", "脏污检测"],
    "关键参数/指标": ["阈值 0.85", "漏检率 ≤ 0.1%", "误检率 ≤ 0.5%"],
    "状态流转": ["初始化→标定→采集→检测→输出OK/NG"],
    "关联模块": ["图像采集", "光源控制", "算法配置"],
    "最少用例数": 8
  }]
}

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


阶段二:需求提取与分类

由 AI 执行。

2.1 需求提取

从文档中提取每条可验证的需求,不遗漏。视觉需求常以「功能需求」「精度指标」「性能指标」「鲁棒性要求」形式出现,分类标记。同时提取每条需求引用的标准/规范(如 ISO 12233、甲方验收规范、企标编号);视觉领域专门国标较少,无引用时标注 [无标准引用]。

2.2 复杂度来源分类

复杂度来源 识别信号(视觉示例)
输入空间 图像尺寸、像素值范围、曝光/增益范围、参数阈值
状态组合 初始化/标定/采集/检测/输出状态切换
条件逻辑 多缺陷判定、多条件过滤、ROI 组合
流程步骤 标定流程、检测流程、上下料触发流程
配置组合 相机型号/光源/算法参数/产品型号组合

2.3 视觉质量属性标记

质量属性 触发条件(视觉示例)
功能 检测/定位/测量/识别行为
算法精度 准确率、误检率、漏检率、精度、重复性
鲁棒性 光照/角度/遮挡/模糊/噪声变化
性能 帧率、处理延迟、吞吐、并发
可靠性 长时间运行、断连重连、内存稳定
数据质量 样本覆盖、标注一致性、数据集划分
兼容性 相机型号、SDK 版本、操作系统、算法平台版本
配置 参数调整、标定、阈值设置
标准合规 需求引用国标/甲方验收规范/行业规范
易用性 操作界面:参数调整便捷、结果可读性、误操作防护

2.4 需求可测性检查

可测性状态 定义 处理方式
可测 指标明确(准确率/误检率/精度数值),结果可验证 正常生成用例
不可测 描述模糊(如"识别效果好") 标记不可测,不生成用例
需澄清 缺少关键细节(样本量、指标口径) 做合理假设,标注[假设]

2.5 输出格式

{
  "源文件": "01-缺陷检测需求.md",
  "需求": [{
    "编号": "REQ-DEF-001", "描述": "划痕缺陷漏检率 ≤ 0.1%,误检率 ≤ 0.5%",
    "模块": "缺陷检测", "复杂度来源": ["输入空间", "条件逻辑"],
    "质量属性": ["算法精度", "鲁棒性"], "引用标准": ["甲方验收规范 V2.1"], "可测性": "可测"
  }]
}

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

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

需求类型 隐含关注点(需求未明示也须覆盖或澄清)
缺陷检测 独立测试集、统计口径 TP/FP/FN/TN、重复性
鲁棒性 干扰矩阵、最坏组合场景
标定 标定精度、温漂、重复标定
性能 处理时间/吞吐、断线缓存不丢帧

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

3.0 四层深度硬约束模板

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

┌─ 第一层:主流程(至少 1 条 P0)───────────────┐
│  模块核心路径正向走通(如:标定→采集→检测→输出OK/NG)│
│  步骤数: 4-5 步                                 │
└─────────────────────────────────────────────┘

┌─ 第二层:业务分层(至少 2 条 P1)──────────────┐
│  ├─ UI/交互元素 + 逻辑(界面按钮、ROI 框选、弹窗)│
│  ├─ 参数/阈值边界(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/0.5/0.85/1.0、曝光 0/最小/最大、尺寸公差边界
  2. 有效等价类数据 — 典型样本(正常良品、典型缺陷、典型字符)
  3. 无效等价类数据 — 每个违规类型各一条(越界阈值、坏图、非法参数)
  4. 特殊值数据 — 空图像、全黑/全白、极小分辨率、超长文件名

图像样本须描述样本特征(如「含 3mm 划痕的背光图」),涉及真实产品图像时标注 [测试数据] 前缀。

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

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

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

模板 A:指标验收(核心算法类必套)

  1. 样本集:明确正负样本数量与构成(如划痕 3000 / 脏污 3000 / 良品 4000),独立测试集不参与调参
  2. 统计口径:逐张判定 TP/FP/FN/TN,计算漏检率 = FN/(TP+FN)、误检率 = FP/(TN+FP)
  3. 判定:与指标比对(漏检 ≤ 0.1%、误检 ≤ 0.5%),超差需定位(样本问题/阈值问题/算法问题)
  4. 重复性:同一批样本重复运行 3 次,结果一致

模板 B:鲁棒性矩阵(核心算法类必套)

  1. 干扰维度 × 指标逐格验证:光照(±20%/±30%)× 倾斜(±10°)× 遮挡 × 模糊 × 噪声 × 反光
  2. 每格给出预期(准确率不跌破阈值或功能不失效),超预期即失败
  3. 组合极端:最坏组合(低照度 + 强反光 + 倾斜)单独成例

模板 C:标定流程(定位/测量类必套)

  1. 标定板采集:不同位姿采集 ≥10 张(旋转/平移/倾斜)
  2. 角点提取 → 内参/外参计算 → 重投影误差验收(如 ≤ 0.1 像素)
  3. 标定结果应用:标定失败/标定文件损坏 → 禁止测量并提示
  4. 环境变化后重标定:镜头更换、相机移位后必须重新标定

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

设计完成后,每个模块对照矩阵自查:核心层模块至少覆盖 7 个测试维度,重要层至少 5 个(功能/算法精度/鲁棒性/性能/可靠性/数据质量/兼容性/配置)。在输出 Excel 时按「模块 × 测试维度」核对覆盖,缺项补用例。

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

需求或模块涉及以下专项时,按专项测试生成用例(同样遵循四层深度硬约束;前置条件必须标注专项设备/环境,如测试卡、标定板、光源控制器):

专项测试 触发条件 用例要点
标定专项 定位/测量类功能 相机标定(内参/畸变)、手眼标定、重投影误差 ≤0.1px、多相机标定
成像质量 涉及相机/图像质量 USAF 1951 分辨率卡、畸变、SNR、动态范围、坏点、色差
光源/打光 涉及光源系统 均匀性、频闪、亮度稳定性、偏振/同轴光效果
算法评测 核心算法功能 数据集设计(量/平衡/划分)、TP/FP/FN 指标、过拟合、对抗样本
鲁棒性专项 环境变化场景 光照/角度/遮挡/模糊/噪声/反光矩阵测试
性能专项 在线检测/高节拍 帧率、延迟 P95/P99、吞吐、并发、多相机同步
稳定性/老化 长时间运行 8h/24h/7×24 内存泄漏、精度漂移、断连重连
相机功能 相机选型/集成 触发精度、曝光/增益控制、自动曝光、温度漂移
兼容性 相机/SDK/平台组合 相机型号、SDK 版本、OS、算法平台组合
3D 视觉 3D 测量/重建 点云精度、深度噪声、平面拟合、体积误差

专项用例的「测试环境」列必须写明专项设备(测试卡/标定板/光源控制器/暗箱),不可写通用相机台。

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

标准是验收依据,不是背景知识。 视觉领域专门国标较少,验收以「企标/甲方验收规范」为主,按以下规则生成合规用例:

  1. 标准识别:阶段二已提取每条需求的 引用标准;视觉需求的关键指标(漏检率/误检率/精度/帧率)通常由甲方验收规范给出,缺省时标注 [假设] 并提示澄清
  2. 标准优先级:甲方验收规范/企标 > 国际图像质量标准(ISO 12233 等)> 通用国标(如 GB 4793.1 设备安全);甲方验收规范为主要验收线
  3. 合规用例生成:规范条款/指标 → 验证方法 → 判定准则,逐条成例:
    • 指标类:按验收规范的漏检率/误检率/精度限值写样本量与判定
    • 成像类:按 ISO 12233 分辨率测试卡验证成像质量
    • 设备类:按 GB 4793.1 验证设备电气安全
  4. 判定准则:用例「预期」必须引用规范限值(如漏检率 ≤ 0.1%、重投影误差 ≤ 0.1px)
  5. 标准版本:注明规范编号/版本(如甲方验收规范 V2.1)
  6. 合规用例的「测试维度」标为「标准合规」,需求来源列同时关联需求编号与规范号
  7. 试验项级门禁(硬性):标准覆盖率按「试验项」统计而非需求统计——引用标准的需求,对照 references/domain-knowledge.md「标准-试验项矩阵」逐项勾选试验项,每项至少 1 条合规用例(如 GB/T 42980 的功能/性能/环境试验项、ISO 12233 的分辨率/畸变/坏点、甲方验收规范的漏检/误检/精度项);覆盖统计 sheet 输出「标准 × 试验项 × 用例数」矩阵,试验项覆盖率 100% 为硬性验收线,缺项直接补用例

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

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

测试级别 定义 用例倾向
单元级 单算法/单模块逻辑 算法边界、异常
集成级 采集-处理-输出链路、接口 链路、时序、触发
系统级 端到端检测流程 主流程、组合场景
验收级 指标验收、标准合规、专项 指标、成像、鲁棒性、合规

执行层级映射:

执行层级 适用场景 用例倾向
数据集回放 录制样本集 算法、鲁棒性、指标
相机台 相机+光源+标定台 成像、标定、采集
现场 产线实机 验收、性能、稳定性

冒烟/回归快速用例优先落在数据集回放层级;成像/标定/验收类落在相机台或现场层级,报告中注明实际执行层级。

级别覆盖要求(硬性):

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

回归用例要求(硬性):

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

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

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

阶段四: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) 演示/验收参考,不影响生成

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