Main Content

Simulink Design Verifier の拡張 MCDC カバレッジ

拡張改良条件判定カバレッジ (MCDC) は、改良条件判定カバレッジを拡張したものです。テスト ブロックの場合、拡張 MCDC は、下流ブロックからのマスキング効果を回避するテスト ケースを生成し、テスト ブロックが出力に影響するようにします。

拡張 MCDC カバレッジ オブジェクティブを使用してテスト ブロックの効果を検出するには、テスト ブロックの標準的なモデル カバレッジ オブジェクティブを検討するか、解析用に独自のカスタム テスト オブジェクティブを作成することができます。詳細については、以下を参照してください。

拡張 MCDC モデル カバレッジ オブジェクティブを使用してテスト ケースを生成した後、結果を解析するには、拡張 MCDC 解析の基本的なワークフローを参照してください。

拡張 MCDC カバレッジにモデル カバレッジ オブジェクティブを使用

特定のテスト ブロックに関して、下流ブロックからのモデル カバレッジ オブジェクティブへの影響を検出できます。拡張 MCDC モデル カバレッジ オブジェクティブを使用してテスト ケースを生成すると、生成されたテスト ケースでは、下流ブロックからのマスキング効果が回避されます。モデル カバレッジ オブジェクティブは、検出サイトで検出可能です。

SwitchMinMax の各ブロックのカスケードで構成される次のモデルについて考えます。

拡張 MCDC カバレッジ用に生成されたテスト ケースにより、Switch (Simulink Coverage)テスト ブロックの判定オブジェクティブは、下流の Min ブロックおよび Max ブロックによってマスクされなくなります。生成されたテスト ケースにより、Min および Max ブロックに関する以下のマスキングなしの条件は達成されます。

  1. F < D。Min ブロックが Switch 出力をマスクしないようにします。

  2. G > E。Max ブロックが Min 出力をマスクしないようにします。

Switch ブロックの判定オブジェクティブと Min ブロックおよび Max ブロックのマスキングなしの条件は、パスに沿って達成され、検出サイト (Out1) で検出されます。たとえば、パスは Switch ブロックの出力信号から始まり、Min ブロックに沿って伝播して、Max ブロックの出力信号で終了します (モデル例で強調表示)。

テスト ブロックのモデル カバレッジ オブジェクティブの効果がテスト ケースによって検出サイトで検出されるため、拡張 MCDC の基準により、テスト ケースの質が向上します。拡張 MCDC 解析用にモデルを解析するには、拡張 MCDC 解析用のモデルの解析の例を参照してください。

拡張 MCDC カバレッジ用にカスタム テスト オブジェクティブを作成

拡張 MCDC は、検出サイトで検出可能なテスト ブロックの既定のカバレッジ オブジェクティブを考慮します。カスタム テスト オブジェクティブの検出可能性ステータスをチェックするために、モデル オブジェクトのテスト オブジェクティブを作成し、拡張 MCDC 解析を実行することができます。

Product ブロックと Min ブロックで構成される次のモデルについて考えます。Product ブロックには、カバレッジ オブジェクティブはありません。

Product ブロックのカスタム テスト オブジェクティブを作成して 0 より小さい出力値をレンダリングし、検出サイトでカスタム テスト オブジェクティブの効果を検出できます。

カスタム テスト オブジェクティブの作成手順

このワークフローでは、ブロックのカスタム テスト オブジェクティブの作成手順を説明します。

手順 1: カスタム テスト オブジェクティブを作成するために、Atomic マスク サブシステムのライブラリを作成します。マスク サブシステムは次のブロックで構成されています。

  • 検討対象のブロック。たとえば Product ブロックなど。

  • カスタム テスト オブジェクティブをエンコードするロジック。たとえば MATLAB Function ブロックなど。

  • Simulink® Design Verifier™Test Objective ブロック。

手順 2: マスク サブシステムで、次を行います。

  • isEnabledForDetectability パラメーターを追加して、パラメーターを On に設定します。

  • 検討対象のブロックの名前で detectBlock パラメーターを追加します。

  • detectBlock パラメーターの Evaluate 属性を Off に設定します。

手順 3: 検討対象のブロックをマスク サブシステムに置き換えるブロック置換ルールを定義します。

カスタム テスト オブジェクティブを作成するには、blkrep_rule_product_customTestObjective.m ブロック置換ルールのサンプル ファイルを使用します。ブロック置換ファイルで、rule.BlockTyperule.ReplacementPath を、実際のモデル ブロックに基づいて更新します。詳細については、サポートされていないブロックのブロック置換を参照してください。

手順 4: ブロック置換ルールを使用してモデルを構成します。[コンフィギュレーション パラメーター] ダイアログ ボックスの [Design Verifier][ブロック置換] ペインで、[ブロック置換ルールのリスト] を入力します。

手順 5: [モデル カバレッジ オブジェクティブ]Enhanced MCDC を選択して、テスト生成解析を実行します。

拡張 MCDC 用のモデルのカスタム テスト オブジェクティブの解析

この例では、sldvCustomTestObjectiveExample モデルで Product ブロックのカスタム テスト オブジェクティブを作成する方法を説明します。また、検出サイトでテスト オブジェクティブの効果を検出する方法を説明します。

1.sldvCustomTestObjectiveExample モデルを開きます。

open_system('sldvCustomTestObjectiveExample');

product_model_custom.png

Atomic マスク サブシステムのライブラリ:blkReplacementlib_customTestObjective ライブラリは、custProduct マスク サブシステムで構成されています。カスタム テスト オブジェクティブをエンコードするロジックは MATLAB Function ブロックで定義されます。getCustomTestObjectives MATLAB Function ブロックは、Test Objective ブロックの 2 つのカスタム条件で構成されています。

product_target_custom_library.png

custProduct マスク サブシステムは、次のパラメーターで事前構成されています。詳細については、マスク エディターの概要を参照してください。

masked_system_parameters.png

検討対象のブロックをマスク サブシステムに置き換えるブロック置換ルール:sldvCustomTestObjectiveExample モデルはブロック置換オプションで事前構成されています。ブロック置換ルールは、Product ブロックを custProduct マスク サブシステムに置き換える blkrep_rule_product_customTestObjective ファイルで定義されています。

block_replacement_pane.png

2.拡張 MCDC オブジェクティブ用にモデルを構成するには、[Design Verifier] タブで、[テスト生成の設定] をクリックします。[コンフィギュレーション パラメーター] ダイアログ ボックスの [Design Verifier]、[テスト生成] ペインで、[モデル カバレッジ オブジェクティブ] に対して Enhanced MCDC を選択します。[OK] をクリックします。

3.テスト ケースを生成するには、[テストの生成] をクリックします。

ソフトウェアは、テスト生成に関して置換モデルを解析します。

custom_test_authoring_results.png

4.[解析結果をモデル上で強調表示] をクリックします。Product ブロックの検出可能性を解析するには、Product ブロックをクリックします。

custom_test_authoring_product_results.png

結果には、Product ブロックのテスト オブジェクティブが検出可能と表示されます。テスト ケースが生成されます。

メモ: ブロック置換によって導入されたオブジェクティブに関しては、検証結果によってオブジェクティブのステータスを確認することはできません。したがって、テスト オブジェクティブのステータスは [達成 - シミュレーションが必要] として報告されます。検証の詳細については、Simulink Design Verifier が検証結果を使用して近似をレポートする方法を参照してください。

5.[テスト ケースを表示] をクリックします。ハーネス モデルが開き、Signal Builder ブロックにテスト ケースが表示されます。

6.[結果の概要] で [HTML] をクリックして、詳細な解析レポートを表示します。ブロック置換の概要には、置換されたブロックの詳細が示されます。

block_replacement_report.png

[テスト オブジェクティブのステータス] 節にはオブジェクティブがリストされます。検出サイトで検出可能なテスト オブジェクティブが表にまとめられています。

custom_test_authoring_report.png

関連するトピック