Main Content

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

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

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

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

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

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

openProject("cc_CruiseControl");

2.ダッシュボード ウィンドウを開きます。モデル テスト ダッシュボードを開くには、[プロジェクト] タブで [モデル テスト ダッシュボード] をクリックします。または、コマンド ラインで次のように入力します。

modelTestingDashboard

3.ダッシュボードの [プロジェクト] パネルでは、ユニット モデルがモデルの階層構造内のそれらを含むコンポーネント モデルの下に整理されています。ユニット cc_DriverSwRequest のメトリクス結果を表示します。[プロジェクト] パネルで、ユニットの名前 [cc_DriverSwRequest] をクリックします。最初に [cc_DriverSwRequest] を選択すると、ダッシュボードで未収集のメトリクスのメトリクス結果が収集され、ユニットのデータがウィジェットに取り込まれます。

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

[アーティファクト] パネルには、[プロジェクト] パネルで選択されたユニットまでトレースする要件、テスト、テスト結果などのアーティファクトが表示されます。

[アーティファクト] パネルの [問題のトレース] フォルダーには、プロジェクト内のユニット モデルまでトレースしないアーティファクトが表示されます。[問題のトレース] フォルダーには、次のためのサブフォルダーが含まれています。

  • 予期せぬ実装リンク[タイプ]Container または [タイプ]Informational の要件に対する、[タイプ]Implements の要件リンク。コンテナー要件と情報要件は、それらが属する要件セットの実装の状態と検証の状態の対象とはならないため、ダッシュボードでは、これらのリンクの [タイプ]Implements と想定されません。要件が実装対象となっていない場合は、リンク タイプを変更できます。たとえば、[タイプ]Informational の要件を、[タイプ]Related to のリンクをもつように変更できます。

  • 未解決で未サポートのリンク — 切断された要件リンクまたはダッシュボードでサポートされていない要件リンク。たとえば、モデル ブロックが要件を実装しているが、そのモデル ブロックが削除された場合、要件リンクは未解決になります。[モデル テスト ダッシュボード] は、一部のアーティファクトおよび一部のリンクのトレーサビリティ解析をサポートしません。ユニットへとトレースすることが想定されているリンクがトレースされない場合は、アーティファクト、リンク、および結果の欠損の解決 (Simulink Check)でトラブルシューティング ソリューションを参照してください。

  • トレースされないテスト — プロジェクト パス上にないモデルまたはサブシステムで実行するテスト。

  • トレースされない結果 — ダッシュボードがテストまでトレースできなくなった結果。たとえば、テストから結果が生成されたが、そのテストが削除された場合、結果はテストまでトレースできなくなります。

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

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

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

ユニット cc_DriverSwRequest[要件にリンクされているテスト] セクションは、一部のテストでモデル内の要件へのリンクが欠落していることを示します。

欠損リンクに関する詳細情報を確認するには、[要件にリンクされているテスト] セクションで、[リンクされていない] ウィジェットをクリックします。ダッシュボードでそのウィジェットの [Metric Details] が開き、メトリクス値と関連する各アーティファクトへのハイパーリンクの表が示されます。この表には、ユニットに実装されているが、要件へのリンクをもたないテストが表示されます。要件へのリンクが欠落しているテストのみを表示するように表にフィルターが適用されます。

テスト Detect long decrement は要件にリンクされていません。

  1. テーブルの [アーティファクト] 列で、[Detect long decrement] にカーソルを合わせます。ツールヒントに、テスト [Detect long decrement] がテスト ファイル [cc_DriverSwRequest_Tests] 内のテスト スイート [Unit test for DriverSwRequest] にあることが示されます。

  2. [Detect long decrement] をクリックしてテスト マネージャーでテストを開きます。この例では、このテストをプロジェクトに既に存在する 3 つの要件にリンクする必要があります。要件がまだ存在しない場合、要件エディターを使用して要件を追加できます。

  3. 要件エディターでソフトウェア要件を開きます。ダッシュボード ウィンドウの [アーティファクト] パネルで、フォルダー [機能要件]、[実装済み] を展開し、要件ファイル [cc_SoftwareReqs.slreqx] をダブルクリックします。

  4. コンテナー内のソフトウェア要件のうち、Driver Switch Request Handling という概要をもつソフトウェア要件を表示します。[cc_SoftwareReqs]、[Driver Switch Request Handling] を展開します。

  5. 複数のソフトウェア要件を選択します。"Ctrl" キーを押しながら Output request modeAvoid repeating commands、および Long Increment/Decrement Switch recognition をクリックします。要件エディターで、これらの要件を選択したままにします。

  6. テスト マネージャーで、テスト Detect long decrement について [要件] セクションを展開します。[追加] ボタンの横にある矢印をクリックして、[選択された要件へのリンク] を選択します。トレーサビリティ リンクは、テスト Detect long decrement が 3 つの要件 Output request modeAvoid repeating commands、および Long Increment/Decrement Switch recognition を検証することを示しています。

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

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

ダッシュボードでメトリクス結果が古くなったことが検出され、ダッシュボードの上部に警告バナーが表示されます。

  1. 警告バナーの [収集] ボタンをクリックしてメトリクス データを再収集し、テストと要件の間のトレーサビリティ リンクがダッシュボードに反映されるようにします。

  2. [Model Testing] の結果に戻り、更新後のダッシュボード ウィジェットを確認します。ダッシュボードの上部に、[Metric Details] から [Model Testing] の結果に戻る階層リンクがあります。[cc_DriverSwRequest] の階層リンク ボタンをクリックして、ユニットの [Model Testing] の結果に戻ります。

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

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

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

ユニット テストを実行

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

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

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

  3. [結果とアーティファクト] ペインで結果を選択します。

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

[モデル テスト ダッシュボード] は結果を検出し、[アーティファクト] パネルを自動的に更新して、ユニットの新しいテスト結果をサブフォルダー [テスト結果]、[モデル] に含めます。

また、ダッシュボードでメトリクス結果が古くなったことが検出され、ダッシュボードの上部に警告バナーが表示されます。

[古い] アイコン [シミュレーション テスト結果の解析] セクションのウィジェットに表示され、変更が反映されていない古いデータを表示していることが示されます。

警告バナーの [収集] ボタンをクリックしてメトリクス データを再収集し、現在のアーティファクトのデータを使用して古いウィジェットを更新します。

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

ユニット cc_DriverSwRequest のダッシュボードの [モデル テストのステータス] セクションは、最新のテスト実行時に 1 つのテストが失敗し、1 つのテストが無効だったことを示しています。

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

  2. テスト マネージャーで無効なテストを開きます。テーブル内のテスト アーティファクト Detect long decrement をクリックします。

  3. テストを有効にします。[テスト ブラウザー] で、テストを右クリックして [有効] をクリックします。

  4. テストを再実行します。[テスト ブラウザー] で、テストを右クリックして [実行] をクリックし、テスト スイート ファイルを保存します。

  5. 更新後の無効なテスト数を確認します。ダッシュボードで、警告バナーの [収集] ボタンをクリックします。ダッシュボードの [モデル テストのステータス] セクションで報告されている無効なテスト数がゼロになったことに注目してください。

  6. ダッシュボードで失敗したテストを表示します。[cc_DriverSwRequest] の階層リンク ボタンをクリックして [Model Testing] の結果に戻り、[失敗] ウィジェットをクリックします。

  7. 失敗したテストをテスト マネージャーで開きます。表内のテスト アーティファクト [Detect set] をクリックします。

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

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

  1. いずれかの [判定] バーをクリックして、判定カバレッジに関する詳細を表示します。この例では、[達成済み] カバレッジの [判定] バーをクリックします。

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

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

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

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

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

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