Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

テスト ハーネスとモデルの関係

"テスト ハーネス" は、Simulink® モデルのテスト、編集、デバッグに使用できるモデルのブロック線図です。メイン モデルで、モデル コンポーネントまたは最上位モデルにハーネスを関連付けます。テスト ハーネスには、個別のモデル ワークスペースとコンフィギュレーション セットがあります。テスト ハーネスはメイン モデルに関連付けられ、モデル キャンバスからアクセスできます。

外部ハーネスを作成すると、メタデータ XML ファイルも作成されます。XML ファイルには設計モデルの固有 ID が格納されており、これによってモデルとそのハーネスの間の関連付けが維持されます。両方が MATLAB® パス上にある限り、メタデータ ファイルがモデルと同じフォルダーにある必要はありません。

テスト ハーネス モデルは、テスト対象のコンポーネントを中心に作成します。これにより、ハーネスがメイン モデルにリンクされます。ハーネスでテスト対象のコンポーネントを編集すると、ハーネスを閉じるときにメイン モデルが更新されます。テスト ハーネスを生成できる対象は次のとおりです。

  • サブシステム、ライブラリ ブロック、Subsystem Reference ブロック、Model ブロック、System Composer™ コンポーネントなどのモデル コンポーネント。テスト ハーネスにより、コンポーネントが個別のシミュレーション環境に分離されます。Subsystem ブロックまたは Subsystem Reference ブロックを Model ブロックに変換すると、テスト ハーネスがモデル参照に転送されます (テスト ハーネスの考慮事項を参照)。

  • 最上位モデル。テスト対象のコンポーネントは、メイン モデルを参照する Model ブロックです。サブシステム モデルでもテスト ハーネスを作成できます。

Test harnesses for top-level model and model component

モデル コンポーネントのハーネスとモデルの関係

テスト ハーネスをモデル コンポーネントに関連付けると、コンポーネントに関連付けられているパラメーターのコピーがハーネス モデルのワークスペースに格納されます。たとえば、Gain ブロックを含むコンポーネントのテスト ハーネスを作成してから、ハーネスに 2 つ目の Gain ブロックを追加するとします。

  • パラメーター g はテスト対象のコンポーネントの部分を定義しているため、ハーネス モデルのワークスペースに g のコピーが格納されます。

  • パラメーター a はテスト対象のコンポーネントの外にあるメイン モデルの部分を定義しているため、ハーネス モデルのワークスペースに a のコピーは格納されません。

  • パラメーター h は、ハーネスに追加した Gain ブロックのゲインです。このブロックはテスト対象のコンポーネントの外にあるため、h はハーネス モデルのワークスペースにのみ存在します。

Model component and test harness relationship

最上位モデルのハーネスとモデルの関係

ハーネスをメイン モデルの最上位に関連付ける場合、ハーネス モデルのワークスペースにコンポーネントに関連するパラメーターのコピーは格納されません。テスト対象のコンポーネントはメイン モデルを参照する Model ブロックであるため、パラメーターはメイン モデルのワークスペースに残ります。たとえば、Gain ブロックを含む最上位モデルのテスト ハーネスを作成してから、ハーネスに 2 つ目の Gain ブロックを追加するとします。

  • テスト対象のコンポーネントはメイン モデルを参照しており、パラメーター g はメイン モデルのワークスペースに存在します。ハーネス モデルのワークスペースに g のコピーは格納されません。

  • パラメーター h は、ハーネスに追加した Gain ブロックのゲインです。このブロックはテスト対象のコンポーネントの外にあるため、h はハーネス モデルのワークスペースにのみ存在します。

Top level model and test harness relationship

パラメーターの関連付け

テスト ハーネスのパラメーターは、最も局所的なワークスペースに関連付けられます。ハーネス モデルのワークスペース、システム モデルのワークスペース、ベース MATLAB ワークスペースの順に、パラメーターが関連付けられます。

テスト ハーネスの考慮事項

  • テスト ハーネスは、次のタイプのモデル コンポーネントについて作成できます。

    • Model ブロック

    • Subsystem Reference ブロック

    • Subsystem ブロック

    • 関数インターフェイスをもち、ライブラリの最上位にある、再利用可能なライブラリ サブシステム

    • Stateflow® ブロック (Stateflow チャート、Truth Table ブロック、State Transition Table ブロック、Test Sequence ブロックなど)

    • System Composer コンポーネント

    • C Caller ブロック

    • MATLAB Function ブロック

    • ユーザー定義関数ブロック

  • 次のタイプの Stateflow オブジェクトについては、テスト ハーネスはサポートされません。

    • Subsystem Reference ブロック内の任意のコンポーネント

    • Atomic サブチャート

    • Simulink ベースのステート

    • Simulink 関数

    • MATLAB 関数

  • テスト ハーネスは、Simulink モデルごとに一度に 1 つだけ開きます。

  • テスト ハーネスでテスト対象のコンポーネントをコメントアウトしないでください。テスト対象のコンポーネントをコメントアウトすると、予期しない動作の原因になることがあります。

  • モデルおよびテスト ハーネスのロックは同期のタイプごとに固有です。同期の詳細については、Synchronization Modeを参照してください。

  • テスト対象のコンポーネントで使用されている信号名がモデルからテスト ハーネスに伝播されます。サブシステムのハーネスでは、伝播された一部の信号名がハーネスのコンパイル後でないと表示されないことがあります。ブロック線図のハーネスでは、[信号プロパティ] ダイアログ ボックスで [伝播信号の表示] を選択していない場合でも信号名が伝播されます。

  • Subsystem ブロックと Subsystem Reference ブロック

    • サブシステム モデルに付加されたテスト ハーネスでは次のようになります。

      • 基となるモデルと常に同期される

      • コンパイルせずに作成される

      • ポストビルド コールバックはサポートされない

      • 入力が自動整形されない

    • サブシステムにテスト ハーネスがある場合、そのサブシステムを含むモデルにサブシステムの内容を展開することはできません。テスト ハーネスを削除してからサブシステムを展開してください。詳細については、サブシステムの内容の展開を参照してください。

    • Subsystem Reference ブロックでは、ブロックのパラメーターは同期されますが、ブロックの内容は同期されません。

    • Subsystem ブロックまたは Subsystem Reference ブロックを Model ブロックに変換すると、モデル参照にテスト ハーネスが転送されます。Subsystem ブロックのハーネスは、ブロック線図のハーネスに変換されます。サブシステム内の入れ子になったハーネスは、モデル参照内の同一のブロックにコピーされます。転送されたハーネスは、モデル参照内ではいずれも内部ハーネスになります。テスト ハーネスは、転送されると名前が変わることがあります。変換アドバイザーの [変換を完了] ペインまたは MATLAB コマンド ラインで、ハーネスの転送に関するフィードバックを参照できます。

      Subsystem ブロックまたは Subsystem Reference ブロックを Model ブロックに変換する際は、次の制限が適用されます。

      • SIL および PIL のハーネスは転送されません。

      • サブシステムのテスト ハーネスに含まれる要件は転送されません。それらは手動でコピーする必要があります。

  • テスト ハーネスに To Workspace ブロックが含まれている場合、テストの実行の完了後にベース ワークスペースにブロック変数は保存されません。テストが完了した時点で、ベース ワークスペースは元の状態に復元されます。

  • テスト ハーネス モデルについては、アップグレード アドバイザーおよび XML の差分はサポートされません。

  • Signal Editor ブロックをソースとするテスト ハーネスでは、以下はサポートされません。

    • フレームベースの信号

    • 可変次元の信号

  • Test Sequence ブロックまたは Stateflow チャートをソースとするテスト ハーネスでは、テスト対象のコンポーネントへのすべての入力が同じサンプル時間で動作しなければなりません。

  • テスト ハーネスでのカバレッジの収集には、次の考慮事項が適用されます。

    • モデルにカバレッジ結果を読み込んだり、モデル間でカバレッジ結果を集計したりするには、モデルがカバレッジ結果と一貫している必要があります。そのため、カバレッジ収集の集計を実行するには、テスト対象のコンポーネントを自動的に同期するように構成されたテスト ハーネスを使用します。[同期モード][ハーネスの開閉時に同期] に設定します。詳細については、Synchronize Changes Between Test Harness and Modelを参照してください。

    • テスト対象のコンポーネントをハーネスの開閉時に同期するようにテスト ハーネスが構成されている場合、テスト ハーネスからのカバレッジ結果がメイン モデルに関連付けられます。テスト ハーネスを閉じると、カバレッジ結果はメモリにアクティブなまま残ります。メイン モデルや別の同期されたテスト ハーネスから収集した追加の結果とカバレッジを集計できます。

    • テスト対象のコンポーネントを手動でのプッシュ時とリビルド時にのみ同期するようにテスト ハーネスが構成されている場合、カバレッジ結果はテスト ハーネスに関連付けられます。

      • テスト ハーネスを閉じると、カバレッジ結果はメモリから削除されます。

      • テスト対象のコンポーネントの設計がテスト ハーネスとメイン モデルで異なる場合、カバレッジ結果を集計することはできません。

      • テスト対象のコンポーネントの設計に違いがなければカバレッジ結果をメイン モデルを使って集計できますが、カバレッジ結果をメイン モデルに手動で読み込む必要があります。関数 cvload (Simulink Coverage) を参照してください。

    カバレッジの詳細については、Collect Coverage in Testsを参照してください。

参考

|

関連するトピック