mcpField
T
testing-simulink-models

testing-simulink-models

github.com/matlab测试与质量1.3k107 次安装1 周前更新
代码仓库

关于 testing-simulink-models

面向工程师和 Agent 的 Simulink 模型测试技能,涵盖快速 Gherkin 检查和持久化、关联需求的测试,并提供覆盖率与执行流程。

主要功能

  1. 01快速 Gherkin 验证
  2. 02持久化 Simulink Test 用例
  3. 03关联需求编写测试
  4. 04决策覆盖率工作流
  5. 05测试执行审批流程

适用场景

  1. 01按预期行为检查缺陷修复
  2. 02为模型创建回归测试
  3. 03根据需求或规格编写测试
  4. 04测量决策覆盖率

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/matlab/simulink-agentic-toolkit --skill testing-simulink-models

安装后在 Claude Code 中输入/testing-simulink-models确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

manifest.yaml
assets/
test-config-template.md
test-structure-template.md
references/
assessment-format.md
gherkin-based-fast-testing.md
simulink-test-authoring.md
scripts/+vnv/+internal/+agentic/
test_create.p
test_edit.p
test_read.p
test_run.p
scripts/+vnv/+internal/+agentic/+common/+format/
formatError.p
formatMetadata.p
formatTestCase.p
formatTestFile.p
formatTestSuite.p
scripts/+vnv/+internal/+agentic/+common/+requirements/
linkRequirements.p
readRequirements.p
scripts/+vnv/+internal/+agentic/+helpers/
AssessmentBuilder.p
readResults.p
resolveComponent.p
sanitizeDescription.p
setParameterOverrides.p
setSimConfig.p
widenToHarnessOwner.p

详细介绍

测试 Simulink 模型

需要 Simulink Test 和 R2023a 或更高版本。基于需求的入口还需要 Requirements Toolbox。覆盖率工作流还需要 Simulink Coverage。如果无法使用 Simulink Test,请使用 simulating-simulink-models 并进行手动断言。

适用场景

  • 为 Simulink 模型或子系统编写通过/失败测试
  • 根据需求或验收标准验证预期行为
  • 创建回归测试,以发现未来可能出现的问题
  • 使用结构化断言复现并验证错误修复
  • 收集判定覆盖率指标
  • 根据关联需求或行为规范编写持久化测试

不适用场景

  • 构建或编辑模型结构 → 使用 building-simulink-models
  • 运行仿真以探索数据、执行扫描或进行自定义分析 → 使用 simulating-simulink-models
  • 查询或解析参数值 → 使用 model_query_params / model_resolve_params
  • 创建或编辑需求 → 使用 generate-requirement-drafts
  • 不编写测试而向模型信号注入故障 → 使用 inject-faults
  • FMEA、FHA、FTA 或其他安全分析文档 → 使用 manage-safety-analysis
  • 未安装 Simulink Test → 改用 simulating-simulink-models 并进行手动断言

测试方法

此技能提供两种测试方法。请根据任务上下文进行选择:

Gherkin(model_test)Simulink Test API(test_create 系列)
持久性临时 — 会话结束后丢弃测试框架持久 — .mldatx 文件保留在项目中
速度约 3 秒(草稿模式)约 60 秒(完整的 Simulink Test 基础设施)
可追溯性无完整的需求关联(通过 .slreqx)
使用场景错误修复、快速验证、Agent 循环认证、系统化测试、正式的 V&V;也可采用行为规范
是否需要审批否是 — 工程师在执行前审查测试计划
覆盖率coverage 参数('none' 或 'decision')通过 test_run 选项设置
工具箱Simulink TestSimulink Test(需求路径还需要 Requirements Toolbox)

→ 进行 Gherkin 测试,请阅读 references/gherkin-based-fast-testing.md → 使用 Simulink Test API 编写测试(基于需求/行为规范),请阅读 references/simulink-test-authoring.md

工作流 — Gherkin(快速验证)

  1. 了解组件: 对目标子系统使用 model_overview 和 model_read,以确定输入、输出和预期行为。
  2. 编写 .feature 文件: 按照 references/gherkin-based-fast-testing.md 中的语法编写 Gherkin 测试。从覆盖主要正常情况的一个场景开始。
  3. 运行前设置 StopTime 上限: 使用 model_query_params 检查模型的 StopTime。如果它是 inf(或未设置/为 auto),则必须向 model_test 传入有限的停止时间 — 无限仿真永远不会返回,并会导致 MATLAB 挂起。选择一个足以让行为稳定下来的有限值(阶跃响应为 2–30 秒)。
  4. 以草稿模式运行: 使用 draft_mode='true' 调用 model_test,以便快速迭代(约 3 秒)。修复语法或信号错误。
  5. 运行完整编译: 草稿测试通过后,使用 draft_mode='false' 重新运行,以针对实际编译后的模型进行验证(可发现类型/维度不匹配)。
  6. 扩展覆盖率: 为边界情况、故障条件和边界行为添加场景。使用 coverage='decision' 找出尚未测试的分支。

工作流 — Simulink Test API(持久)

  1. 了解组件: 对目标子系统使用 model_overview 和 model_read,以识别输入、输出和预期行为。
  2. 提出测试计划 → 等待批准: 说明要测试什么、测试范围以及原因。工程师批准前,不要调用 test_create。
  3. 创建测试用例: 使用适当的入口调用 test_create——仅针对组件/模型,或基于需求(RequirementID + ReqSetPath)。将 TestFile 设置为工作文件夹下的绝对路径(切勿只提供文件名——由于 project_path 指向技能的 scripts/ 目录,文件会被放到该目录中)。调用格式请参阅 references/simulink-test-authoring.md。
  4. 提出测试配置 → 等待批准: 说明每个测试用例的停止时间、仿真配置、信号日志记录、评估项和参数覆盖值。工程师批准前,不要调用 test_edit。始终通过 test_edit 设置有限的 StopTime——如果模型的 StopTime 为 inf(或未设置),测试运行将永远无法返回,导致 MATLAB 挂起。选择一个足以让行为稳定下来的有限值(阶跃响应为 2–30 秒)。
  5. 运行并报告: 调用 test_run,并提供包含评估详情的通过/失败摘要。后续步骤由工程师决定。

防护措施

始终执行
  • 编写测试前检查模型(model_overview / model_read)——否则测试可能针对错误的输入/输出
  • 报告失败时提供评估项名称、条件和信号摘要——缺少这些细节,用户无法诊断问题
  • 切勿使用 StopTime=inf 运行仿真或测试。 在调用任何 model_test / test_run 前检查 StopTime;如果为 inf 或未设置,先将其覆盖为有限值。无限仿真永远不会返回,会导致 MATLAB 会话挂起(在共享会话中,还会影响后续所有任务)。
切勿执行
  • 猜测通过/失败标准——如果不明确,请询问用户
  • 模型打开时更改 MATLAB 工作目录——这会破坏测试框架缓存

参考资料

  • references/gherkin-based-fast-testing.md — Gherkin 语法、草稿模式、覆盖率和 Simscape 约束
  • references/simulink-test-authoring.md — API 手册:设置、约束、test_create 入口格式、编辑/读取/运行函数签名
  • references/assessment-format.md — LoggedSignals 和 Assessments 结构体格式
  • assets/test-structure-template.md — 测试结构提案模板(基于需求的路径)
  • assets/test-config-template.md — 测试配置提案模板(基于需求的路径)

版权所有 2026 The MathWorks, Inc.


评论

支持 Markdown