mcpField
T
testing-simulink-models

testing-simulink-models

github.com/matlabテスト・品質1.3k107 回インストール1 週間前に更新
リポジトリ

testing-simulink-models について

エンジニアやエージェント向けに、Simulink モデルのテスト作成手順を提供するスキルです。迅速な Gherkin 検証から、要件にリンクした永続テスト、カバレッジ確認まで扱います。

主な機能

  1. 01Gherkin による迅速な検証
  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 を手動アサーションと併用する

テストアプローチ

このスキルでは、2 つのテストアプローチを利用できます。タスクの状況に応じて選択してください。

Gherkin(model_test)Simulink Test API(test_create ファミリー)
永続性一時的 — セッション終了後にハーネスを破棄永続的 — .mldatx ファイルがプロジェクトに残る
速度約 3 秒(ドラフトモード)約 60 秒(Simulink Test の完全なインフラストラクチャー)
トレーサビリティなし.slreqx による完全な要件リンク
ユースケースバグ修正、迅速な検証、エージェントによる反復認証、体系的なテスト、形式的な 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 テストを作成します。まず、主要な正常ケースを網羅するシナリオを 1 つ作成します。
  3. 実行前に StopTime を制限する: model_query_params でモデルの StopTime を確認します。値が inf(または未設定/auto)の場合は、model_test に有限の停止時間を必ず指定してください。無限時間のシミュレーションは終了せず、MATLAB がハングします。動作が安定する有限値を選びます(ステップ応答の場合は 2~30 秒)。
  4. ドラフトモードで実行する: 迅速な反復(約 3 秒)のため、draft_mode='true' を指定して model_test を呼び出します。構文エラーや信号エラーを修正します。
  5. 完全なコンパイルを実行する: ドラフトが成功したら、draft_mode='false' で再実行し、実際にコンパイルされたモデルに対して検証します(型や次元の不一致を検出できます)。
  6. カバレッジを拡大する: エッジケース、フォルト条件、境界動作を対象とするシナリオを追加します。未テストの分岐を特定するには、coverage='decision' を使用します。

ワークフロー — Simulink Test API(永続)

  1. コンポーネントを把握する: 対象のサブシステムに対して model_overview と model_read を使用し、入力、出力、期待される動作を特定します。
  2. テスト計画を提案 → 承認を待つ: テストする内容、範囲、その理由を提示します。エンジニアが承認するまで test_create を呼び出さないでください。
  3. テストケースを作成する: 適切なエントリーポイント(コンポーネント/モデルのみ、または要件ベース(RequirementID + ReqSetPath))を指定して test_create を呼び出します。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 — テスト設定の提案テンプレート(要件ベースのパス)

Copyright 2026 The MathWorks, Inc.


コメント