Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

閉ループ システムのテスト ケースの拡張

Model ブロックで参照されるモデル内に閉ループ コントローラーを含むモデルがあるとします。参照モデルについて 100% のカバレッジは記録されません。既存テスト ケースを拡張することで、100% のカバレッジを達成できるようになります。Simulink® Design Verifier™ ソフトウェアは、参照モデルにより実装されるコントローラーを解析する際、既存テスト ケースにタイム ステップを追加します。解析結果としてのテスト ケースは、閉ループ コントローラーで想定された連続時間の動作を実際的に反映します。

"閉ループ コントローラー" は制御対象のシステムに命令を与え、制御命令の実行時に環境から情報を受け取ります。コントローラーは、この情報を受信する際、命令の受け入れおよび変更を行うことができます。

開始テスト ケースのログ

この例では、sldemo_mdlref_basic モデルを使用します。CounterA Model ブロックはモデル sldemo_mdlref_counter を参照します。親モデル sldemo_mdlref_basic のシミュレーションを実行してカバレッジを収集すると、sldemo_mdlref_counter について 75% のカバレッジしか記録されません。シミュレーションのデータのログを記録して、参照モデルで 100% のカバレッジを達成するようにそれらのテスト ケースを拡張します。

  1. モデル例を開きます。

  2. [アプリ] タブで、[アプリ] セクションの右側にある矢印をクリックします。

    [モデルの検証とテスト] の下で [カバレッジ アナライザー] をクリックします。

  3. [カバレッジ] タブで、[設定] をクリックします。

  4. コンフィギュレーション パラメーターの [カバレッジ] ペインで、[カバレッジ解析を有効にする] を選択します。

  5. [参照モデル] を選択します。

    解析で記録されるカバレッジは、[シミュレーション モード][ノーマル][SIL] または [PIL] に設定されている参照モデルのみであることに注意してください。sldemo_mdlref_basic の CounterC Model ブロックは、[シミュレーション モード][アクセラレータ] に設定されているため、そのカバレッジは記録できません。

  6. 判定カバレッジ、条件カバレッジおよび改良条件判定カバレッジを記録するために、[カバレッジ メトリクス] の下で、構造カバレッジ レベルを [改良条件判定カバレッジ (MCDC)] に設定します。

  7. [OK] をクリックします。

  8. [カバレッジの解析] をクリックします。

    カバレッジ レポートを開くには、[結果の確認] セクションで [レポートの生成] をクリックします。

    シミュレーションが完了すると、生成されたカバレッジ レポートがブラウザー ウィンドウで開きます。レポートには、次のように参照モデルのカバレッジの結果が表示されます。

    • 条件: 50% (2/4) condition outcomes

    • 判定: 25% (1/4) decision outcomes

    • MCDC: 0% (0/2) conditions reversed the outcome

    カバレッジの結果は参照モデル sldemo_mdlref_counter でも強調表示されます。次のスクリーンショットのように、特定のカバレッジの結果をそれぞれのモデル オブジェクトを選択することで、[カバレッジ] ダイアログ ボックスに表示できます。

  9. シミュレーションの実行時に sldemo_mdlref_basic の CounterA Model ブロックの入力信号のログを記録するには、MATLAB® コマンド プロンプトで次のコードを入力します。

    logged_data = sldvlogsignals('sldemo_mdlref_basic/CounterA');
  10. existingtestcase.mat という名前の MAT ファイルにログ データを保存します。

    save('existingtestcase.mat', 'logged_data');

    CounterA (sldemo_mdlref_counter) で参照されるモデルを解析して既存テスト ケースを拡張するときに、この MAT ファイルを指定します。

既存テスト ケースの拡張

解析の拡張によりこれらのテスト ケースを既に達成されたものと指定して、sldemo_mdfref_counter モデルを解析します。

  1. sldemo_mdlref_basic モデルで CounterA Model ブロックをダブルクリックして sldemo_mdfref_counter モデルを開きます。

  2. [Design Verifier] タブで、[テスト生成の設定] をクリックします。

  3. [コンフィギュレーション パラメーター] ダイアログ ボックスの [テスト生成] ペインの [モデル カバレッジ オブジェクティブ] ボックスで [MCDC] を選択します。

  4. [既存のテスト ケース] の下で [既存テスト ケースの拡張] を選択します。

  5. [データ ファイル] フィールドで、ログ データを含む MAT ファイルの名前を入力します。ここでは、「existingtestcase.mat」と入力します。

  6. [既存のテスト ケースで条件が満たされているオブジェクティブを無視する] をオフにします。

    このオプションをオフにすると、ファイル existingtestcase.mat に記録されたテスト ケースが最終的なテスト スイートに含まれます。

  7. [OK] をクリックします。

  8. [テスト生成] をクリックします。

    解析は、ログに記録されたテスト ケースで達成されたオブジェクティブを最初に読み込みます。その後、追加のタイム ステップをそれらのテスト ケースに追加し、未達オブジェクティブを達成させようとします。解析が完了すると、Simulink Design Verifier のログ ウィンドウが開き、12 のすべてのオブジェクティブが達成されることが示されます。

  9. モデル上に解析結果を表示するには、Simulink Design Verifier のログ ウィンドウで、[解析結果をモデル上で強調表示] を選択します。

    Simulink Design Verifier の結果は参照モデル sldemo_mdlref_counter 内で強調表示されます。次のスクリーンショットのように、特定の解析結果をそれぞれのモデル オブジェクトを選択することで、Simulink Design Verifier の [結果] ダイアログ ボックスに特定の解析結果を表示できます。

  10. 解析結果を検証して生成されたテスト ケースをレビューするには、Simulink Design Verifier のログ ウィンドウで [詳細な解析レポートを生成] を選択します。

  11. 拡張されたテスト スイートを使用してモデル カバレッジを収集するには、Simulink Design Verifier のログ ウィンドウで、[テストをシミュレートしてモデル カバレッジ レポートを生成] を選択します。

    シミュレーションが完了すると、生成されたカバレッジ レポートがブラウザー ウィンドウで開きます。ここで、レポートには参照モデル sldemo_mdlref_counter のカバレッジ結果が以下のように表示されます。

    • 条件: 100% (4/4) condition outcomes

    • 判定: 100% (4/4) decision outcomes

    • MCDC: 100% (2/2) conditions reversed the outcome

関連するトピック