このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
時相論理を含むモデルのテスト ケースの拡張
開始テスト ケースの作成
この例では、sldvdemo_sbr_extend_design モデルを使用します。このモデルには、時相論理を使用する Stateflow® チャート SBR が含まれます。Stateflow チャートのシミュレーションが 500 回 実行されると、KEY_OFF 状態から KEY_ON 状態への遷移が発生します。この遷移をテストするには、500 のタイム ステップをもつテスト ケースが必要です。
この例では、テスト ケースの期間中 KEY 入力を 1 に設定して、KEY_ON に遷移させるテスト ケースを作成します。このテスト ケースを使用して、モデルのシミュレーションを実行して KEY_OFF/KEY_ON の遷移のオブジェクティブを達成させます。その後、作成したテスト ケースで既に達成されているオブジェクティブを無視してモデルを解析します。
モデル例を開きます。
openExample('sldv/DefiningExtendingExistingTestsCasesExample',... 'supportingFile','sldvdemo_sbr_extend_design');
SBRStateflow チャートを開いてKEY_OFF/KEY_ONの遷移を表示します。
モデル参照のハーネス モデルを作成します。
[~, harnessModelFilePath] = ... sldvmakeharness('sldvdemo_sbr_extend_design',[],[],true);
ハーネス モデル
sldvdemo_sbr_extend_design_harnessには、次が含まれます。元のモデル
sldvdemo_sbr_extend_designを参照する Test Unit という名前の Model ブロック。
Model ブロックで参照されるモデルへのテスト ケース入力を含む Inputs という名前の Signal Editor ブロック。

最初、Signal Editor ブロックには既定のテスト ケースのみが含まれ、3 つの入力はすべて
0に設定されています。テスト ケースを記述する Test Case Explanation という名前の DocBlock ブロック。

最初、Test Case Explanation ブロックには既定のテスト ケースについてのコンテンツはありません。
sldvmakeharnessはharnessModelFilePath内のハーネス モデル ファイルへのパスを返します。後で使用するために、ハーネス モデル ファイルの名前をharnessModelに抽出します。[~, harnessModel] = fileparts(harnessModelFilePath);
KEY_OFF から KEY_ON への状態の遷移を解析するために、Signal Editor ブロックで 500 のタイム ステップで KEY_ON 状態に遷移するテスト ケースを作成します。Signal Editor ブロックを閉じます。
開始テスト ケースのログ
次のステップは、作成した開始テスト ケースのログを記録することです。その後の解析の実行時に、そのテスト ケースが達成したオブジェクティブを Simulink® Design Verifier™ が無視するように指定することができます。
関数 sldvlogsignals は、sldvData 構造体を含む MAT ファイルにテスト ケース データを記録します。この構造体には、解析時に収集および生成されたすべてのデータが格納されます。
開始テスト ケースのログは次の手順で記録します。
sldvdemo_sbr_extend_designモデルを参照するハーネス モデルの Model ブロックの名前を保存します。[~, modelBlock] = find_mdlrefs(harnessModel, false);
新しいテスト ケースを使用して Model ブロックで参照されるモデルのシミュレーションを実行し、ワークスペース変数
loggeddataの入力信号をログに記録します。loggeddata = sldvlogsignals(modelBlock{1});existingtestcase.matという名前の MAT ファイルにログ データを保存します。save('existingtestcase.mat', 'loggeddata');
sldvdemo_sbr_extend_designモデルを解析するときにこのファイルを指定します。
既存テスト ケースの拡張
ここで、sldvdemo_sbr_extend_design モデルを解析して、既に達成されているテスト ケースを解析で拡張するように指定できます。解析ではまず既存テスト ケース データを使用し、SBR Stateflow チャートの KEY_OFF から KEY_ON への遷移のテスト ケースを生成しようとはしません。
開始テスト ケースを指定してモデルを解析します。
モデルを開きます。
open_system('sldvdemo_sbr_extend_design');[Design Verifier] タブで、[テスト生成の設定] をクリックします。
[コンフィギュレーション パラメーター] ダイアログ ボックスの [テスト生成] ペインの [未達カバレッジのテストを追加] の下で、[既存のテスト データを使用して拡張] を選択します。
[テスト データ] フィールドで、ログ データを含む MAT ファイルの名前を入力します。
existingtestcase.mat
[既存のテスト/カバレッジ データで達成されたオブジェクティブをレポート内で区別] をオフにします。
このオプションをオフにすると、最終的なテスト スイートに開始テスト ケースが含まれます。完全なテスト スイートにより 100% のモデル カバレッジが達成されることが示されます。
[OK] をクリックして [コンフィギュレーション パラメーター] ダイアログ ボックスを閉じます。
sldvdemo_sbr_extend_designモデルを MATLAB® パス上にsldvdemo_sbr_extend_design_testという名前で保存します。[テストの生成] をクリックします。
ログ ウィンドウには、最初に開始テスト ケースで達成されたオブジェクティブがリストされます。

次に開始テスト ケース外で生成されたオブジェクティブがリストされます。
解析結果の検証
この解析で完全なテスト スイートが作成されたことを確認するため、ハーネス モデルを生成して生成されたテスト ケースでモデルをシミュレートできるようにします。
[Design Verifier] タブの [結果の確認] セクションで、[テスト ハーネス モデルの作成] をクリックします。
ハーネス モデル
sldvdemo_sbr_extend_design_test_harnessで、Inputs という名前の Signal Editor ブロックを開きます。すべてのテスト ケースを使用してモデルをシミュレートするには、[すべてを実行しカバレッジを生成] ボタンをクリックします。
シミュレーションが完了すると、モデル カバレッジ レポートが表示されます。
sldvdemo_sbr_extend_design_testモデルのカバレッジ情報を表示して、完全なテスト スイートが 100% のカバレッジを達成していることを確認します。