Main Content

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

コード ブロックと Simulink ブロックをもつモデルのカバレッジ

この例では、コード ブロックと他の Simulink® ブロックの組み合わせを含むモデルのカバレッジを記録する方法を説明します。

このモデルは、テスト ケースと、Signal Editor ブロックからの入力信号とで構成されるクルーズ コントロール システムです。信号エディターからの信号は、Stateflow® チャートである ComputeTargetSpeed への入力として機能します。このチャートはクルーズ コントロール システムの運用や解除を行い、ターゲット速度 tspeed を設定します。

カバレッジを記録するためのモデルの構成

Simulink エディターで、[モデル化]、[モデル設定] を選択します。[コード生成] ペインで、[ターゲットの選択] メニューの [システム ターゲット ファイル]ert.tlc に設定します。[コード生成] ペインの [検証] タブで、[SIL または PIL のコード カバレッジ] パラメーターを None (use Simulink Coverage) に設定します。

RejectDoublePress ブロックをダブルクリックして S-Function Builder ブロックを開きます。[S-Function Builder] タブで [ビルド] の下にある矢印をクリックし、[カバレッジのサポートを有効にする] を選択します。S-Function をビルドするには、[ビルド] をクリックします。

なお、S-Function をビルドするには、コンパイラがインストールされていなければなりません。さまざまなプラットフォームでサポートされているコンパイラの詳細については、サポートされるコンパイラを参照してください。

カバレッジの記録

Signal Editor ブロックは、それぞれが 5 つの信号からなる 8 つの信号グループで構成されています。この例では、すべての信号グループをシミュレートして、カバレッジを記録します。

Simulink® ツールストリップで、[シミュレーション]、[準備]、[複数のシミュレーション] をクリックします。[複数のシミュレーション] ペインでフォルダー アイコンをクリックしてから、[開くファイルを選択] ダイアログで slvnvdemo_doublepress_sfun_ds.mldatx を選択します。[シミュレーション] タブで、[すべて実行 (カバレッジ)] をクリックします。シミュレーションが終了するとカバレッジの結果エクスプローラーが開き、最新のカバレッジ解析の結果が表示されます。モデル内のブロックは、各ブロックにより達成されたカバレッジのレベルに応じて、異なる色で強調表示されます。

カバレッジ レポートの生成による結果の確認

カバレッジの結果エクスプローラーには、カバレッジの結果を表示しレポートするためのいくつかのオプションがあります。左側のペインの [現在の累積データ] タブで、Not_Engaged_with_Enable グループを選択します。カバレッジの結果エクスプローラーの最下部にある [レポートの生成] リンクをクリックし、HTML カバレッジ レポートを生成します。カバレッジ レポートには、Simulink モデル ブロックのモデル カバレッジとコード ブロックのコード カバレッジが一覧表示されます。カバレッジ レポートを下にスクロールして S-Function ブロックのカバレッジ メトリクスを表示します。[詳細レポート] リンクをクリックすると、S-Function ブロックのコード カバレッジ レポートが開きます。S-Function ブロックのコード カバレッジ レポートの詳細については、S-Function ブロック内のカスタム C/C++ コードのカバレッジ結果の参照を参照してください。

未達カバレッジの正当化

この例では、カバレッジ フィルターを作成することにより、1 つの入力信号グループのカバレッジを正当化します。「カバレッジ レポートの生成による結果の確認」で作成された S-Function ブロックのコード カバレッジ レポートで、判定/条件 2.1 !(CoastSetSwIn[0] && AccelResSwIn[0]) まで下にスクロールします。この条件が現在のテスト ケースで False になることはありません。

この条件の詳細結果にある [正当化または排除] リンクをクリックします。カバレッジの結果エクスプローラーの [フィルター] タブが開き、この遷移をフィルター処理する規則が追加されます。この規則の [モード]Justified に変更し、[根拠] に expression cannot be false などの説明を入力します。[適用] をクリックして変更を適用します。

[適用] をクリックすると、[レポートの生成] リンクが利用可能になります。リンクをクリックして、更新されたカバレッジ フィルターでレポートを生成します。RejectDoublePress S-Function ブロックの新しいコード カバレッジ レポートでは、除外された条件が [カバレッジ解析からフィルターで除外されたオブジェクト] に一覧表示されます。条件 !(CoastSetSwIn[0] && AccelResSwIn[0]) の詳細結果には、この条件の未達カバレッジが正当化されたことが示されます。正当化されたオブジェクトは、カバレッジ率をレポートする際に達成されたものとして扱われ、カバレッジの概要に薄い青で表示されます。

カバレッジ フィルターの詳細については、カバレッジのフィルターを参照してください。

参考

| |