バリアント ブロックのモデル カバレッジ
Simulink® Coverage™ では、Variant Source ブロックや Variant Subsystem ブロックなどのバリアント ブロックを含むモデルのカバレッジ データを解析およびレポートできます。カバレッジが有効化された 1 つ以上のバリアント ブロックを含むモデルをシミュレートすると、Simulink Coverage では、バリアント ブロックのタイプと [バリアントのアクティベーションのタイミング] パラメーターに応じて、カバレッジの結果がレポートされます。
Variant Source ブロックと Variant Sink ブロックの場合、Simulink Coverage では、バリアント選択の上流のブロックと下流のブロックがそれぞれ解析されます。Variant Source ブロックと Variant Sink ブロックそのものはカバレッジの対象になりません。Variant Subsystem ブロックと Variant Model ブロックの場合、Simulink Coverage では、選択したメトリクスについてサブシステムまたは Model ブロックの内容が解析されます。
更新時とコンパイル時のバリアント
バリアント ブロックの [バリアントのアクティベーションのタイミング] パラメーターを [ブロック線図の更新]
、[ブロック線図の更新時にすべての選択肢を解析]
、または [コードのコンパイル]
に設定すると、Simulink Coverage では、シミュレーション中にアクティブなバリアント選択に対してのみカバレッジがレポートされます。
ヒント
更新時またはコンパイル時のバリアントの場合、アクティブで異なるバリアント選択をもつシミュレーションについては、カバレッジを集計できません。非アクティブなバリアント選択をテストする場合は、[バリアントのアクティベーションのタイミング] を [起動]
に設定します。
たとえば、2 つのバリアント選択をもつ Variant Subsystem ブロックを含むモデルがあるとします。Variant Subsystem ブロックの [バリアントのアクティベーションのタイミング] パラメーターは [ブロック線図の更新]
に設定されています。
Subsystem1
がシミュレーションでアクティブな場合、Subsystem1
のカバレッジの結果は示されますが、Subsystem2
の結果は示されません。
カバレッジの結果で、Subsystem1
は赤色になり、不完全なカバレッジであったことを示します。Subsystem2
は解析されなかったことを示すグレーになります。さらに、カバレッジ レポートの概要では、アクティブではなかったバリアント選択は省略されます。
バリアント ブロックの [バリアントのアクティベーションのタイミング] パラメーターを [ブロック線図の更新]
、[ブロック線図の更新時にすべての選択肢を解析]
、または [コードのコンパイル]
に設定している場合、アクティブなバリアントの変更は、モデルに対する構造的変更です。モデルのカバレッジ データが有効なのは、モデルが変更されていないか、開いてる場合に限られるため、異なるアクティブなバリアントでシミュレートされた同じモデルのカバレッジは集計できません。複数のアクティブなバリアントをテストし、それらのカバレッジを集計するには、[バリアントのアクティベーションのタイミング] パラメーターを [起動]
に変更します。
起動バリアント
バリアント ブロックの [バリアントのアクティベーションのタイミング] パラメーターを [起動]
に設定すると、Simulink Coverage では、シミュレーション中にバリアント選択がアクティブではなかった場合でも、すべてのバリアント選択に対してカバレッジがレポートされます。アクティブなバリアント選択が異なるシミュレーションでもカバレッジを集計できます。
たとえば、前の例のモデルを変更し、[バリアントのアクティベーションのタイミング] を [起動]
に設定して、Subsystem1
がシミュレーションでアクティブな場合は、更新時のバリアントをもつケースと同じカバレッジを Subsystem1
に対して取得します。ただし、Simulink Coverage では、非アクティブなバリアント Subsystem2
もレポートされます。
カバレッジの結果で、Subsystem1
と Subsystem2
はどちらも、不完全なカバレッジを示す赤色になります。カバレッジ レポートの概要には、両方のバリアント選択が含まれます。
非アクティブなバリアントは、シミュレーション時に実行されていなかったため、カバレッジは 0% になります。Variant_Subsystem
についてレポートされたカバレッジを拡大するには、アクティブなバリアントとして Subsystem2
を含むモデルをもう一度シミュレートして、カバレッジの結果を集計できます。
バリアントを含むモデルのカバレッジ レポートのカスタマイズ
バリアント ブロックを使用するモデルのカバレッジ レポートを作成する場合、複数のシミュレーションからカバレッジ データを集計して、非アクティブなバリアントを含めるか除外するかを指定できます。
カバレッジ レポートから非アクティブなバリアントを除外する
更新時とコンパイル時の Simulink バリアントの非アクティブなコンフィギュレーションはカバレッジ レポートから除外されます。
[バリアントのアクティベーションのタイミング] パラメーターが [起動]
に設定された Simulink バリアント ブロックと Stateflow® チャートのバリアント コンフィギュレーションの場合、カバレッジ レポートには非アクティブなバリアントの選択肢が既定で含まれています。[バリアントの非アクティブな選択肢を除外] パラメーターを選択して、カバレッジ レポートから非アクティブなバリアントの選択肢を除外するよう選択できます。
[コンフィギュレーション パラメーター] ウィンドウで、左側のペインにある [カバレッジ] をクリックします。
[詳細設定パラメーター] を展開して、[バリアントの非アクティブな選択肢を除外] を選択します。
以下を入力することにより、このパラメーターはプログラムでも設定できます。
set_param(modelName,'CovExcludeInactiveVariants',1)
シミュレーション完了後に以下のいずれかの方法を使用して Simulink 起動バリアントと Stateflow チャートのバリアント コンフィギュレーションのレポート動作を変更することもできます。
カバレッジの結果エクスプローラーで、[バリアントの非アクティブな選択肢を除外] をオンまたはオフにします。
カバレッジ レポートを生成する前に
cvdata
オブジェクトでexcludeInactiveVariants
プロパティの値を変更します。Simulink Test でテスト マネージャーを使用している場合は、テスト ブラウザーの結果の概要レベルで [カバレッジの結果の集計] の下にある [非アクティブなバリアントを除外] を選択します。
バリアントを含むモデルのカバレッジ データの集計
Simulink バリアントおよび Stateflow チャートのバリアント コンフィギュレーションを含むモデルのカバレッジ データを集計するには、次の 2 つの方法があります。
[コンフィギュレーション パラメーター] ダイアログ ボックスで [カバレッジ] をクリックし、[詳細設定パラメーター] を展開して [累積データをカバレッジ レポートに含める] パラメーターを選択します。このパラメーターが選択されている状態で 2 つ以上のシミュレーションを実行すると、[カバレッジの詳細] にこれらのシミュレーションに対するカバレッジの結果の集計が表示されます。
カバレッジ解析をプログラムにより実行し、
+
演算子を使用してcvdata
オブジェクトを集計する。
+
演算子を使用するか [バリアントの非アクティブな選択肢を除外] パラメーターを変更することにより、excludeInactiveVariants
プロパティの値が異なる 2 つの cvdata
オブジェクトを集計すると、結果として得られる集計された cvdata
オブジェクトでは、このプロパティが値 0
に設定されます。その結果、1 つのシミュレーションに対して [バリアントの非アクティブな選択肢を除外] パラメーターが選択されていた場合でも、このパラメーターが選択されていないかのようにカバレッジ レポートの集計に非アクティブなバリアントが表示されます。
関連するトピック
参考
cvdata
| Variant Subsystem, Variant Model, Variant Assembly Subsystem | Variant Source | Variant Sink