Main Content

正当化規則を使用したコード カバレッジ結果のフィルター

この例では、ソフトウェアインザループ (SIL) モードまたはプロセッサインザループ (PIL) モードでモデルのカバレッジを収集した後で、カバレッジ レポートのコード カバレッジの結果にフィルターをかける方法を説明します。

コード カバレッジ データの生成

まず、モデルを SIL/PIL モードにします。Simulink® ウィンドウで [アプリ] をクリックし、[コードの検証とテスト][SIL/PIL マネージャー] をクリックします。[SIL/PIL] タブで、[自動検証][SIL/PIL シミュレーションのみ] に変更します。

このモデル例では、カバレッジは既定で有効になっています。独自のモデルを使用している場合は、[コンフィギュレーション パラメーター] ウィンドウでカバレッジを有効にしてください。カバレッジの設定の詳細については、カバレッジ オプションの指定を参照してください。

[SIL/PIL を実行] をクリックし、モデルをシミュレートしてカバレッジを収集します。モデルをシミュレートすると、Simulink® モデルの横にドッキングされたペインが開きます。[カバレッジの詳細] タブをクリックして、コード カバレッジ レポートを表示します。

### Starting build procedure for: slvnvdemo_counter
### Successful completion of build procedure for: slvnvdemo_counter

Build Summary

Top model targets built:

Model              Action                        Rebuild Reason                                    
===================================================================================================
slvnvdemo_counter  Code generated and compiled.  Code generation information file does not exist.  

1 of 1 models built (0 models already up to date)
Build duration: 0h 0m 16.451s
### Preparing to start SIL simulation ...
Building with 'gcc'.
MEX completed successfully.
### Updating code generation report with SIL files ...
### Starting SIL simulation for component: slvnvdemo_counter
### Stopping SIL simulation for component: slvnvdemo_counter
### Completed code coverage analysis

カバレッジ フィルターを使用した未達コード カバレッジの正当化

防御的なモデル設計や例外処理など、意図的に到達不能にしたロジックがモデルに含まれる場合、カバレッジ フィルターを使用して、この未達カバレッジを正当化することができます。

コード カバレッジ レポートの [概要] 節は、各ソース ファイルおよび関数にリンクしています。この例では、slvnvdemo_counter_step をクリックします。コード カバレッジ レポートから slvnvdemo_counter_step という名前の関数にジャンプします。節 2.1 で、判定 (!(slvnvdemo_counter_U.upper >=z rtb_input)) || (!rtb_inputGElower)| 内の両方の条件がすべてのタイム ステップで偽となっていることが確認できます。

未達カバレッジの結果を正当化するには、条件 slvnvdemo_counter_U.upper >= rtb_input の横にある [条件解析] テーブルで、[正当化規則を追加] アイコンをクリックします。カバレッジの結果エクスプローラーが開き、条件 slvnvdemo_counter_U.upper >= rtb_inputfalse の結果を正当化するフィルター規則が作成されます。

[フィルター エディター] ペインで、[名前] フィールドを myCodeCovFilter に設定します。[説明] フィールドには、任意の説明テキストを設定できます。[フィルタ―の規則] セクションには [モデル][コード] の 2 つのタブがあります。このケースではコード カバレッジ レポートからフィルターをかけているため、フィルターは [コード] タブに表示されます。[根拠] フィールドをダブルクリックすると、"予期される結果" などの理由を追加できます。

[フィルター エディター] 上部の [ファイル名] フィールドの下にある [名前を付けて保存] をクリックします。[フィルターの保存] ウィンドウで、フィルター ファイルに myCodeCovFilter という名前を付けます。フィルター名とフィルター ファイル名が同じである必要はないことに注意してください。

フィルターを保存すると、コード カバレッジ レポートが更新され、正当化された結果が表示されます。

rtb_inputGElower の横にある [正当化規則を追加] フィルターをクリックし、上記の手順に従って 2 番目の条件の偽のケースを正当化します。この 2 番目の規則は、最初の規則で作成したものと同じフィルター ファイルに追加されます。

カバレッジ フィルターを適用した後に新しいコード カバレッジ レポートを作成するには、カバレッジの結果エクスプローラーの左側のペインで [現在の累積データ (H)] をクリックし、次に [カバレッジ データ] ペイン下部の [レポートの生成] をクリックします。このリンクによって、レポートのアーカイブまたは共有に使用できるスタンドアロンのレポートが作成されます。

コード カバレッジ レポートの [概要] 節には、フィルター規則によって向上した条件カバレッジが反映されます。

また、コード カバレッジ レポートに [カバレッジ解析からフィルターで除外されたオブジェクト] というタイトルの節が表示され、フィルター規則と根拠が示されるようになりました。