Main Content

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

最上位モデル カバレッジ レポート

[実行] ボタンを使用してモデルのシミュレーションを行う場合、Simulink® Coverage™model_name_cov.html という名前の指定されたモデルについてモデル カバレッジ レポートを作成します。モデル カバレッジ レポートは、[カバレッジの詳細] ペインでも自動的に開かれます。このモデル カバレッジ レポートには以下の節があります。

sldemo_fuelsys モデルにアクセスするには、MATLAB® コマンド ウィンドウで以下のコマンドを実行します。

openExample('ModelingAFaultTolerantFuelControlSystemExample');

解析情報

解析情報の節には、解析対象のモデルに関する以下の基本情報が表示されます。

  • カバレッジ データ情報

  • モデル情報

  • ハーネス情報 (Simulink Test™ ハーネスからカバレッジを記録した場合に表示されます)

  • シミュレーション最適化オプション

  • カバレッジ オプション

テスト集計

[テスト集計] 節は、以下を行った場合に表示されます。

  • Simulink Test マネージャーを通して少なくとも 2 つのテスト ケースについてカバレッジの結果の集計を記録し、集計結果のカバレッジ レポートを生成した場合。または、

  • 結果エクスプローラーで累積カバレッジの結果のカバレッジ レポートを生成した場合。

Simulink Test マネージャーを通してテスト ケースを実行した場合、[テスト集計] セクションは、Simulink Test マネージャー内の関連付けられたテスト ケースにリンクされます。

結果エクスプローラーを通してテスト ケースの結果を集計した場合、[テスト集計] セクションは、結果エクスプローラーの対応する cvdata ノードにリンクされます。

[テスト集計] セクションの各実行について、Simulink Test マネージャーまたは結果エクスプローラー内の対応する結果に対してリンクが張られます。

集計されたユニット テスト

1 つ以上のサブシステム ハーネスのカバレッジを記録した場合、[テスト集計] セクションに実行された各ユニット テストがリストされ、[説明] セクションに集計したカバレッジ データに指定された説明が表示されます。この説明を表示して編集するには、カバレッジの結果エクスプローラーに移動して [現在の累積データ] をクリックします。

各テスト対象ユニットが序数 n を取り、1 つのテスト対象ユニットの各テストが序数 m を取り、Un.m の形式で示されます。

Description and Aggregated Tests section of the coverage report. Aggregated Tests section lists two tests: Run T1, and Run T2.

カバレッジ概要

カバレッジ概要には、以下の 2 つのサブセクションがあります。

  • Tests — 各テスト ケースの開始時間と終了時間およびシミュレーションの前に実行されたすべてのセットアップ コマンド。各テスト ケースの見出しには、cvtest コマンドを使用して指定されたテスト ケースのラベルが含まれています。このセクションは、レポートにテスト集計セクションが含まれない場合にのみ表示されます。

  • 概要 — サブシステムの結果の概要。特定のサブシステムの詳細結果を表示するには、[概要] のサブセクションでサブシステム名をクリックします。

[概要] セクションには、要求された各カバレッジ メトリクスの列が含まれ、解析されたモデルまたはモデル オブジェクトに適用できないメトリクスの列も含まれます。たとえば、sldemo_fuelsys モデルで [オブジェクティブと制約] カバレッジ メトリクスを選択すると、Simulink Coverage[Test Objective][Proof Objective][Test Condition]、および [Proof Assumption] について解析できるブロックがこのモデルには含まれていませんが、これらのメトリクスの列が表示されます。

詳細

[詳細] セクションには、モデル カバレッジの詳細結果が表示されます。詳細レポートの各節には、モデル内の各オブジェクトのテストで使用されたメトリクスの結果の概要が表示されます。

また、次の手順でモデル要素の詳細が記載されたサブセクションにアクセスすることもできます。

  1. Simulink 要素を右クリックします。

  2. コンテキスト メニューで [カバレッジ][レポート] を選択します。

フィルターされたオブジェクト

Filtered Objects 節には、フィルターによりカバレッジの記録対象から除外されたモデル内のすべてのオブジェクトと、そのオブジェクトをフィルターした根拠が表示されます。フィルター規則により特定の種類のブロックをすべてフィルターするように指定された場合は、該当するブロックがすべて表示されます。

次の図では、複数のブロック、サブシステム、遷移がフィルターされています。protected division と protected division1 の 2 つのライブラリにリンクされたブロックではブロック ライブラリがフィルターされているため、これらのブロックもフィルターされています。

モデルの詳細

[詳細] セクションには、モデル全体の結果の概要が表示され、その後に要素の一覧が続きます。モデル要素名をクリックするとカバレッジ結果が表示されます。

次の図は、sldemo_fuelsys モデル例の詳細節を示しています。

Details section lists Model sldemo_fuelsys and child systems: Engine Gas Dynamics, Throttle Command, To Controller, To Plant, and fuel rate control.

サブシステムの詳細

各サブシステムの [詳細] セクションには、サブシステムのテスト カバレッジ結果の概要と、その中に含まれるサブシステムの一覧が表示されます。概要の後には、ブロック、チャート、MATLAB 関数の節があり、サブシステム内に判定点があるオブジェクトごとに節が 1 つずつあります。

次の図は、sldemo_fuelsys モデル例の Engine Gas Dynamics サブシステムのカバレッジ結果を示しています。

Subsystem block Engine Gas Dynamics displaying coverage results including descendants for each metric. Cyclomatic complexity is 13, decision coverage is 71% (10/14 decision outcomes), execution coverage is 100% (17/17 objective outcomes), relational boundary coverage is 50% (3/6 objective outcomes), and Saturation on integer overflow coverage is 50% (10/20 objective outcomes)

ブロック詳細

次の図は、sldemo_fuelsys モデル例の Engine Gas Dynamics サブシステムの Mixing & Combustion サブシステムにある MinMax ブロックの判定カバレッジ結果を示しています。

MinMax block reports 50% decision coverage (1/2 decision outcomes), and 100% execution coverage (1/1 objective outcomes).

カバレッジが 100% でないモデルの階層構造の最初のブロックのブロック詳細節の最初に "カバーされていないリンク" 要素が表示されます。最初の "カバーされていないリンク" 要素には、カバレッジが 100% でない "次の" ブロックのレポートにあるブロック詳細節へのリンクがあります。

これより後のカバレッジが 100% でないブロックには、カバレッジが 100% でない前のブロックと次のブロックのレポートにあるブロック詳細節へのリンクがあります。

チャートの詳細

次の図は、sldemo_fuelsys モデル例の Stateflow® チャート control_logic のカバレッジ結果を示しています。

The control logic subsystem reports cyclomatic complexity of 56, with 21% condition coverage (5/24 condition outcomes), 25% decision coverage (23/92 decision outcomes), 0% MCDC coverage (0/12 conditions reversed the outcome), 0% lookup table coverage (0/1082 interpolation/extrapolation intervals), 0% execution coverage (0/4 objective outcomes), and 0% relational boundary coverage (0/34 objective outcomes).

Stateflow チャートとそのオブジェクトに対するモデル カバレッジ レポートの詳細については、Stateflow チャートのモデル カバレッジを参照してください。

MATLAB 関数と Simulink Design Verifier 関数のカバレッジの詳細

既定では、Simulink Coverage でモデル内のすべての MATLAB 関数のカバレッジが記録されます。MATLAB 関数は MATLAB Function ブロック、Stateflow チャートまたは外部 MATLAB ファイルにあります。

メモ

外部 MATLAB ファイルのカバレッジ レポートの詳細な例は、外部 MATLAB ファイル カバレッジ レポートを参照してください。

MATLAB 関数に呼び出される関数 sldv.* および Simulink Design Verifier™ ブロックの Simulink Design Verifier カバレッジを記録するには、[コンフィギュレーション パラメーター] ダイアログ ボックスの [カバレッジ] ペインで [オブジェクティブと制約] を選択します。

この例では、MATLAB 関数 hFcnsInExternalEML のカバレッジの詳細が表示されます。この関数は 4 つの Simulink Design Verifier 関数を呼び出しています。この例では、hFcnsInExternalEML のコードは外部ファイルにあります。

この例では、次の関数の Simulink Design Verifier カバレッジの詳細も示しています。

カバレッジ結果では、カバレッジが 100% となるコードは緑色で表示されます。100% に満たないコードは赤で表示されます。

Coverage for embedded MATLAB function hfcnsinexternaleml reports 4 cyclomatic complexity, 40% decision coverage (2/5 decision outcomes), 50% test objective coverage (1/2 objective outcomes), 0% proof objective coverage (0/1 objective outcomes), 100% test condition coverage (1/1 objective outcomes), and 0% proof assumption coverage (0/1 objective outcomes).

関数 hFcnsInExternalEMLsldv.* の呼び出しのカバレッジは次のとおりです。

  • 1 行目で、hFcnsInExternalEML の関数宣言が緑色で表示されています。これは、シミュレーションでこの関数が少なくとも 1 回実行されていることを示しています。fcn はシミュレーション中に hFcnsInExternalEML を 11 回呼び出しています。

    4 行目の sldv.assume(u1 > u2) のカバレッジは 0% です。これは、u1 > u2 が 1 回も真と評価されなかったためです。

  • 5 行目の sldv.condition(u1 == 0) カバレッジは 100% です。これは u1 == 0 が少なくとも 1 つのタイム ステップで真と評価されているためです。

  • 6 行目の switch u1 のカバレッジは 25% です。これは、switch ステートメントの 4 つの結果のうち 1 つ (case 0) だけがシミュレーションで発生したためです。

  • 17 行目の sldv.test(y > u1); sldv.test (y == 4) のカバレッジは 50% です。最初の sldv.test の呼び出しではカバレッジが 100% になっていますが、2 番目の sldv.test の呼び出しではカバレッジが 0% になっています。

MATLAB 関数のカバレッジの詳細については、MATLAB 関数のモデル カバレッジを参照してください。

Simulink Design Verifier 関数のカバレッジの詳細については、オブジェクティブと制約カバレッジを参照してください。

要件テストの詳細

Requirements Toolbox™ の要件にリンクされた Simulink Test のテスト ケースを少なくとも 2 つ実行すると、カバレッジ レポートの集計に、モデル要素間のリンク、テスト ケース、リンクされている要件の詳細が記載されます。

[要件テストの詳細] 節には以下が含まれます。

  • 実装済みの要件 — モデル要素にリンクされている要件。

  • テストにより検証済み — その要件を検証したテスト。

  • 関連付けられた実行 — 各検証テストに関連付けられた実行。

カバレッジ結果からカバレッジ レポート内の要件にトレースする例については、カバレッジ結果から要件へのトレースを参照してください。

モデル カバレッジ レポートの循環的複雑度

モデル カバレッジ レポートでは、循環的複雑度の数値を 2 か所に表示するように指定することができます。

  • [概要] 節にはモデルの階層構造の各オブジェクトの循環的複雑度が表示されます。サブシステムまたは Stateflow チャートの場合、この数字にはすべての子孫の循環的複雑度が含まれています。

  • 各オブジェクトの詳細節には、すべてのオブジェクトの循環的複雑度が個別に表示されます。

    Details for subsystem block Throttle & Manifold shows a cyclomatic complexity of 0 for this object, and a cyclomatic complexity of 10 for this object including descendants.

判定解析

判定解析表には、判定について起こり得る結果と、テスト シミュレーションごとの結果の発生回数が表示されます。発生しなかった結果は、赤色で強調表示された表の行に表示されます。

次の図は、sldemo_fuelsys モデル例の Engine Gas Dynamics サブシステムの Throttle & Manifold サブシステムにある Saturate ブロックの判定解析表を示しています。

Saturate block Limit to Positive shows 50% decision coverage (2/4 decision outcomes), decision input >= lower limit was true for all time steps and decision input > upper limit was false for all time steps.

目的のブロックを表示および強調表示するには、そのブロックの判定解析表がある節の最上部にあるブロック名をクリックします。

Saturation block Limit to Positive is highlighted red in the Simulink canvas.

条件解析

条件解析表には、対応するブロックの入力端子ごとの真および偽の条件の発生回数が表示されます。

Conditions analyzed table displays the condition "input port 1" is true for 199521 time steps and false for 480 time steps. The condition "input port 2" was true for 200001 time steps and false for 0 time steps. The cell of the table that shows 0 time steps also displays the "create a justification filter rule" icon.

MCDC 解析

MCDC 解析表には、対応するブロックにより表される MCDC 入力条件ケースと、レポートされたテスト ケースが条件ケースをどの程度網羅できているかが表示されます。

MCDC analysis table (combinations in parentheses did not occur). The expression "input port 1" evaluated the TT case and the FT case. The expression "input port 2" evaluated the TT case, but not the TF case so this TF case is displayed in parentheses.

MCDC 解析表の各行は、ブロックに対する特定の入力の条件ケースを表しています。ブロックの入力 n の条件ケースは、入力値を組み合わせたものです。入力 n は、条件ケースの "判定入力" と呼ばれています。入力 n の値を変更すると、ブロックの出力値も変わります。

MCDC 解析表には、条件ケースを表す条件ケース式が表示されます。条件ケース式は次の性質がある文字列です。

  • 文字列内での文字の位置は入力端子番号に対応します。

  • 各位置の文字は入力値を表します(TtrueFfalse を表します)。

  • 太字は判定入力の値を表します。

たとえば、FTF は 3 つの入力があるブロックの条件ケースで、2 番目の入力が判定入力であることを示しています。

[判定/条件] 列は、入力条件ケースの判定入力を表します。[真の出力] 列は、ブロックが条件ケースの true 値を出力するための判定入力値を表しています。[真の出力] のエントリでは条件式 (たとえば FF) を使用して、ブロックのすべての入力の値が表示されます。判定変数の値は太字で表示されます。

式の前後のかっこは、指定された入力の組み合わせが、このレポートに記載されている最初 (または唯一) のテスト ケースでは発生しなかったことを表します。つまり、このテスト ケースは該当する条件ケースを網羅していないことになります。[偽の出力] 列は、ブロックが false 値を出力するための判定入力の値と、レポートの対象となる最初 (または唯一) のテスト ケース中に実際にその値が発生したかどうかを表しています。

解析で使用される MCDC 定義によっては、一部のモデル要素による MCDC カバレッジの達成率が低くなります。解析で使用される MCDC 定義がどのようにカバレッジの結果に影響するのかの詳細については、Simulink Coverage における改良条件判定カバレッジ (MCDC) 定義を参照してください。

[コンフィギュレーション パラメーター] ダイアログ ボックスの [カバレッジ] ペインで [Simulink 論理ブロックをショートサーキットとして扱う] を選択すると、MCDC カバレッジ解析ではショートサーキットされた入力が実際に発生するかどうかは検証されません。MCDC 解析表の条件式 (TFxxx など) で x が使用されている場合、ショートサーキットされた入力がツールで解析されていないことを表しています。

この機能が無効にされ、モデル カバレッジの収集時に論理ブロックがショートサーキットされていない場合、そのブロックのカバレッジは 100% にならない場合があります。

生成コードに対してテスト ケースが達成するカバレッジ度を MCDC カバレッジ解析で近似する場合は、[Simulink 論理ブロックをショートサーキットとして扱う] オプションを選択します (大半の高水準言語は論理式をショートサーキットします)。

累積カバレッジ

連続するカバレッジ結果を記録した後に、カバレッジの結果エクスプローラー内からカバレッジ結果へのアクセス、管理および集計を実行できます。既定では、各シミュレーションの結果はレポートに累積的に保存、記録されます。

コンフィギュレーション パラメーターの結果セクションで [累積進行状況レポートの表示] を選択すると、累積カバレッジ レポートに含まれるすべての表の右端の領域にある結果に、実行結果の合計値が反映されます。レポートは、最後の実行による追加カバレッジと、セッション内での過去のすべての実行により得られたカバレッジを簡単に比較できるように構成されています。

累積カバレッジ レポートには、以下の情報が表示されます。

  • 現在の実行 — 完了したばかりのシミュレーションのカバレッジ結果。

  • デルタ — 完了したばかりのシミュレーションで得られた累積カバレッジに追加されたカバレッジのパーセンテージ。以前のシミュレーションの累積カバレッジと現在のカバレッジがともに非ゼロの場合、新しいカバレッジが累積カバレッジに追加されなければ、デルタが 0 になることがあります。

  • 累積 — 完了したばかりのシミュレーションを含むそれまでのシミュレーションでモデルについて収集された総カバレッジ。

3 つのテスト ケースを実行すると、概要レポートには 3 番目のテスト ケースで得られた追加カバレッジと、最初の 2 つのテスト ケースで得られた累積カバレッジが表示されます。

Summary section of the coverage report. Shows colored bars indicating the percentage of coverage obtained for each subsystem and the model total. There are columns of colored bars for the current run, the delta, and the cumulative coverage.

累積カバレッジの "判定解析" 表には判定結果を示すデータ列が 3 つあり、それぞれ現在の実行、前回の実行以降のデルタ、累積データを表しています。

条件解析表には列見出し #n T#n F があり、各テスト ケースの結果が表示されます。この表では Tot TTot F で累積結果を表しています。テスト ケースごとに、対応するブロックの各入力端子での真および偽の条件を特定できます。

MCDC 解析の [#n True Out] および [#n False Out] 列には、各テスト ケースの条件ケースが表示されます。[真の出力合計] および [偽の出力合計] 列は累積結果を示しています。

メモ

コマンド ラインで、再利用可能なサブシステムと Stateflow 構造の累積カバレッジを計算できます。詳細については、再利用可能なサブシステムの累積カバレッジの取得を参照してください。

n 次元ルックアップ テーブル

以下の対話型のチャートでは、ルックアップ テーブルの要素へのアクセス範囲の概要が示されます。この例では、2 つの Sine Wave ブロックにより x および y インデックスが生成され、乱数値が設定された 10 行 10 列の要素の 2-D Lookup Table ブロックにアクセスします。

A 2-D Lookup Table block taking two Sine Wave inputs, and its output is connected to a Scope block.

このモデルでは、ルックアップ テーブル インデックスは各方向に 1、2、…10 の値です。Sine Wave 2 ブロックの位相は Sine Wave 1 ブロックと pi/2 ラジアンだけずれています。これにより、円周の x 値と y 値が生成されます。これらの値は、得られたルックアップ テーブル カバレッジを確認する際に表示されます。

このレポートには、ルックアップ テーブルの要素を表す 2 次元テーブルが表示されます。要素インデックスはセルの境界グリッド ライン (各方向に 10 本ずつ) で表されます。ルックアップ テーブルがテーブル値の間で内挿する領域はセル領域として表されます。要素 1 の左と要素 10 の右の外挿領域は、テーブルの外周のセル (外周の境界線なし) で表されます。

メモ

カバレッジ レポートは、内挿間隔または外挿間隔が 400 以下のルックアップ テーブルに対してのみ、[ルックアップ テーブルの詳細] イメージを生成します。

各セルでテスト時に内挿または外挿された値の数 ("実行回数") は、セルに設定された緑色の色調で表されます。緑色の色調の 6 つのレベルと、それぞれに対応する実行回数の範囲は、テーブルの右側に表示されます。

テーブルの各セルをクリックすると、セルのインデックスの場所とテスト時の具体的な実行回数を示すダイアログ ボックスが表示されます。次の例では、円の右端にある色付きのセルの内容を示しています。

選択したセルは赤色の輪郭で表示されます。また、テーブルの端にある外挿セルをクリックすることもできます。

太いグリッド ラインは、インデックス値に等しいブロック入力がシミュレーション時に少なくとも 1 回発生していることを示しています。境界線をクリックすると、そのインデックス値の具体的な発生回数が表示されます。

次のモデル例では、乱数値が設定された 10 × 10 × 5 の要素がある n-D Lookup Table ブロックを使用しています。

An n-D Lookup Table block taking two Sine Wave inputs and one Ramp input. Its output is connected to a Scope block.

x および y の両方のテーブル軸に 1、2、…10 の各インデックスがあります。z 軸には 10、20、…50 の各インデックスがあります。ルックアップ テーブル値へのアクセスには、前の例で 2 つの Sine Wave ブロックにより生成された x および y インデックスと、Ramp ブロックにより生成された z インデックスを使用します。

シミュレーション後に、次のようなルックアップ テーブル レポートが表示されます。

リンク Force Map Generation を使用すると、2 次元テーブルの代わりに次のテーブルが表示されます。

3 次元ルックアップ テーブル ブロックのルックアップ テーブル カバレッジは複数の 2 次元テーブルのセットで表されます。

縦棒は厳密な z インデックス値を表しています。10, 20, 30, 40, 50。縦線が太線になっている場合、ブロック入力のうち少なくとも 1 つがシミュレーション時にその線が示すインデックス値と等しくなったことを表します。線をクリックすると、その線が表すインデックス値に対するカバレッジ レポートが表示されます。

どの次元のルックアップ テーブルに対しても、ルックアップ テーブル カバレッジのレポートを生成できます。4 次元テーブルのカバレッジは、前の例と同様に、複数の 3 次元のセットで表されます。さらに 5 次元テーブルは「3 次元のセット」のセットで表され、以下同様になります。

ブロック削減

どのモデル カバレッジ レポートでも、最初に Simulink の [ブロック削減] パラメーターのステータスが表示されます。次の例は、[ブロック削減を強制オフ] が設定されている場合を示しています。

Simulation Optimization Options section of the coverage report displaying the status of three Simulink parameters. Default parameter behavior is set to tunable, Block reduction is set to forced off, and Conditional branch optimization is set to on.

次の例では、Simulink の [ブロック削減] パラメーターが有効になっていて、[ブロック削減を強制オフ] は設定されていません。

Simulation Optimization Options section of the coverage report displaying the status of three Simulink parameters. Default parameter behavior is set to tunable, Block reduction is set to on, and Conditional branch optimization is set to on.

次のモデルでは、入力が In3 だけなので、シミュレーションでは MinMax1 ブロックが実行されません。

Model showing two disconnected MinMax blocks. The first MinMax block takes two inputs and has one output. The second MinMax block takes one input and has one output.

[ブロック削減を強制オフ] が設定されている場合、MinMax1 ブロックへの入力の最小値は常に 1 なので、このブロックのカバレッジ データはレポートに表示されません。

[ブロック削減を強制オフ] が設定されていない場合、削減されたブロックのカバレッジ データは表示されません。

Reduced Blocks section of the coverage report. Blocks eliminated from coverage analysis by block reduction model simulation setting: "ex_minmax_coverage/MinMax1."

関係演算子の境界

[コンフィギュレーション パラメーター] ダイアログ ボックスの[カバレッジ] ペインで、[関係演算子の境界] カバレッジ メトリクスを選択すると、このカバレッジでサポートされる各モデル オブジェクトのモデル カバレッジ レポートに関係演算子の境界の表が作成されます。この表は、モデル オブジェクトに含まれる明示的または暗黙的な関係演算に適用されます。詳細については、以下を参照してください。

以下の表は、関係式 input1 <= input2 の関係演算子の境界カバレッジ レポートを示しています。表の表示は、オペランドのデータ型によって異なります。

整数

両方のオペランドが整数である場合 (または一方のオペランドが整数でもう一方が boolean である場合)、表は次のように表示されます。

Relational Boundary coverage table: Row 1 displays input1 - input 2: 33% coverage. Row 2 displays -1: 0/51. Row 3 displays 0: 51/51. Row 4 displays +1: 0/51.

operand_1 <= operand_2 などの関係演算の場合は次のようになります。

  • 1 行目には、2 つのオペランドが operand_1 - operand_2 の形式で示されます。

  • 2 行目には、operand_1 - operand_2 が -1 と等しくなるシミュレーション中の回数が示されます。

  • 3 行目には、operand_1operand_2 と等しくなるシミュレーション中の回数が示されます。

  • 4 行目には、operand_1 - operand_2 が 1 と等しくなるシミュレーション中の回数が示されます。

固定小数点

オペランドの 1 つの型が固定小数点型で、他のオペランドが固定小数点または整数である場合、表は次のように表示されます。LSB は最下位ビットの値を表します。詳細については、精度 (Fixed-Point Designer)を参照してください。2 つのオペランドの精度が異なる場合、精度の値が小さい方が使用されます。

Relational Boundary coverage table: Row 1 displays input1 - input 2: 33% coverage. Row 2 displays -LSB: 51/51. Row 3 displays 0: 0/51. Row 4 displays +LSB: 0/51.

operand_1 <= operand_2 などの関係演算の場合は次のようになります。

  • 1 行目には、2 つのオペランドが operand_1 - operand_2 の形式で示されます。

  • 2 行目には、operand_1 - operand_2-LSB と等しくなるシミュレーション中の回数が示されます。

  • 3 行目には、operand_1operand_2 と等しくなるシミュレーション中の回数が示されます。

  • 4 行目には、operand_1 - operand_2LSB と等しくなるシミュレーション中の回数が示されます。

浮動小数点

オペランドの 1 つの型が浮動小数点型の場合、表は次のように表示されます。tol は、入力値と指定した許容誤差を使用して計算された値を表します。許容誤差を指定しない場合、既定値が使用されます。詳細については、関係演算子の境界カバレッジを参照してください。

Relational Boundary coverage table: Row 1 displays input1 - input 2: 50% coverage. Row 2 displays [-tol.. 0]: 51/51. Row 3 displays (0..tol]: 0/51.

operand_1 <= operand_2 などの関係演算の場合は次のようになります。

  • 1 行目には、2 つのオペランドが operand_1 - operand_2 の形式で示されます。

  • 2 行目には、operand_1 - operand_2 が範囲 [-tol..0] 内の値をもつシミュレーション中の回数が示されます。

  • 3 行目には、operand_1 - operand_2 が範囲 (0..tol] 内の値をもつシミュレーション中の回数が示されます。

この表の表示は、ブロックの関係演算子に従って変更します。関係演算子に応じて、0 と等しい operand_1 - operand_2 の値は、次のいずれかになります。

  • 関係演算子の境界カバレッジから除外される。

  • 関係演算子の境界の上の領域に含まれる。

  • 関演算子の境界の下の領域に含まれる。

Relational Operatorレポートの形式説明
==[-tol..0)0 は除外されます。
(0..tol]
!=[-tol..0)0 は除外されます。
(0..tol]
<=[-tol..0]0 は関係演算子の境界の下の領域に含まれます。
(0..tol]
<[-tol..0)0 は関係演算子の境界の上の領域に含まれます。
[0..tol]
>=[-tol..0)0 は関係演算子の境界の上の領域に含まれます。
[0..tol]
>[-tol..0]0 は関係演算子の境界の下の領域に含まれます。
(0..tol]

0 は <= の場合は関係演算子の境界の下に含まれますが、< の場合は関係演算子の境界の上に含まれます。この規則は判定カバレッジと一致します。次に例を示します。

  • 関係式 input1 <= input2 では、input1input2 以下の場合判定は真です。<= はグループ化されます。したがって、0 は関演算子の境界の下の領域に含まれます。

  • 関係式 input1 < input2 では、input1input2 未満の場合にのみ判定は真です。>= はグループ化されます。したがって、0 は関演算子の境界の上の領域に含まれます。

整数オーバーフローで飽和についての解析

[コンフィギュレーション パラメーター] ダイアログ ボックスの[カバレッジ] ペインで、[整数オーバーフローで飽和] カバレッジ メトリクスを選択すると、モデル カバレッジ レポートに Saturation on Overflow analyzed 表が作成されます。選択した [整数オーバーフローで飽和] パラメーターで各ブロックの表が作成されます。

Saturation on Overflow analyzed 表には、ブロックが整数オーバーフローで飽和した回数が表示され、真判定を示します。ブロックが整数オーバーフローで飽和していない場合、表は偽判定を示します。発生しなかった結果は、赤色で強調表示されたテーブル行に表示されます。

次の図は、sldemo_fuelsys モデル例の Engine Gas Dynamics サブシステムの Mixing & Combustion サブシステムにある MinMax ブロックの Saturation on Overflow analyzed 表を示しています。

MinMax block receives 50% Saturation on integer overflow coverage.

目的のブロックを表示および強調表示するには、そのブロックの Saturation on Overflow analyzed 表がある節の最上部にあるブロック名をクリックします。

信号範囲解析

[信号範囲] カバレッジ メトリクスが選択されている場合、モデル カバレッジ レポートの最後に Signal Range Analysis 節が作成されます。この節には、シミュレーション時に測定されたモデルの出力信号ごとの信号値の最大値と最小値が表示されます。

Signal Range Analysis レポートに簡単にアクセスするには、モデル カバレッジ レポートの最上部にあるスクロールしない領域の [信号範囲] リンクを使用します。sldemo_fuelsys モデル例レポートでの例を以下に示します。

各ブロックは階層構造で示されていて、子ブロックは親ブロックの直下に表示されます。"信号範囲" レポートでは各ブロック名がリンクになっています。たとえば、EGO sensor リンクを選択すると、このブロックが元のブロック線図内で強調表示されます。

可変次元信号の信号サイズ カバレッジ

[信号サイズ]を選択すると、モデル カバレッジ レポートの信号範囲データの後に [可変信号の幅] 節が作成されます。この節には、モデルの出力端子のうち可変サイズの信号がある端子のすべてについて、信号サイズの最大値と最小値が表示されます。また、Simulink によりその信号に割り当てられたメモリの量が表示されます。この値はシミュレーション時の測定値です。このリストには、シミュレーション中にサイズが変動しない信号は表示 "されません"。

次の例では、カバレッジ レポートに [可変信号の幅] 節が表示されています。この例では、Abs ブロックの信号サイズは 2 ~ 5 の間で変動していて、割り当てられているメモリは 5 です。

各ブロックは階層構造で示されていて、子ブロックは親ブロックの直下に表示されます。[可変信号の幅] リストに表示されているブロック名はそれぞれリンクになっています。リンクをクリックすると、Simulink エディターで該当するブロックが強調表示されます。解析後、可変サイズの信号の線幅が太くなって表示されます。

Simulink Design Verifier カバレッジ

[オブジェクティブと制約] を選択すると、解析によりモデル内のすべての Simulink Design Verifier ブロックのカバレッジ データが収集されます。

この仕組みの例は、sldvdemo_debounce_testobjblks モデルを参照してください。

このモデルには、2 つの Test Objective ブロックがあります。

  • True ブロック: 値が 2 である信号のプロパティを定義します。

  • Edge ブロック: Masked Objective サブシステム内にあります。このブロックは、Masked Objective サブシステムの AND ブロックの出力が 2 から 1 に変わるプロパティを表します。

Simulink Design Verifier ソフトウェアはこのモデルを解析し、特定のテスト オブジェクティブを達成するテスト ケースがあるハーネス モデルを生成します。元のモデルがこれらのオブジェクティブを達成しているか確認するには、ハーネス モデルのシミュレーションを実行してモデル カバレッジ データを収集します。モデル カバレッジ ツールは、Test Objective ブロックで指定した間隔内にある判定点または値を解析します。

この例では、信号値が少なくとも 1 回は 2 になっているため、カバレッジ レポートでは True ブロックのカバレッジが 100% となっています。この信号値は、14 のタイム ステップのうち 6 つで 2 となっています。

Edge ブロックへの入力信号の値は、14 のタイム ステップのうちの 1 つで True となっています。