累積カバレッジ解析
この例では、カバレッジの結果エクスプローラーを使用して、複数回のカバレッジ実行にまたがる累積カバレッジのデータおよびレポートを簡単に生成する方法を説明します。
モデル例を開く
この例では、slvnvdemo_ratelim_harness
モデルを使用して、カバレッジを累積するための設定およびオプションについて説明します。このモデルの内部には、Adjustable Rate Limiter の実装があります。これは、3 つの Switch ブロックを使用して、出力を制限するタイミングと、適用する制限のタイプを制御します。
入力は、3 つの From Workspace ブロック (gain、rising limit および falling limit) を使用して生成されます。入力の値は、MATLAB® ワークスペースで定義されている 6 つの変数 (t_gain、u_gain、t_pos、u_pos、t_neg および u_neg) によって指定されます。
open_system('slvnvdemo_ratelim_harness');
open_system('slvnvdemo_ratelim_harness/Adjustable Rate Limiter');
カバレッジ解析の有効化
まず、カバレッジの設定を開きます。[モデル化] タブで、[モデル設定] を選択します。
カバレッジ ツールを有効にするには、[カバレッジ] ペインで [カバレッジ解析を有効にする] を選択します。この設定により、[カバレッジ] ペイン内の他のオプションが有効になります。
この例では、条件カバレッジと判定カバレッジを収集します。[カバレッジ メトリクス] パネルで、[構造カバレッジ レベル] を [条件判定] に設定します。
[OK] をクリックして選択した設定を適用し、このダイアログを閉じます。
最初のテスト ケースでのモデルのシミュレーション
最初のテスト ケースでは、入力値が急激に変化しないシナリオを実行します。正弦波を時変信号として使用し、立ち上がりと立ち下がりの制限に定数を使用します。
t_gain = (0:0.02:2.0)'; u_gain = sin(2*pi*t_gain);
MATLAB 関数 diff
を使用して、時変入力の最小変化と最大変化を計算します。
max_change = max(diff(u_gain)) min_change = min(diff(u_gain))
max_change = 0.1253 min_change = -0.1253
これらの最小、最大の変化率に基づいて、変化率の制限を 1
と -1
に設定します。したがって、このテスト実行に関しては、入力の変化率はこの制限内に十分に収まります。
t_pos = [0;2]; u_pos = [1;1]; t_neg = [0;2]; u_neg = [-1;-1];
[実行 (カバレッジ)] ボタンをクリックして、この最初の入力変数セットを使用してモデルをシミュレートします。
結果エクスプローラーでの最初のテスト ケースのレビュー
結果エクスプローラーを開くには、[カバレッジ アナライザー] アプリで [結果エクスプローラー] をクリックします。
この時点では、[現在の累積データ] には、この最初のカバレッジ実行 (Run 1 のタグ付き) のみが含まれています。結果エクスプローラーには、最初はこの最新のカバレッジ実行に関する情報が、有効な各メトリクスの結果の概要を含めて表示されます。
このシミュレーションの意図を追跡するために、[説明] フィールドにテキスト "Test within rate limits"
を入力し、[適用] をクリックします。
2 番目のテスト ケースでのモデルのシミュレーション
2 番目のテスト ケースでは、最初のケースに補足して、変化率の制限を超える立ち上がりゲインを使用します。直後に、変化率の制限を拡大し、ゲインの変化が制限未満になるようにします。
t_gain = [0;2]; u_gain = [0;4]; t_pos = [0;1;1;2]; u_pos = [1;1;5;5]*0.02; t_neg = [0;2]; u_neg = [0;0];
[実行 (カバレッジ)] ボタンをクリックして、この 2 番目の変数セットを使用してモデルをシミュレートします。
2 番目のテスト ケースの累積進行状況レポートの生成
複数のカバレッジ実行が行われたので、累積カバレッジ レポートを生成できます。
まず、前回のシミュレーションと同様に、この実行の簡単な説明を追加します。Run 2 の [説明] フィールドにテキスト "Test rising rate limit"
を入力し、[適用] をクリックします。
生成可能なカバレッジ レポートにはさまざまな形式があります。直近のシミュレーションが累積カバレッジ結果にどのように影響するかを可視化するには、累積進行状況レポートを生成できます。
結果エクスプローラーの [設定] で、[累積進行状況レポートの表示] を選択して [適用] をクリックします。
結果エクスプローラーの左端のペインで [現在の累積データ] をクリックします。[概要] は、Run 1 と Run 2 から累積された累積カバレッジ結果を示します。[レポートの生成] をクリックして累積進行状況レポートを作成します。
累積進行状況レポートの [概要] セクションには 3 つの列があります。[現在の実行]、[デルタ] および [累積] です。[現在の実行] 列には、[現在の累積データ] にリストされている最後のシミュレーション (このケースでは Run 2) のカバレッジが表示されます。[デルタ] 列には、現在の実行によって提示されたカバレッジのうち、このシミュレーションの前の累積結果では達成されなかったものが表示されます。[累積] 列には、現在の累積カバレッジ結果が表示されます。
3 番目のテスト ケースでのモデルのシミュレーション
3 番目のテスト ケースは 2 番目の鏡像で、立ち上がりゲインが立ち下がりゲインに置き換えられています。
t_gain = [0;2]; u_gain = [-0.02;-4.02]; t_pos = [0;2]; u_pos = [0;0]; t_neg = [0;1;1;2]; u_neg = [-1;-1;-5;-5]*0.02;
[実行 (カバレッジ)] ボタンをクリックして、この 3 番目の変数セットを使用してモデルをシミュレートします。
3 番目のテスト ケースの累積進行状況レポートの生成
再び、最新の実行の簡単な説明を追加します。Run 3 の [説明] フィールドにテキスト "Test falling rate limit"
を入力し、[適用] をクリックします。
[現在の累積データ] に移動し、[レポートの生成] をクリックして、この最新の実行の累積進行状況レポートを作成します。
この最新の実行では、累積結果は、判定、条件、実行メトリクスのフル カバレッジを達成しています。
累積データセットの調整
特定のカバレッジ実行が不要と判断した場合は、この実行を累積データセットから除外し、新しい累積レポートを生成できます。
結果エクスプローラーの [現在の累積データ] で、Run 1 を右クリックして [累積データから除外] を選択します。
最終的な累積カバレッジ レポートの生成
必要なテスト実行のサブセットを選択したので、累積結果のカバレッジ レポートを生成できます。
[設定] に移動し、[累積進行状況レポートの表示] の選択を解除して、[適用] をクリックします。
[現在の累積データ] に移動して、[レポートの生成] をクリックします。
累積カバレッジ レポートに、現在の累積データに関連する結果が表示されます。[テスト] 節の下に、"Test rising rate limit,Test falling rate limit"
という説明が付いたテストが 1 つあります。これは、このテストに 2 番目と 3 番目の実行の累積結果が含まれていることを示します。
[概要] 節は、これらの累積結果が、解析されたすべてのメトリクスのフル カバレッジを達成することを示しています。