このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
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 ファイルのコード カバレッジ レポートへのリンクが含まれます。