testing-simulink-models について
エンジニアやエージェント向けに、Simulink モデルのテスト作成手順を提供するスキルです。迅速な Gherkin 検証から、要件にリンクした永続テスト、カバレッジ確認まで扱います。
主な機能
- 01Gherkin による迅速な検証
- 02永続的な Simulink Test ケース
- 03要件にリンクしたテスト作成
- 04ディシジョンカバレッジの手順
- 05テスト実行前の承認ゲート
活用シーン
- 01期待動作に照らしたバグ修正の確認
- 02モデルの回帰テスト作成
- 03要件や仕様からのテスト作成
- 04ディシジョンカバレッジの測定
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ matlab/ simulink-agentic-toolkit --skill testing-simulink-modelsインストール後、Claude Code で/testing-simulink-modelsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
manifest.yamlassets/test-config-template.mdtest-structure-template.mdreferences/assessment-format.mdgherkin-based-fast-testing.mdsimulink-test-authoring.mdscripts/+vnv/+internal/+agentic/test_create.ptest_edit.ptest_read.ptest_run.pscripts/+vnv/+internal/+agentic/+common/+format/formatError.pformatMetadata.pformatTestCase.pformatTestFile.pformatTestSuite.pscripts/+vnv/+internal/+agentic/+common/+requirements/linkRequirements.preadRequirements.pscripts/+vnv/+internal/+agentic/+helpers/AssessmentBuilder.preadResults.presolveComponent.psanitizeDescription.psetParameterOverrides.psetSimConfig.pwidenToHarnessOwner.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を手動アサーションと併用する
テストアプローチ
このスキルでは、2 つのテストアプローチを利用できます。タスクの状況に応じて選択してください。
Gherkin(model_test) | Simulink Test API(test_create ファミリー) | |
|---|---|---|
| 永続性 | 一時的 — セッション終了後にハーネスを破棄 | 永続的 — .mldatx ファイルがプロジェクトに残る |
| 速度 | 約 3 秒(ドラフトモード) | 約 60 秒(Simulink Test の完全なインフラストラクチャー) |
| トレーサビリティ | なし | .slreqx による完全な要件リンク |
| ユースケース | バグ修正、迅速な検証、エージェントによる反復 | 認証、体系的なテスト、形式的な V&V。動作仕様にも対応 |
| 承認の要否 | 不要 | 必要 — 実行前にエンジニアがテスト計画をレビュー |
| カバレッジ | coverage パラメーター('none' または 'decision') | test_run オプションで指定 |
| ツールボックス | Simulink Test | Simulink Test(要件ベースのパスには Requirements Toolbox も必要) |
→ Gherkin テストについては、references/gherkin-based-fast-testing.md を参照してください
→ Simulink Test API によるテスト作成(要件/動作仕様)については、references/simulink-test-authoring.md を参照してください
ワークフロー — Gherkin(迅速な検証)
- コンポーネントを把握する: 対象のサブシステムに対して
model_overviewとmodel_readを使用し、入力、出力、期待される動作を特定します。 .featureファイルを作成する:references/gherkin-based-fast-testing.mdの構文に従って Gherkin テストを作成します。まず、主要な正常ケースを網羅するシナリオを 1 つ作成します。- 実行前に StopTime を制限する:
model_query_paramsでモデルの StopTime を確認します。値がinf(または未設定/auto)の場合は、model_testに有限の停止時間を必ず指定してください。無限時間のシミュレーションは終了せず、MATLAB がハングします。動作が安定する有限値を選びます(ステップ応答の場合は 2~30 秒)。 - ドラフトモードで実行する: 迅速な反復(約 3 秒)のため、
draft_mode='true'を指定してmodel_testを呼び出します。構文エラーや信号エラーを修正します。 - 完全なコンパイルを実行する: ドラフトが成功したら、
draft_mode='false'で再実行し、実際にコンパイルされたモデルに対して検証します(型や次元の不一致を検出できます)。 - カバレッジを拡大する: エッジケース、フォルト条件、境界動作を対象とするシナリオを追加します。未テストの分岐を特定するには、
coverage='decision'を使用します。
ワークフロー — Simulink Test API(永続)
- コンポーネントを把握する: 対象のサブシステムに対して
model_overviewとmodel_readを使用し、入力、出力、期待される動作を特定します。 - テスト計画を提案 → 承認を待つ: テストする内容、範囲、その理由を提示します。エンジニアが承認するまで
test_createを呼び出さないでください。 - テストケースを作成する: 適切なエントリーポイント(コンポーネント/モデルのみ、または要件ベース(
RequirementID+ReqSetPath))を指定してtest_createを呼び出します。TestFileには、作業フォルダー内の絶対パスを指定してください(ファイル名だけを指定しないでください。project_pathであるスキルのscripts/ディレクトリに作成されます)。呼び出し形式についてはreferences/simulink-test-authoring.mdを参照してください。 - テスト設定を提案 → 承認を待つ: 各テストケースの停止時間、シミュレーション設定、信号の記録、評価、パラメーターのオーバーライドを提示します。エンジニアが承認するまで
test_editを呼び出さないでください。test_editでは必ず有限のStopTimeを設定してください。モデルの StopTime がinf(または未設定)の場合、テストの実行が戻らず、MATLAB がハングします。動作が落ち着くまでの有限値を選択してください(ステップ応答では 2~30 秒)。 - 実行して報告する:
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— テスト設定の提案テンプレート(要件ベースのパス)
Copyright 2026 The MathWorks, Inc.
コメント
Markdown 対応