メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

モデルのテスト カバレッジの拡大

この例では、テスト入力を生成してモデルのテスト カバレッジを拡大する方法を示します。

テストで達成されるモデル カバレッジが不完全な場合は、Simulink® Design Verifier™ を使用してテスト入力を生成することでカバレッジを拡大できます。

この例では、テスト カバレッジを最初のテスト ケースより拡大する方法を示します。テスト ケースの初期カバレッジを測定します。その後、新しいテスト ケースを生成してテスト スイートに追加し、テストを実行してカバレッジの集計を確認します。

ワークフロー

この例では、テスト ハーネスを使用して自動操縦システムのコンポーネントをテストします。テスト ハーネスのルート入力端子にベース ワークスペースからの時系列データがマッピングされています。テスト ファイルはカバレッジを収集するように構成されています。

この例のワークフローは次のとおりです。

  1. 最初のテスト ケースのモデル カバレッジを測定する。

  2. 追加のテストを生成してカバレッジを拡大する。

  3. テスト ファイルに新しいテスト ケースを追加する。

  4. すべてのテスト ケースを実行し、カバレッジの集計を確認する。

パスと例のファイル

例で使用するパスとファイル名を設定します。

rollModel = 'RollAutopilotRevised';
testHarness = 'RollReference_LoggedDataTest';
testFile = 'RollRefTest.mldatx';

最初のテストの実行とカバレッジの確認

1.テスト ファイルを開きます。

sltest.testmanager.load(testFile);
sltest.testmanager.view;

2.テストを実行します。[テスト ブラウザー][Logged Data and Coverage] テスト スイートを強調表示します。[実行] をクリックします。

3.テストの完了後、テスト結果で [カバレッジの結果] セクションを展開します。Roll Reference サブシステムについて、テストで達成されるカバレッジが部分的なものになっています。

  • 判定カバレッジ: 80%

  • 条件カバレッジ: 70%

  • MCDC 25%

モデル カバレッジを拡大するテストの生成

未達カバレッジ用の追加のテストを生成します。

1.[カバレッジの結果の集計] で [RollAutopilotRevised/Roll Reference] の行を選択します。テーブルの下にある [未達カバレッジのテストを追加] をクリックします。

2.[未達カバレッジのテストを追加] ダイアログ ボックスで、次のオプションを設定します。

  • ハーネス: RollReference_LoggedDataTest。これにより、新しいテスト入力が既存のテスト ハーネスにマッピングされます。

  • テスト ケース: Create a new test case。これにより、生成されたテスト入力を使用して新しいテスト ケースが作成されます。

  • テスト タイプ: Baseline Test。これにより、生成されたテストのモデルからベースライン データの出力を取得するオプションが提供されます。

  • テスト ファイル:: RollRefTest。これにより、既存のテスト ファイルが再利用されます。

3.[OK] をクリックします。テスト ケースの生成の進行状況がダイアログ ボックスに表示されます。テスト ケースの生成が完了すると、新しいテスト ケースがテスト マネージャーに表示されます。

あるいは、sltest.testmanager.addTestsForMissingCoverage関数を使用してプログラムでテストを追加できます。

新しいテスト ケースの実行

1.新しいテスト ケースを [Logged Data and Coverage] テスト スイートにドラッグ アンド ドロップします。

2.[Logged Data and Coverage] テスト スイートを再度実行します。

3.シミュレーションが完了したら、[結果とアーティファクト] セクションで結果セットを選択し、[カバレッジの結果の集計] を展開します。テスト スイートで完全なカバレッジが達成されています。

  • 判定: 100%

  • 条件: 100%

  • MCDC: 100%

クリーンアップ

変数とテスト結果をクリアし、モデルを閉じます。

clear reqDoc rollModel testFile testHarness topModel;
sltest.testmanager.clearResults;
sltest.testmanager.close;
close_system('RollAutopilotRevised',0);

参考

トピック