Main Content

バリアント ブロックのモデル カバレッジ

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 ブロックの [バリアントのアクティベーションのタイミング] パラメーターは [ブロック線図の更新] に設定されています。

Simulink model containing a variant subsystem. A graphic shows that the variant subsystem expands into two variant choices.

Subsystem1 がシミュレーションでアクティブな場合、Subsystem1 のカバレッジの結果は示されますが、Subsystem2 の結果は示されません。

カバレッジの結果で、Subsystem1 は赤色になり、不完全なカバレッジであったことを示します。Subsystem2 は解析されなかったことを示すグレーになります。さらに、カバレッジ レポートの概要では、アクティブではなかったバリアント選択は省略されます。

Coverage report summary showing Subsystem 1 has 50% decision and 100% block execution coverage. Subsystem 2 is omitted from the summary.

バリアント ブロックの [バリアントのアクティベーションのタイミング] パラメーターを [ブロック線図の更新][ブロック線図の更新時にすべての選択肢を解析]、または [コードのコンパイル] に設定している場合、アクティブなバリアントの変更は、モデルに対する構造的変更です。モデルのカバレッジ データが有効なのは、モデルが変更されていないか、開いてる場合に限られるため、異なるアクティブなバリアントでシミュレートされた同じモデルのカバレッジは集計できません。複数のアクティブなバリアントをテストし、それらのカバレッジを集計するには、[バリアントのアクティベーションのタイミング] パラメーターを [起動] に変更します。

起動バリアント

バリアント ブロックの [バリアントのアクティベーションのタイミング] パラメーターを [起動] に設定すると、Simulink Coverage では、シミュレーション中にバリアント選択がアクティブではなかった場合でも、すべてのバリアント選択に対してカバレッジがレポートされます。アクティブなバリアント選択が異なるシミュレーションでもカバレッジを集計できます。

たとえば、前の例のモデルを変更し、[バリアントのアクティベーションのタイミング][起動] に設定して、Subsystem1 がシミュレーションでアクティブな場合は、更新時のバリアントをもつケースと同じカバレッジを Subsystem1 に対して取得します。ただし、Simulink Coverage では、非アクティブなバリアント Subsystem2 もレポートされます。

カバレッジの結果で、Subsystem1Subsystem2 はどちらも、不完全なカバレッジを示す赤色になります。カバレッジ レポートの概要には、両方のバリアント選択が含まれます。

Coverage report summary showing the top model has 30% decision coverage, the variant subsystem has 25% decision coverage, the variant child Subsystem 1 has 50% decision coverage, and the variant child Subsystem 2 has 0% decision coverage.

非アクティブなバリアントは、シミュレーション時に実行されていなかったため、カバレッジは 0% になります。Variant_Subsystem についてレポートされたカバレッジを拡大するには、アクティブなバリアントとして Subsystem2 を含むモデルをもう一度シミュレートして、カバレッジの結果を集計できます。

Aggregated Tests and Summary sections of the coverage report. Coverage results from two simulations aggregated together show the top model has 60% decision coverage, the variant subsystem has 50% decision coverage, the variant child Subsystem 1 has 50% decision coverage, and the variant child Subsystem 2 has 50% decision coverage.

バリアントを含むモデルのカバレッジ レポートのカスタマイズ

バリアント ブロックを使用するモデルのカバレッジ レポートを作成する場合、複数のシミュレーションからカバレッジ データを集計して、非アクティブなバリアントを含めるか除外するかを指定できます。

カバレッジ レポートから非アクティブなバリアントを除外する

更新時とコンパイル時の Simulink バリアントの非アクティブなコンフィギュレーションはカバレッジ レポートから除外されます。

[バリアントのアクティベーションのタイミング] パラメーターが [起動] に設定された Simulink バリアント ブロックと Stateflow® チャートのバリアント コンフィギュレーションの場合、カバレッジ レポートには非アクティブなバリアントの選択肢が既定で含まれています。[バリアントの非アクティブな選択肢を除外] パラメーターを選択して、カバレッジ レポートから非アクティブなバリアントの選択肢を除外するよう選択できます。

  1. [コンフィギュレーション パラメーター] ウィンドウで、左側のペインにある [カバレッジ] をクリックします。

  2. [詳細設定パラメーター] を展開して、[バリアントの非アクティブな選択肢を除外] を選択します。

以下を入力することにより、このパラメーターはプログラムでも設定できます。

set_param(modelName,'CovExcludeInactiveVariants',1)
Simulink Test™ でテスト マネージャーを使用している場合は、テスト ファイル レベルのカバレッジ設定で [非アクティブなバリアントを除外] を選択できます。詳細については、Coverage Settings (Simulink Test)を参照してください。

シミュレーション完了後に以下のいずれかの方法を使用して Simulink 起動バリアントと Stateflow チャートのバリアント コンフィギュレーションのレポート動作を変更することもできます。

  • カバレッジの結果エクスプローラーで、[バリアントの非アクティブな選択肢を除外] をオンまたはオフにします。

  • カバレッジ レポートを生成する前に cvdata オブジェクトで excludeInactiveVariants プロパティの値を変更します。

  • Simulink Test でテスト マネージャーを使用している場合は、テスト ブラウザーの結果の概要レベルで [カバレッジの結果の集計] の下にある [非アクティブなバリアントを除外] を選択します。

バリアントを含むモデルのカバレッジ データの集計

Simulink バリアントおよび Stateflow チャートのバリアント コンフィギュレーションを含むモデルのカバレッジ データを集計するには、次の 2 つの方法があります。

  • [コンフィギュレーション パラメーター] ダイアログ ボックスで [カバレッジ] をクリックし、[詳細設定パラメーター] を展開して [累積データをカバレッジ レポートに含める] パラメーターを選択します。このパラメーターが選択されている状態で 2 つ以上のシミュレーションを実行すると、[カバレッジの詳細] にこれらのシミュレーションに対するカバレッジの結果の集計が表示されます。

  • カバレッジ解析をプログラムにより実行し、+ 演算子を使用して cvdata オブジェクトを集計する。

+ 演算子を使用するか [バリアントの非アクティブな選択肢を除外] パラメーターを変更することにより、excludeInactiveVariants プロパティの値が異なる 2 つの cvdata オブジェクトを集計すると、結果として得られる集計された cvdata オブジェクトでは、このプロパティが値 0 に設定されます。その結果、1 つのシミュレーションに対して [バリアントの非アクティブな選択肢を除外] パラメーターが選択されていた場合でも、このパラメーターが選択されていないかのようにカバレッジ レポートの集計に非アクティブなバリアントが表示されます。

関連するトピック

参考

| | |