Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

要件に基づくテストの問題を修正

この例では、モデル テスト ダッシュボードを使用してモデル要件およびテストの一般的なトレーサビリティの問題に対処する方法を示します。ダッシュボードはプロジェクト内のテスト アーティファクトを解析し、品質および完全性の測定値に関するメトリクス データをレポートします (トレーサビリティおよびカバレッジなど)。これには、業界認定のソフトウェア開発標準 (ISO 26262、DO-178C など) のガイドラインが反映されています。ダッシュボード ウィジェットは、モデルに関する要件に基づくテストのデータをまとめ、ギャップを強調表示します。ウィジェットをクリックすると詳細情報を含む表が開きます。この表では、対応する標準を満たさないテスト アーティファクトを見つけて修正することができます。

プロジェクト内のテスト アーティファクトのメトリクス収集

ダッシュボードにはモデルのテスト データと、モデルがプロジェクト内でトレースするアーティファクトが表示されます。この例では、プロジェクトを開いて、アーティファクトのメトリクス データを収集します。

  1. プロジェクトを開きます。コマンド ラインに dashboardCCProjectStart と入力します。

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

  3. これまでプロジェクトのダッシュボードを開いていない場合は、ダッシュボードはプロジェクト内のアーティファクトを特定し、モデルまでトレースしなければなりません。解析を実行してメトリクス結果を収集するには、[すべてのトレースと収集] をクリックします。

  4. ダッシュボードの [アーティファクト] ペインでは、要件、テスト ケース、テスト結果などのアーティファクトがトレースするモデルの下に整理されています。モデル db_DriverSwRequest のメトリクス結果を表示します。[アーティファクト] ペインで、モデルの名前をクリックします。ダッシュボードでは、モデルの最も新しいメトリクス コレクションのデータがウィジェットに取り込まれます。

次に、[アーティファクト] パネルのデータとダッシュボード ウィジェットを使用して、モデルの要件とテストの問題を検出して対処します。

要件をモデル内の実装にリンク付け

[アーティファクト] パネルの [トレースなし] フォルダーには、プロジェクト内のモデルまでトレースしないアーティファクトが表示されます。このフォルダー内のアーティファクトをチェックして、モデルによって実装する必要があるが、リンクが欠落している要件があるかどうかを確認できます。この例では、いずれかの要件をそれを実装するモデル ブロックにリンク付け、[アーティファクト] パネルを更新してそのリンクを反映させます。

  1. [アーティファクト] パネルで、要件 [トレースなし][機能要件]、[db_req_func_spec.slreqx]、[Switch precedence] に移動します。

  2. 要件エディターで要件を開きます。[アーティファクト] パネルで、[Switch precedence] をダブルクリックします。この要件は、複数のスイッチが同時に有効化された場合にクルーズ コントロール システムがアクションを実行する順序を示しています。要件を選択した状態で要件エディターを開いたままにします。

  3. モデル db_Controller を開きます。モデル テスト ダッシュボードからモデルを開くには、[アーティファクト] パネルで [db_Controller] フォルダー、[設計] を展開して、[db_Controller.slx] をダブルクリックします。

  4. Model ブロック DriverSwRequest はモデル db_DriverSwRequest を参照します。このモデルは、スイッチが有効化された場合にクルーズ コントロール システムがアクションを実行する順序を制御します。このモデル ブロックを要件にリンクします。Model ブロックを右クリックして、[Requirements]、[Link to Selection in Requirements Browser] を選択します。

  5. モデルを保存します。[シミュレーション] タブで、[保存] をクリックします。

  6. 要件セットを保存します。要件エディターで、[保存] アイコンをクリックします。

  7. アーティファクトのトレーサビリティ情報を更新するには、モデル テスト ダッシュボードで [アーティファクトのトレース] をクリックします。

[アーティファクト] パネルでは、[db_Controller][機能要件]、[db_req_func_spec.slreqx] の下に [Switch precedence] 要件が表示されます。次に、ダッシュボードでメトリクスを収集することで、アーティファクト内のトレーサビリティの問題を検出します。

テストのトレーサビリティの問題に対処

[アーティファクト] パネルでコンポーネントの名前をクリックすることで、コンポーネント db_DriverSwRequest のダッシュボードを開きます。リンクを追加することで要件ファイルを変更したため、ダッシュボード ウィジェットはグレーで強調表示され、結果が古いデータを表している可能性があることを示します。コンポーネントの結果を更新するには、[結果の収集] をクリックします。

ダッシュボードの [テスト ケースの解析] セクションのウィジェットには、モデルの要件、モデルのテスト ケース、それらの間のリンクに関するデータが表示されます。ウィジェットは、実装された要件のテストおよびトレーサビリティにギャップがあるかどうかを示します。

要件とテスト ケースのリンク付け

モデル db_DriverSwRequest[テストにリンクされている要件] セクションは、モデル内の一部の要件でテスト ケースへのリンクが欠落していることを示します。いずれかのダッシュボード ウィジェットをクリックして、要件を確認します。次に、表内のリンクを使用してアーティファクトを開き、トレーサビリティの問題を修正します。

リンクされていない要件に関する詳細情報を確認するには、[テストにリンクされている要件] セクションで、[リンクされていない] ウィジェットをクリックします。この表には、モデルに実装されているが、テスト ケースへのリンクをもたない要件が表示されます。この表は、テスト ケースへのリンクが欠落している要件のみを表示するようにフィルター処理されています。この例では、要件 Set Switch Detection のテストをリンク付けします。

  1. 要件エディターで要件を開きます。表内の [Set Switch Detection] をクリックします。

  2. 要件エディターで、要件の詳細を調べます。この要件は、Set スイッチが押されたときの動作を示しています。要件エディターで、要件を選択したままにします。

  3. スイッチの動作に関するテスト ケースが既に存在するかどうかを確認します。メトリクス結果に戻るには、モデル テスト ダッシュボードの上部にある [db_DriverSwRequest] をクリックします。[要件にリンクされているテスト] セクションでは、1 つのテスト ケースが要件にリンクされていないことを示しています。

  4. リンクされていないテスト ケースを確認するには、[要件にリンクされているテスト] セクションで [リンクされていない] をクリックします。

  5. テスト マネージャーでテストを開くには、表内でテスト ケース Set button をクリックします。このテスト ケースでは、Resume スイッチの動作を検証します。スイッチのテスト ケースがまだ存在しない場合、テスト マネージャーを使用してテスト ケースを追加します。

  6. テスト ケースを要件にリンクします。テスト マネージャーで、そのテスト ケースについて [要件] セクションを展開します。[追加][選択された要件へのリンク] をクリックします。トレーサビリティ リンクは、テスト ケース Set button が要件 Set Switch Detection を検証することを示しています。

  7. ダッシュボードのメトリクス結果には、保存されたアーティファクト ファイルのみが反映されます。テスト スイート db_DriverSwRequest_Tests.mldatx を保存するには、[テスト ブラウザー] で [db_DriverSwRequest_Tests] を右クリックし、[保存] をクリックします。

  8. 要件ファイル db_req_func_spec.slreqx を保存します。要件エディターで、[保存] ボタンをクリックします。

次に、ダッシュボード内のメトリクス データを更新し、リンク追加の影響を確認します。

ダッシュボード内のメトリクス結果を更新

要件とテスト ケースの間のトレーサビリティ リンクを反映するように、モデル テスト ダッシュボード内のメトリクス結果を更新します。

  1. モデル テスト ダッシュボードでアーティファクトの変更を解析するには、[アーティファクトのトレース] をクリックします。ダッシュボードで解析されていないプロジェクトのアーティファクトに変更がある場合、ボタンが有効化されます。

  2. ダッシュボードの上部にある [古いメトリクス] アイコン は、少なくとも 1 つのメトリクス ウィジェットがモデルの古いデータを表示していることを示しています。古いメトリクス データを表示するウィジェットがグレーで強調表示されます。ウィジェットを更新するには、[結果の収集] をクリックしてモデルのメトリクス データを再収集します。

[テスト ケースの解析] ウィジェットは、リンクされていない要件が 11 個残っていることを示しています。[要件にリンクされているテスト] セクションは、リンクされていないテストが存在しないことを示しています。通常は、こうしたテストのトレーサビリティに関する問題を調査し、テストの追加と要件へのリンク付けによって問題に対処してからテストを実行します。この例では、リンクされていないアーティファクトをそのままにして、テスト実行の次のステップに進みます。

モデルのテストと失敗およびギャップの解析

要件を検証するユニット テストを作成してリンク付けした後で、テストを実行し、モデルの機能が要件を満たしていることを確認します。テスト結果とカバレッジ測定の概要を表示するには、ダッシュボードの [テスト結果の解析] セクション内のウィジェットを使用します。ウィジェットでは、テストの失敗とギャップが強調表示されます。基となるアーティファクトのメトリクス結果を使用して、問題に対処します。

ユニット テストを実行

テスト マネージャーを使用して、モデルのテスト ケースを実行します。結果をアーティファクトとしてプロジェクト内に保存し、それらをモデル テスト ダッシュボードで確認します。

  1. テスト マネージャーでモデルのユニット テストを開きます。モデル テスト ダッシュボードの [アーティファクト] ペインで、モデル db_DriverSwRequest を展開します。[テスト ケース] フォルダーを展開し、テスト ファイル db_DriverSwRequest_Tests.mldatx をダブルクリックします。

  2. テスト マネージャーで、[実行] をクリックします。

  3. テスト結果をモデル テスト ダッシュボードで使用するには、テスト結果をエクスポートし、ファイルをプロジェクト内に保存します。[テスト] タブの [結果] セクションで、[エクスポート] をクリックします。結果ファイルに名前 (Results1.mldatx) を付けて、そのファイルをプロジェクト ルート フォルダーの下に保存します。

モデル テスト ダッシュボードは結果がエクスポートされたことを検出し、[アーティファクト] パネルを自動的に更新して新しい結果を反映させます。[テスト結果の解析] セクションのウィジェットは、古いデータを表示していることを示すためにグレーで強調表示されます。ダッシュボード ウィジェットのデータを更新するには、[結果の収集] をクリックします。

テストの失敗およびギャップに対処

モデル db_DriverSwRequest[モデル テストのステータス] セクションは、最新のテスト実行時に 1 つのテストが失敗し、1 つのテストが無効だったことを示しています。テストを開いて、これらの問題を修正します。

  1. 無効なテストを表示するには、ダッシュボードで [無効] ウィジェットをクリックします。表にモデルの無効なテスト ケースが表示されます。

  2. テスト マネージャーで無効なテストを開きます。表内のテスト [Decrement button hold] をクックします。

  3. テストを有効にします。[テスト ブラウザー] で、テスト ケースを右クリックして [有効] をクリックします。テスト スイート ファイルを保存します。

  4. 失敗したテストを表示するには、ダッシュボードで [失敗] ウィジェットをクリックします。

  5. 失敗したテストをテスト マネージャーで開きます。表内のテスト [Cancel button] をクックします。

  6. テスト マネージャーでテストの失敗について調べます。テストまたはモデルの更新が必要かどうかを判別するには、テスト結果とモデルへのリンクを使用します。この例では、問題を修正するのではなく、テスト カバレッジの調査を続けます。

カバレッジ メトリクスを使用して、実行したテストがモデルの設計を完全に実行したかどうかを確認します。この例では、ダッシュボードの [モデル カバレッジ] セクションは、モデル内の一部の条件がカバーされていなかったことを示しています。ウィジェット内のバーにカーソルを合わせて、何パーセントの条件カバレッジが達成されたかを確認します。この例では、判定の 86.4% がテストによってカバーされ、判定の 4.55% がカバレッジ フィルターで正当化されました。

  1. 判定カバレッジの詳細を確認します。[判定] バーをクリックします。

  2. 表内で、モデル アーティファクトを展開します。この表には、モデルのテスト ケース結果と、それらを含む結果ファイルが表示されます。結果ファイル Results1.mldatx をテスト マネージャーで開きます。

  3. 詳細なカバレッジ結果を表示するには、カバレッジのパースペクティブでモデルを開きます。テスト マネージャーの [カバレッジの結果の集計] セクションの [解析されたモデル] 列で、[db_DriverSwRequest] をクリックします。

  4. モデルでのカバレッジの強調表示は、テスト ケースでカバーされなかったポイントを示しています。カバーされていないポイントに関して、それをカバーするテストを追加します。モデル要素によって実装されている要件を検出するか、要件がない場合は要件を追加します。新しいテスト ケースを要件にリンク付けします。ポイントをカバーすべきでない場合は、フィルターを使用して未達カバレッジを正当化します。この例では、未達カバレッジを修正しないでください。

失敗およびギャップに対処するようにユニット テストを更新したら、テストを実行し、その結果を保存します。次に、ダッシュボードでメトリクスを収集することで、結果を調べます。

モデル テスト ダッシュボードを使用した要件に基づく反復テスト

多くのアーティファクトおよびトレーサビリティ接続をもつプロジェクトでは、プロジェクト内のファイルに変更がある場合は必ず設計とテスト アーティファクトのステータスを監視できます。アーティファクトの変更後、ダッシュボード内のトレース データとメトリクス結果を更新することで、ダウンストリーム テストの影響があるかどうかを確認します。表を使用して、影響を受けるアーティファクトを検出して修正します。モデルのテスト品質がプロジェクトの標準を満たすことが表示されるまでダッシュボード ウィジェットを更新することで、進行状況を追跡します。

参考

関連するトピック