ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

既存テスト スイートの拡張

この例では、Simulink Design Verifier を使用して、未達モデル カバレッジを達成させるようにテスト スイートを拡張する方法を示します。この方法は、モデルの変更時にテスト データを再利用し、テスト生成をそのモデルの新しい部分や変更された部分のみに対して行うようにできます。

この例では、モデルの初期テスト スイートを作成するところから始めます。モデルを変更し、テスト スイートでフル カバレッジが提供されないようにします。その後、テスト ケースをテスト スイートに追加して変更されたモデルのカバレッジを再度フル カバレッジにするように Simulink Design Verifier に指示します。

初期テスト スイートの作成

クルーズ コントロール モデルを開き、フル カバレッジを実現するテスト スイートを生成します。

opts = sldvoptions;
opts.Mode = 'TestGeneration';
opts.ModelCoverageObjectives = 'MCDC';
opts.SaveHarnessModel = 'off';
opts.SaveReport = 'off';

open_system 'sldvdemo_cruise_control';
[ status, files ] = sldvrun('sldvdemo_cruise_control', opts);
Starting test generation for model "sldvdemo_cruise_control"

Compiling model...done
Translating model...done
Generating tests...
..................................

Test generation completed normally.

Generating output files:

    Data file:
    C:\Work\Altcweb\matlab\toolbox\sldv\sldvdemos\sldv_output\sldvdemo_cruise_control\sldvdemo_cruise_control_sldvdata7.mat

Results generation completed.

カバレッジのチェック

テスト スイートでモデルの有効範囲が完全にカバーされていることをチェックします。関数 sldvruntest は、テスト スイートの任意のテスト ケースのデータを使用して、シミュレーションを実行します。また、完全なテスト スイートを実行して、カバレッジの累積も測定できます。

[ outData, initialCov ] = sldvruntest('sldvdemo_cruise_control', files.DataFile, [], true);
cvhtml('Initial coverage', initialCov);
close_system('sldvdemo_cruise_control', 0);

モデルの変更

変更されたクルーズ コントロール モデルを開きます。変更されたモデルでは、ターゲット速度の値は 70 を超えません。

open_system 'sldvdemo_cruise_control_mod.mdl';

既存テスト スイートが実現するカバレッジの測定

関数 sldvruntest を使用して、変更されたモデルに対し初期テスト スイートが達成するカバレッジを測定します。これはどちらのモデルも同じ入力を使用するため、簡単にできます。初期テスト スイートが手書きの場合や Simulink Design Verifier 以外のツールで生成されている場合は、関数 cvsim を使用してこの手順を行うことができます。

[ 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, false, startCov);

フル カバレッジの検証

新しいテスト スイートが変更されたモデルの有効範囲を完全にカバーしていることを検証します。sldvruntest を使用して、新しいテスト スイートが提供するカバレッジを測定してから、それを元のカバレッジに追加します。

[ additionalOut, additionalCov ] = sldvruntest('sldvdemo_cruise_control_mod', files.DataFile, [], true);
totalCov = startCov + additionalCov;
cvhtml('With additional coverage', totalCov);
close_system('sldvdemo_cruise_control_mod', 0);
この情報は役に立ちましたか?