閉ループ シミュレーション モデルでの未達カバレッジの達成
100% のカバレッジを達成しないサブシステムまたは Stateflow® チャートがあり、それらを Model ブロックに変換しない場合は、この例に従ってフル カバレッジを達成します。
この例では、閉ループ コントローラー モデルを使用します。"閉ループ コントローラー" は制御対象のシステムに命令を与え、制御命令の実行時に環境から情報を受け取ります。コントローラーは、この情報を受信する際、命令の受け入れおよび変更を行うことができます。
sldvdemo_autotrans モデルは閉ループ シミュレーション モデルです。ShiftLogic Stateflow チャートは、このモデルのコントローラーの部分を表します。ManeuversGUI Signal Editor ブロックで設計されたテスト ケースは、閉ループ シミュレーションを駆動します。
モデルのカバレッジ データの記録
モデルのシミュレーションを実行し、ShiftLogic コントローラーの条件カバレッジ、判定カバレッジおよび MCDC カバレッジを記録するには、次を行います。
- 次の例からモデル例 - sldvdemo_autotransを開きます。- openExample('sldv/UsingExistingCoverageDataSubsystemAnalysisExample')
- [アプリ] タブで、[アプリ] セクションの右側にある矢印をクリックします。 - [モデルの検証、妥当性確認、テスト] の下で [カバレッジ アナライザー] をクリックします。 
- [カバレッジ] タブで、[設定] をクリックします。 
- [コンフィギュレーション パラメーター] ダイアログ ボックスの [カバレッジ] ペインで、オプションを次のように設定します。 - [カバレッジ解析を有効にする] を選択します。 
- [サブシステム] を選択して [サブシステムの選択] をクリックします。 
- [サブシステムの選択] ダイアログ ボックスで - ShiftLogicを選択し、[OK] をクリックします。
 
- [カバレッジ メトリクス] の下で、 - [改良条件判定カバレッジ (MCDC)]を選択します。
- [その他のメトリクス] がオンになっている場合はオフにします。 
- [コンフィギュレーション パラメーター] ダイアログ ボックスの [カバレッジ] 、 [結果] ペインで、オプションを次のように設定します。 - [ワークスペース変数の最後の実行を保存] を有効にします。 
- [cvdata オブジェクト名] フィールドに「 - covdata_original_controller」と入力してカバレッジ データ ワークスペース変数の名前を一意に指定します。
- [解析後にレポートを自動生成する] を選択します。 
 
- [OK] をクリックします。 
- sldvdemo_autotransモデルのシミュレーションを開始して、カバレッジ データを記録します。- シミュレーションが終了すると、カバレッジ レポートが開きます。レポートには、ShiftLogic Stateflow チャートで次のカバレッジが達成されたことが示されます。 - 判定: 87% (27/31) 
- 条件: 67% (8/12) 
- MCDC: 33% (2/6) 結果に影響を与えた条件 
 - シミュレーションでは、カバレッジ データは MATLAB® ワークスペース変数 - covdata_original_controller(カバレッジ データを格納する- cvtestオブジェクト) に保存されます。
- カバレッジ データを MATLAB パス上のファイルに保存します。 - cvsave('existingcov',covdata_original_controller);
未達カバレッジのテスト ケースの検出
ShiftLogic チャートの未達カバレッジを検出するため、そのブロックのサブシステム解析を実行します。この手法を使用して、解析をモデルの個別の部分に絞り込みます。
ShiftLogic コントローラーの 100% のカバレッジを達成するには、既存のカバレッジ データを使用するテスト生成解析を実行します。
- ShiftLogic ブロックを右クリックし、[Design Verifier] 、 [オプション] を選択します。 
- [コンフィギュレーション パラメーター] ダイアログ ボックスの [選択] ツリーで、[Design Verifier] ノードを選択します。[解析オプション] の下の [モード] フィールドで - [テスト生成]を選択します。[モデル カバレッジ オブジェクティブ] で- [MCDC]を選択します。
- [Design Verifier] ノードの下で、[テスト生成] を選択します。[未達カバレッジのテストを追加] で [既存のカバレッジ データを使用して拡張] を選択します。 
- [カバレッジ データ] フィールドに、シミュレーションの実行時に記録したカバレッジ データを含むファイルの名前を入力します。 - existingcov.cvt 
- [適用] をクリックして、これらの設定を保存します。[OK] をクリックします。 
- [Design Verifier] ペインで、 - ShiftLogicブロックを右クリックして [サブシステムに対するテストの生成] を選択します。- Stateflow チャートが - ShiftLogicという名前の新しいモデルに抽出されます。以前に達成されて- existingcov.cvtファイルに記録されたカバレッジ オブジェクティブを無視して、新しいモデルが解析されます。
- テスト生成解析が完了したら、Simulink® Design Verifier™ のログ ウィンドウで [テストをシミュレートしてモデル カバレッジ レポートを生成] を選択します。 - レポートには、Simulink Design Verifier で生成されたテスト ケースによるシミュレーションにおいて、ShiftLogic チャートに対し以下のカバレッジが達成されたことが示されます。 - 判定: 97% (30/31) 
- 条件: 83% (10/12) 
- MCDC: 67% (4/6) 結果に影響を与えた条件 
 - Simulink Design Verifier レポートには、 - existingcov.cvtファイルでカバーされないオブジェクティブを達成させる抽出されたモデルの 6 つのテスト ケースがリストされます。- Simulink Design Verifier レポートには、Stateflow チャート ShiftLogic の 2 つのカバレッジ オブジェクティブが達成されないと証明されたことが示されます。ShiftLogic チャートは各タイム ステップで更新されるので、暗黙的なイベント - tickが- falseになることはありません。時相イベント- after(TWAIT, tick)のいずれかのインスタンスで条件または MCDC のカバレッジが達成されることはありません。- after(TWAIT, tick)は、次と同等の意味をもちます。- Event == tick && temporalCount(tick) >= TWAIT - after(TWAIT, tick)を次のような条件に入れたとします。- [after(TWAIT, tick) && speed < down_th] - Simulink Design Verifier は、 - tickが常に- trueであると判断し、- after(TWAIT, tick)の- temporalCount(tick) >= TWAITの部分のみをテストします。解析では、- after(TWAIT, tick)の条件カバレッジおよび MCDC カバレッジを達成させるテスト オブジェクティブを検出することができます。