Main Content

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

モデル テスト ダッシュボードによる下位レベル テスト結果の監視

この例では、達成されたカバレッジのギャップに下位レベル テストを使用して対処する方法と、達成されたカバレッジ全体にユニット境界テストが占める割合を監視する方法を説明します。

  • "下位レベル テスト"は、ユニットのサブ要素のみをテストするモデル テストです。サブ要素には、Atomic サブシステム、Atomic サブシステム参照、Atomic Stateflow® チャート、Atomic MATLAB® Function ブロック、参照モデルが含まれます。たとえば、ユニット内の Atomic サブシステムのみをテストするテストは下位レベル テストです。

  • "ユニット境界テスト" とは、ユニット全体をテストするモデル テストです。

ユニット境界テストと下位レベル テストの両方を使用してカバレッジを達成できます。ユニット境界テストを実行するとき、テストはユニットの設計のコンテキスト全体にアクセスします。下位レベル テストを実行するとき、ユニットの一部のみをテストします。達成されたカバレッジの高い割合を下位レベル テストが占めている場合、代わりにユニット境界テストを使用してテストのスコープを拡大できます。

この例では、Simulink® Check™、Simulink Test™、Simulink Coverage™ を使用します。

プロジェクトのダッシュボードを開く

1.モデルとテスト アーティファクトを含むプロジェクトを開きます。この例では、MATLAB コマンド ウィンドウで次のように入力します。

openProject("cc_CruiseControl");

2.次のいずれかの方法を使用してモデル テスト ダッシュボードを開きます。

  • [プロジェクト] タブで、[モデル テスト ダッシュボード] をクリックします。

  • コマンド ラインに次のように入力します。

modelTestingDashboard

ダッシュボードでユニット cc_ControlMode[モデル テスト] タブが開きます。

ユニット境界テストの実行とモデル カバレッジのギャップの特定

ユニット全体のテストを実行し、[モデル テスト ダッシュボード] を使用してモデル カバレッジのメトリクス結果を収集します。

1.ユニット cc_ControlMode に関連付けられたテスト ファイルを開きます。[モデル テスト ダッシュボード] の [アーティファクト] パネルで、[テスト][ユニット テスト] フォルダーを展開し、ファイル [cc_ControlMode_Tests.mldatx] をダブルクリックします。

ファイルには次の 3 つのテスト スイートが含まれます。

  • Control Mode Unit Tests — Atomic サブシステム Control_Mode_StateMachine のテスト

  • Target Speed Unit Tests — Atomic サブシステム Target_Speed_Calculator のテスト

  • Combined Tests — ユニット cc_ControlMode のテスト

2.[Combined Tests] を右クリックし、[実行] をクリックして、テスト スイート Combined Tests を実行します。テスト スイートにはテスト ケース Idle が含まれます。これはユニット cc_ControlMode のユニット境界テストです。

3.[モデル カバレッジ] ウィジェットをリフレッシュしてモデル カバレッジの結果を表示するには、テスト マネージャーのツールストリップで [モデル テスト ダッシュボード] をクリックし、ダッシュボードの警告バナーで [収集] ボタンをクリックします。

4.[モデル カバレッジ] サブセクションの [実行] バーにカーソルを合わせ、ユニットで達成した実行カバレッジを確認します。

このユニット境界テストの結果に基づいて、達成された実行カバレッジは 38.2% です。

5.ユニット境界テストで達成された実行カバレッジの全体を表示するには、[達成されたカバレッジの比率][ユニット境界テスト] セクションで、[実行] バーにカーソルを合わせます。

実行したのはユニット境界テスト Idle のみのため、達成された実行カバレッジの全体の 100% がユニット境界テストに由来します。

下位レベル テストを使用したカバレッジ ギャップへの対処

下位レベル テストを実行し、[モデル テスト ダッシュボード] を使用してモデル カバレッジの拡大を観察します。

1.テスト マネージャーで、[テスト ブラウザー] をクリックします。

2.[Target Speed Unit Tests] を右クリックし、[実行] をクリックして、テスト スイート Target Speed Unit Tests を実行します。

3.[モデル テスト ダッシュボード] で、警告バナーまたはツールストリップの [収集] ボタンをクリックし、モデル カバレッジ ウィジェットをリフレッシュします。これで、[モデル カバレッジ] セクションのモデル カバレッジの集計に、テスト スイート Target Speed Unit Tests における下位レベル テストからの結果が含まれるようになりました。

以前にユニット境界テストを実行した場合は、下位レベル テストのカバレッジの集計のみを収集できることに注意してください。下位レベル テストはユニット全体をテストしないため、下位レベル テストでのテスト結果のみをもつユニットについて、ダッシュボードはカバレッジの集計を計算できません。ユニット境界テストは、モデル コードのソフトウェアインザループ (SIL) シミュレーションまたはプロセッサインザループ (PIL) シミュレーションによって実行されるのではなく、モデルで実行される必要があります。

この例では、テスト スイート Combined Tests からのテスト結果なしではカバレッジの集計を計算できません。テスト スイート Control Mode Unit TestsTarget Speed Unit Tests には下位レベル テストのみが含まれるため、ユニット全体をテストしません。

4.ユニットの達成された実行カバレッジを表示します。[モデル カバレッジ] セクションで、[実行] バーの達成したカバレッジにカーソルを合わせます。

テスト スイート Target Speed Unit Tests のユニット境界テストと下位レベルテストの結果により、達成された実行カバレッジは 47.1% に拡大しました。

5.達成された実行カバレッジ全体における、ユニット境界テストに由来する割合を確認します。[達成されたカバレッジの比率] サブセクションの [ユニット境界テスト] で、[実行] バーにカーソルを合わせます。

ユニット境界テスト Idle と下位レベル テストの両方を実行したため、達成された実行カバレッジの全体の 81.3% がユニット境界テストに由来するようになりました。

テスト スイート Control Mode Unit Tests を実行すると、ユニット cc_ControlMode は 100% の実行、判定、条件カバレッジを達成します。しかし、たとえば、ユニット境界テストに由来する達成された実行カバレッジは 38.2% のみです。達成された実行カバレッジの全体の残りの 61.8% が下位レベル テスト由来です。

テスト スイート Control Mode Unit Tests および Target Speed Unit Tests の下位レベル テストにより、モデル カバレッジのギャップに対処することができます。ただし、業界認定のソフトウェア開発標準では、ユニット境界テストを使用して、カバレッジの完全性を確認することを推奨しています。達成された実行カバレッジの全体のうち、ユニット境界テストに由来する割合がごくわずかである場合、Atomic サブシステムなどの下位レベルだけでなく、ソフトウェア ユニット全体の機能をテストするようにテストを修正することを検討してください。

関連するトピック