Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

パラメーター コンフィギュレーションの適用後の既存テスト ケースの拡張

この例では、パラメーター コンフィギュレーションの適用後に既存のテスト ケースを拡張することで、未達カバレッジをアーカイブする方法を説明します。

この例では、モデルのテスト ケースを生成し、解析結果を確認します。結果には、達成されないオブジェクティブから構成されるモデルが示され、フル カバレッジは達成されません。次に、モデルのパラメーター コンフィギュレーションを適用し、以前生成されたテストケースを再利用してフル モデル カバレッジを達成します。

手順 1: 最初のテスト ケースの生成と結果の確認

sldvexParameterController モデルは、P コントローラーまたは PI コントローラーを選択してスロットル速度を制御するクルーズ コントロール モデルです。ControllerModeSelection サブシステムは、SelectMode パラメーターを使用して、コントローラー モードを選択します。関数 Simulink.defineIntEnumType を使用して、Selectmode の列挙データ型を定義します。列挙値の詳細については、Simulink モデルでの列挙型データの使用を参照してください。

Simulink.defineIntEnumType('EnumForControllerSelection',...
{'Pmode','PImode'},[1;2]);
SelectMode = Simulink.Parameter;
SelectMode.Value = EnumForControllerSelection.Pmode;
model = 'sldvexParameterController';
open_system(model);

sldvoptions を設定し、指定したオプションを使用してモデルを解析します。

opts = sldvoptions;
opts.Mode = 'TestGeneration';
opts.ModelCoverageObjectives = 'MCDC';
[ status, files ] = sldvrun(model, opts, true);

解析が完了すると、[検証結果の概要] ウィンドウに 54 のオブジェクティブのうち 15 が達成されないと表示されます。

[検証結果の概要] ウィンドウで、[解析結果をモデル上で強調表示] をクリックします。ControllerModeSelection サブシステムをダブルクリックします。PI_ModeSelection サブシステムと P_ModeSelection サブシステムが赤で強調表示され、達成されないオブジェクティブから構成されます。

モデル カバレッジ レポートを表示するには、[検証結果の概要] ウィンドウで、[テストをシミュレートしてモデル カバレッジ レポートを生成] をクリックします。レポートには、このモデルではフル カバレッジが達成されないことが示されます。

フル カバレッジが達成されないのは、パラメーター値 SelectModeEnumForControllerSelection.Pmode の既定値に制限されているためです。したがって、PI_ModeSelection サブシステムはフル カバレッジを達成していません。

手順 2: パラメーター コンフィギュレーションの設定と既存のテスト ケースの拡張

パラメーター コンフィギュレーションを適用するには、Simulink Design Verifier は解析中にパラメーターを変数として扱い、指定する制約値に基づいて値を制限します。

parameterValue の制約値を指定して、SelectMode パラメーターのパラメーター コンフィギュレーションを適用します。

controlParameter = [ {'SelectMode'}];
parameterValue = [ {'[EnumForControllerSelection.Pmode EnumForControllerSelection.PImode]'}];
opts.Parameters = 'on';
opts.ParametersUseConfig = 'on';
opts.ParameterNames = controlParameter;
opts.ParameterConstraints = parameterValue;
opts.ParameterUseInAnalysis = {'on'};

以前に生成されたテスト ケースを再利用するには、解析オプションを設定して既存のテスト ケースを拡張し、既存のテスト ファイルを指定します。

opts.ExtendExistingTests = 'on';
opts.IgnoreExistTestSatisfied = 'off';
opts.ExistingTestFile = files.DataFile;

手順 3: 解析の実行とカバレッジ レポートの確認

指定されたオプションを使用してモデルを解析します。

[status, fileNames] = sldvrun(model, opts, true);

解析が完了すると、[検証結果の概要] ウィンドウにすべてのオブジェクティブが達成されたことが表示されます。

モデル カバレッジ レポートを生成するには、[テストをシミュレートしてモデル カバレッジ レポートを生成] をクリックします。レポートには、フル カバレッジが達成されることが示されます。

この例を終了するには、モデルを閉じます。

close_system('sldvexParameterController', 0);

参考