Main Content

機能テストの実行とテスト カバレッジの解析

機能テストでは、まず要件に基づいてテスト ケースを作成します。これらのテストでは、設計の重要点をカバーし、モデルの個々のコンポーネントが要件を満たしていることを検証できます。テスト ケースには、入力、期待される出力、受け入れ基準が含まれます。

テスト スイート内の個々のテスト ケースを収集することにより、機能テストを体系的に実行できます。回帰チェックを行うには、ベースライン基準をテスト ケースに追加して、モデルを繰り返しテストします。カバレッジ測定は、これらのテストがモデルを完全に実行した範囲を反映します。カバレッジ測定は、カバレッジ ターゲットを満たすためにテストや要件を追加する際にも役立ちます。

Functional testing workflow

テスト ケース生成を使用したテスト カバレッジの段階的な拡大

この例では、クルーズ コントロール モデルの要件ベースのテストを実行する方法を説明します。要件ドキュメントへのテスト リンク。以下を行います。

  1. テストを実行します。

  2. Simulink® Coverage™ を使用してテスト カバレッジを判別します。

  3. Simulink Design Verifier™ で生成された追加のテストを使用してカバレッジを拡大します。

  4. 結果をレポートします。

テスト ハーネスおよびモデルを開く

  1. プロジェクトを開きます。

    openExample("shared_vnv/CruiseControlVerificationProjectExample");
    pr = openProject("SimulinkVerificationCruise");

  2. モデルとテスト ハーネスを開きます。コマンド ラインに次のように入力します。

    open_system simulinkCruiseAddReqExample
    sltest.harness.open("simulinkCruiseAddReqExample","SafetyTest_Harness1")
  3. 要件に対するモデルのテストと結果のレポート (Simulink Test)からテスト スイートを読み込み、Simulink テスト マネージャーを開きます。

    pf = fullfile(pr.RootFolder,"tests","slReqTests.mldatx");
    tf = sltest.testmanager.TestFile(pf);
    sltest.testmanager.view

  4. Test Sequence ブロックを開きます。シーケンスで次のいずれかの場合にシステムが解除されることが検証されます。

    • ブレーキ ペダルを踏んだとき。

    • 速度が制限を超えたとき。

モデル カバレッジの測定

  1. Simulink テスト マネージャーで、slReqTests テスト ファイルを選択します。

  2. カバレッジ収集を有効にするには、右側のページの [カバレッジの設定] で以下を行います。

    • [参照モデルのカバレッジを記録] を選択します。

    • [カバレッジ フィルター ファイル名] を使用して、カバレッジ フィルターを指定します。

    • [判定][条件] および [MCDC] を選択します。

  3. テスト マネージャーのツールストリップで [実行] をクリックします。

  4. テストの完了後に、[結果] を選択します。テストは、判定カバレッジを 50%、条件カバレッジを 41%、MCDC カバレッジを 25% 達成しています。

    Coverage results

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

  1. Simulink Design Verifier を使用して、モデル カバレッジを拡大する追加のテストを生成します。[結果とアーティファクト] で、slReqTests テスト ファイルを選択し、右側のペインにある [カバレッジの結果の集計] セクションを開きます。

  2. テスト結果を右クリックし、[未達カバレッジのテストを追加] を選択します。

  3. [ハーネス] で、[ハーネスを新規作成] を選択します。

  4. [OK] をクリックし、Simulink Design Verifier を使用してテスト スイートにテストを追加します。テストするモデルは、MATLAB® パスまたは作業フォルダーになければなりません。

  5. テスト マネージャーのツールストリップで [実行] をクリックして、更新されたテスト スイートを実行します。テスト結果には、組み合わせたテスト ケース入力のカバレッジが含められ、モデル カバレッジが拡大されることになります。

あるいは、テストを作成して使用し、sltest.testmanager.addTestsForMissingCoverage (Simulink Test) および sltest.testmanager.TestOptions (Simulink Test) を使用してカバレッジをプログラムによって拡大できます。

関連するトピック