このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
既存テスト スイートの拡張
この例では、Simulink® Design Verifier™ を使用して既存のテスト スイートを拡張し、未達モデル カバレッジを取得する方法を示します。
モデル例を解析して、フル カバレッジを達成するテスト スイートを生成します。次に、モデルを変更し、テスト ケースでフル カバレッジが達成されないようにします。最後に、Simulink® Design Verifier™ を使用して、変更したモデルを解析し、未達カバレッジを取得します。
初期テスト スイートの生成
sldvdemo_cruise_control
モデルを解析し、フル モデル カバレッジを達成するテスト スイートを生成します。モデルを解析してモデル カバレッジを提供するテスト ケースを生成するには、関数 sldvrun
を使用します。sldvoptions
で設計検証パラメーターを設定します。
open_system 'sldvdemo_cruise_control'; opts = sldvoptions; opts.Mode = 'TestGeneration'; opts.ModelCoverageObjectives = 'MCDC'; opts.SaveHarnessModel = 'off'; opts.SaveReport = 'off'; [ status, files ] = sldvrun('sldvdemo_cruise_control', opts, true);
テスト生成解析結果が [Simulink Design Verifier の結果の概要] ウィンドウに表示されます。
close_system('sldvdemo_cruise_control',0);
フル カバレッジの検証
関数 sldvruntest
は、既存のテスト スイートを使用してモデルをシミュレートします。関数 cvhtml
が生成するカバレッジ レポートは、sldvdemo_cruise_control
モデルの初期カバレッジを示します。
open_system 'sldvdemo_cruise_control'; [ outData, initialCov ] = sldvruntest('sldvdemo_cruise_control', files.DataFile, [], true); cvhtml('Initial coverage',initialCov); close_system('sldvdemo_cruise_control',0);
モデルの変更
変更した sldvdemo_cruise_control_mod
モデルを読み込みます。コントローラーのターゲット速度値は、Saturation
ブロックを使用して 70 に制限されています。
load_system 'sldvdemo_cruise_control_mod'; load_system 'sldvdemo_cruise_control_mod/Controller';
既存テスト スイートが実現するカバレッジの測定
関数 sldvruntest
は、既存のテスト スイートおよび sldvdemo_cruise_control
モデルと同じ入力を使用して、変更した sldvdemo_cruise_control_mod
モデルをシミュレートします。関数 cvhtml
が生成するカバレッジ レポートは、変更した sldvdemo_cruise_control_mod
モデルがフル カバレッジを達成しないことを示します。
[ outData, startCov ] = sldvruntest('sldvdemo_cruise_control_mod', files.DataFile, [], true); cvhtml('Coverage with the original testsuite',startCov);
既存テスト スイートの拡張
フル モデル カバレッジを達成するために、関数 sldvgencov
はモデルを解析し、既存のテスト スイートを拡張します。
[ status, covData, files ] = sldvgencov('sldvdemo_cruise_control_mod', opts, true, startCov);
フル カバレッジの検証
新しいテスト スイートが、変更した sldvdemo_cruise_control_mod
モデルのフル カバレッジを達成することを確認します。関数 sldvruntest
は、拡張されたテスト スイートを使用して、変更したモデルをシミュレートします。cvhtml
レポートに、sldvdemo_cruise_control_mod
モデルによって達成された総カバレッジが示されます。
[ additionalOut, additionalCov ] = sldvruntest('sldvdemo_cruise_control_mod', files.DataFile, [], true); totalCov = startCov + additionalCov; cvhtml('With additional coverage',totalCov);
例を完了するには、モデルを閉じます。
close_system('sldvdemo_cruise_control_mod');