正当化規則を使用したコード カバレッジ結果のフィルター
この例では、ソフトウェアインザループ (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_input
の false
の結果を正当化するフィルター規則が作成されます。
[フィルター エディター] ペインで、[名前] フィールドを myCodeCovFilter
に設定します。[説明] フィールドには、任意の説明テキストを設定できます。[フィルタ―の規則] セクションには [モデル] と [コード] の 2 つのタブがあります。このケースではコード カバレッジ レポートからフィルターをかけているため、フィルターは [コード] タブに表示されます。[根拠] フィールドをダブルクリックすると、"予期される結果" などの理由を追加できます。
[フィルター エディター] 上部の [ファイル名] フィールドの下にある [名前を付けて保存] をクリックします。[フィルターの保存] ウィンドウで、フィルター ファイルに myCodeCovFilter
という名前を付けます。フィルター名とフィルター ファイル名が同じである必要はないことに注意してください。
フィルターを保存すると、コード カバレッジ レポートが更新され、正当化された結果が表示されます。
rtb_inputGElower
の横にある [正当化規則を追加] フィルターをクリックし、上記の手順に従って 2 番目の条件の偽のケースを正当化します。この 2 番目の規則は、最初の規則で作成したものと同じフィルター ファイルに追加されます。
カバレッジ フィルターを適用した後に新しいコード カバレッジ レポートを作成するには、カバレッジの結果エクスプローラーの左側のペインで [現在の累積データ (H)] をクリックし、次に [カバレッジ データ] ペイン下部の [レポートの生成] をクリックします。このリンクによって、レポートのアーカイブまたは共有に使用できるスタンドアロンのレポートが作成されます。
コード カバレッジ レポートの [概要] 節には、フィルター規則によって向上した条件カバレッジが反映されます。
また、コード カバレッジ レポートに [カバレッジ解析からフィルターで除外されたオブジェクト] というタイトルの節が表示され、フィルター規則と根拠が示されるようになりました。