Main Content

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

テスト ハーネスの作成

テスト ハーネスは、テスト シナリオ用に構成された入力、出力、および検証ブロックと共にテスト対象のコンポーネントを分離するモデルです。モデル コンポーネントまたはモデル全体のテスト ハーネスを作成できます。テスト ハーネスにより、モデルまたはモデル コンポーネント用の独立したテスト環境が得られます。以下に例を示します。

  • サブシステムをモデルの残りの部分と分離してユニット テストを実行できます。

  • テスト ハーネスにプラント モデルを追加して、コントローラーの閉ループ テスト シナリオを作成できます。

  • Model Verification ブロックや Test Assessment ブロックをテスト ハーネスに配置して、メイン モデルには不要な検証ブロックを含めないようにすることができます。

テスト ケースにテスト ハーネスを割り当てるには、テスト マネージャーの [テスト対象システム] セクションで [テスト ハーネス] を選択します。

ハーネスはモデルと共に保存することも、外部ファイルに保存することもできます。モデルが変更管理下にある場合は、テスト ハーネスを外部ファイルに保存することを検討してください。ハーネスは、モデルの内部にある場合でも外部にある場合でも同じように機能します。詳細については、Manage Test HarnessesおよびSynchronize Changes Between Test Harness and Modelを参照してください。

ハーネスの作成

この例では、ハーネスをモデルから直接作成します。sltestCarRootInport モデルの shift_logic サブシステムをハーネスでテストします。

  1. matlab/examples/simulinktest/main フォルダーからモデル sltestCarRootInport を開きます。

  2. shift_logic サブシステムを右クリックします。コンテキスト メニューから [テスト ハーネス]['shift_logic' 用に作成] を選択します。

  3. [テスト ハーネスの作成] ダイアログ ボックスで、入力、出力、およびその他のオプションを指定します。

    1. Constant ブロックを使用して入力信号を提供します。[Sources および Sinks] で、ソースを Constant、シンクを Scope に設定します。

    2. その他のオプションは既定の選択のままにします。既定では次のようになります。

      • ハーネスがモデル ファイルと共に保存されます。

      • ハーネスを開いたときにモデルと同期され、モデルに対する変更に合わせてハーネスが更新されます。

  4. [OK] をクリックしてテスト ハーネスを作成します。

Test harness showing the throttle and speed inputs connected to a routing subsystem. The subsystem connects to the shift logic block, and the block connects to another routing subsystem, which then connects to the scope.

ハーネスの中央にあるのは shift_logic サブシステムのコピーです。shift_logic サブシステムはテスト対象のコンポーネントです。2 つの縦のサブシステムに信号の仕様と経路指定が含まれています。

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

ハーネスは関数 sltest.harness.create、関数 sltest.testmanager.createTestForComponent、または [モデル コンポーネントのテストの作成] ウィザードを使用して作成することもでき、同時に複数のハーネスを作成することもできます。このウィザードはテスト マネージャーで使用できます。ウィザードの詳細については、Generate Tests and Test Harnesses for a Model or Componentsを参照してください。

テスト ハーネスのアーキテクチャの詳細については、Test Harness Construction for Specific Model Elementsを参照してください。新しいハーネスを作成するときの既定のハーネスの設定をカスタマイズする方法の詳細については、Customize Test Harness Creation Default Property Valuesを参照してください。

テスト ハーネスのシミュレーション

Constant ブロックに値を割り当ててコンポーネントをテストします。

  1. speed ブロックの値を 50 に変更します。

  2. throttle ブロックの値を 30 に変更します。

  3. [シミュレーション] タブで [実行] をクリックしてハーネスをシミュレートします。

  4. スコープを開いて結果を参照します。シフト コントローラーでサード ギアが選択されています。

    Output showing very short amounts of time in first and second gear and a significant amount of time in third gear.

テスト マネージャーを使用したテスト

前のケースでは、テスト入力を Constant ブロックで提供しました。外部データ ファイルからテスト入力を使用することもできます。

  1. Inport ソースを使用するテスト ハーネスを作成します。

  2. テスト ハーネスを [テスト対象システム] として使用するテスト ケースを作成します。

  3. テスト ケースに外部入力をマッピングします。

テスト マネージャーでテスト ケースを使用すると、異なるテスト ベクトルでの反復、テスト ケースの追加、テスト ケースのバッチの実行、結果の整理が可能です。この例では、テスト ハーネスで外部データを使用し、テスト マネージャーからシミュレートする方法を示します。

  1. テスト マネージャーを開くには、[アプリ] タブの [モデルの検証とテスト] で [Simulink Test] をクリックします。次に、[テスト] タブで [Simulink テスト マネージャー] をクリックします。

  2. テスト マネージャーのツールストリップから [新規][テスト ファイル] を選択します。

  3. ファイルに ShiftLogicTest という名前を付けます。

  4. [新規テスト ケース 1] を選択します。[テスト対象システム] セクションで [現在のモデルを使用] をクリックします。

  5. [テスト ハーネス] のドロップダウン リストから ShiftLogic_InportHarness を選択します。テスト ハーネスは既にモデルに存在しています。

  6. [入力] セクションで [作成] をクリックします。入力データ ファイルに shift_logic_input という名前を付け、MAT ファイル形式を選択します。

  7. 信号エディターで、入力の値を入力します。

    1. [speed] 信号を選択し、時間 030 に「50」と入力します。Enter キーを押してプロットを更新します。

    2. [throttle] 信号を選択し、時間 030 に「30」と入力します。Enter キーを押してプロットを更新します。

      Speed plot showing constant value of 50 and throttle plot showing constant value of 30.

    3. 信号エディターのツールストリップで [保存] をクリックします。

  8. 取得する出力データを選択します。

    1. テスト マネージャーの [シミュレーション出力][追加] をクリックします。

    2. テスト ハーネスのブロック線図で gear の信号線を選択します。[接続] ダイアログ ボックスで信号を選択します。

    3. [完了] をクリックして信号をテスト ケースの出力に追加します。

  9. テスト マネージャーのツールストリップで [実行] をクリックします。

  10. 結果を展開し、ギア信号の出力を強調表示します。コントローラーでサード ギアが選択されていることがプロットに示されます。

    Plot of the gear output from the controller

参考

関連するトピック