Main Content

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

MATLAB Function ブロックのカバレッジ

この例では、モデル カバレッジと MATLAB Function ブロック内の MATLAB® コードの関係について説明します。

slvnvdemo_eml_model_coverage_demo モデルには、モデル カバレッジの動作を示すいくつかの MATLAB Function ブロックが含まれています。モデルは既にカバレッジを収集するように構成されています。[シミュレーション] タブで、[実行 (カバレッジ)] をクリックします。

シミュレーションが完了すると、[カバレッジの詳細] ペインが Simulink ウィンドウの右側に開きます。[カバレッジの詳細] で、上にスクロールしてレポートの [概要] 節を表示します。この節では、最上位モデルと各 MATLAB Function ブロックを確認できます。これらのブロックには、それぞれが示す MATLAB Function ブロック カバレッジのタイプに従って名前が付けられています。

関数カバレッジ

[Function coverage] というタイトルのブロックをクリックし、このブロックを [カバレッジの詳細] ペインに表示します。

MATLAB Function ブロックの関数は、ブロック内の各関数が判定結果を使用して少なくとも 1 回実行されるかどうかをレポートします。Function coverage ブロックでは、3 つの関数のうち 2 つが呼び出され、その結果、ブロックの判定カバレッジは 67% となります。

If ステートメント カバレッジ

[If coverage] というタイトルのブロックをクリックします。

MATLAB Function ブロック内の If ステートメントは、if ステートメントが真か偽かを示す判定カバレッジをレポートします。フル カバレッジには、if ステートメントが真になる実行が少なくとも 1 回と、偽になる実行が少なくとも 1 回必要です。else ステートメントが追加されてもカバレッジ要件は変わりません。

この MATLAB Function ブロックには 8 つの判定結果があります。8 つのうち 6 つは、3 つの If ステートメントの真と偽の結果であり、他の 2 つは 2 つの関数がそれぞれ呼び出されたことを示す判定結果です。

And-Or カバレッジ

[and-or coverage] というタイトルのブロックをクリックします。

&& が式に含まれる MATLAB Function ブロック内の If ステートメントは条件と判定カバレッジの対象となります。条件フル カバレッジでは、各条件が少なくとも 1 回真として評価され、かつ少なくとも 1 回偽として評価される必要があります。MCDC フル カバレッジでは、各条件が判定 (if ステートメント) 結果に個々に影響することが示される必要があります。

Switch-Case カバレッジ

[Switch-case coverage] というタイトルのブロックをクリックします。

MATLAB Function ブロック内の Switch-case ステートメントは、シミュレーション時に実行される case ステートメントを示す判定結果をレポートします。フル カバレッジの対象となるには、モデルで各 case ステートメントを少なくとも 1 回実行する必要があります。otherwise キーワードが使用されていない場合でも、フル カバレッジを達成するには、有効な case ステートメントがない switch ステートメントの実行が少なくとも 1 回必要です。

While カバレッジ

[While coverage] というタイトルのブロックをクリックします。

MATLAB Function ブロック内の While ステートメントは while ループの判定結果をレポートします。フル カバレッジには、while ループ式が真になる実行が少なくとも 1 回と、式が偽になる実行が少なくとも 1 回必要です。

For カバレッジ

[For Coverage] というタイトルのブロックをクリックします。

MATLAB Function ブロック内の For ステートメントはループ式の判定結果をレポートします。フル カバレッジには、ループ式が真になる実行が少なくとも 1 回と、偽になる実行が少なくとも 1 回必要です。

Assignment カバレッジ

[Assignment Coverage] というタイトルのブロックをクリックします。

&& が含まれる MATLAB Function ブロック内の代入ステートメントの論理式は条件カバレッジをレポートします。条件フル カバレッジでは、各条件が少なくとも 1 回真として評価され、かつ少なくとも 1 回偽として評価される必要があります。完全な MCDC では、各条件が親判定結果に個々に影響する必要があります。

外部 MATLAB ファイルとローカル関数または入れ子関数

外部 MATLAB ファイルと MATLAB Function ブロック内の関数によって呼び出されるローカル関数または入れ子関数は、ブロック内の残りのコードと同じように、カバレッジの対象となります。違いは、外部 MATLAB ファイルとローカル関数または入れ子関数は個別の cvdata オブジェクトを生成するため、個別のコード カバレッジ レポートであり、メイン モデル カバレッジ レポートには含まれない点です。概要レポートには、各外部 MATLAB ファイルのコード カバレッジ レポートへのリンクが含まれます。