閉ループ システムのテスト ケースの拡張
Model ブロックで参照されるモデル内に閉ループ コントローラーを含むモデルがあるとします。参照モデルについて 100% のカバレッジは記録されません。既存テスト ケースを拡張することで、100% のカバレッジを達成できるようになります。Simulink® Design Verifier™ ソフトウェアは、参照モデルにより実装されるコントローラーを解析する際、既存テスト ケースにタイム ステップを追加します。解析結果としてのテスト ケースは、閉ループ コントローラーで想定された連続時間の動作を実際的に反映します。
"閉ループ コントローラー" は制御対象のシステムに命令を与え、制御命令の実行時に環境から情報を受け取ります。コントローラーは、この情報を受信する際、命令の受け入れおよび変更を行うことができます。
開始テスト ケースのログ
この例では、モデル参照によるコンポーネントベースのモデル化のモデル例 sldemo_mdlref_basic
を使用します。sldemo_mdlref_basic
モデル。CounterA Model ブロックはモデル sldemo_mdlref_counter
を参照します。親モデル sldemo_mdlref_basic
のシミュレーションを実行してカバレッジを収集すると、sldemo_mdlref_counter
について 75% のカバレッジしか記録されません。シミュレーションのデータのログを記録して、参照モデルで 100% のカバレッジを達成するようにそれらのテスト ケースを拡張します。
モデル参照によるコンポーネントベースのモデル化のモデル例
sldemo_mdlref_basic
を開きます。openExample('sldemo_mdlref_basic')
[アプリ] タブで、[アプリ] セクションの右側にある矢印をクリックします。
[モデルの検証とテスト] の下で [カバレッジ アナライザー] をクリックします。
[カバレッジ] タブで、[設定] をクリックします。
コンフィギュレーション パラメーターの [カバレッジ] ペインで、[カバレッジ解析を有効にする] を選択します。
[参照モデル] を選択します。
解析で記録されるカバレッジは、[シミュレーション モード] が
[ノーマル]
、[SIL]
または[PIL]
に設定されている参照モデルのみであることに注意してください。sldemo_mdlref_basic
の CounterC Model ブロックは、[シミュレーション モード] が[アクセラレータ]
に設定されているため、そのカバレッジは記録できません。判定カバレッジ、条件カバレッジおよび改良条件判定カバレッジを記録するために、[カバレッジ メトリクス] の下で、構造カバレッジ レベルを [改良条件判定カバレッジ (MCDC)] に設定します。
[OK] をクリックします。
[カバレッジの解析] をクリックします。
カバレッジ レポートを開くには、[結果の確認] セクションで [レポートの生成] をクリックします。
シミュレーションが完了すると、生成されたカバレッジ レポートがブラウザー ウィンドウで開きます。レポートには、次のように参照モデルのカバレッジの結果が表示されます。
条件: 50% (2/4) condition outcomes
判定: 25% (1/4) decision outcomes
MCDC: 0% (0/2) conditions reversed the outcome
カバレッジの結果は参照モデル
sldemo_mdlref_counter
でも強調表示されます。次のスクリーンショットのように、特定のカバレッジの結果をそれぞれのモデル オブジェクトを選択することで、[カバレッジ] ダイアログ ボックスに表示できます。シミュレーションの実行時に
sldemo_mdlref_basic
の CounterA Model ブロックの入力信号のログを記録するには、MATLAB® コマンド プロンプトで次のコードを入力します。logged_data = sldvlogsignals('sldemo_mdlref_basic/CounterA');
existingtestcase.mat
という名前の MAT ファイルにログ データを保存します。save('existingtestcase.mat', 'logged_data');
CounterA (
sldemo_mdlref_counter
) で参照されるモデルを解析して既存テスト ケースを拡張するときに、この MAT ファイルを指定します。
既存テスト ケースの拡張
解析の拡張によりこれらのテスト ケースを既に達成されたものと指定して、sldemo_mdfref_counter
モデルを解析します。
sldemo_mdlref_basic
モデルで CounterA Model ブロックをダブルクリックしてsldemo_mdfref_counter
モデルを開きます。[Design Verifier] タブで、[テスト生成の設定] をクリックします。
[コンフィギュレーション パラメーター] ダイアログ ボックスの [テスト生成] ペインの [モデル カバレッジ オブジェクティブ] ボックスで
[MCDC]
を選択します。[詳細設定パラメーター] で、[未達カバレッジのテストを追加] を選択します。
[既存のテスト データを使用して拡張] チェック ボックスをオンにします。
[カバレッジ データ] フィールドで、ログ データを含む
MAT
ファイルの名前を指定します。ここでは、「existingtestcase.mat
」と入力します。[OK] をクリックします。
[テスト生成] をクリックします。
解析は、ログに記録されたテスト ケースで達成されたオブジェクティブを最初に読み込みます。その後、追加のタイム ステップをそれらのテスト ケースに追加し、未達オブジェクティブを達成させようとします。解析が完了すると、Simulink Design Verifier のログ ウィンドウが開き、
12
のすべてのオブジェクティブが達成されることが示されます。モデル上に解析結果を表示するには、Simulink Design Verifier のログ ウィンドウで、[解析結果をモデル上で強調表示] を選択します。
Simulink Design Verifier の結果は参照モデル
sldemo_mdlref_counter
内で強調表示されます。次のスクリーンショットのように、特定の解析結果をそれぞれのモデル オブジェクトを選択することで、Simulink Design Verifier の [結果] ダイアログ ボックスに特定の解析結果を表示できます。解析結果を検証して生成されたテスト ケースをレビューするには、Simulink Design Verifier のログ ウィンドウで [詳細な解析レポートを生成] を選択します。
拡張されたテスト スイートを使用してモデル カバレッジを収集するには、Simulink Design Verifier のログ ウィンドウで、[テストをシミュレートしてモデル カバレッジ レポートを生成] を選択します。
シミュレーションが完了すると、生成されたカバレッジ レポートがブラウザー ウィンドウで開きます。ここで、レポートには参照モデル
sldemo_mdlref_counter
のカバレッジ結果が以下のように表示されます。条件: 100% (4/4) condition outcomes
判定: 100% (4/4) decision outcomes
MCDC: 100% (2/2) conditions reversed the outcome