Main Content

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

要件に基づくテスト アーティファクトをモデル テスト ダッシュボードで解析用に管理

モデルベース デザインを使用してソフトウェア コンポーネントを開発およびテストするときは、モデル テスト ダッシュボードを使用してモデル テスト アクティビティのステータスと品質を評価します。要件に基づくテストは、モデル検証の中心的な要素です。要件、モデルの設計要素、およびテスト ケース間でトレーサビリティ リンクを確立することで、要件が実装および検証されている範囲を測定できます。モデル テスト ダッシュボードはこのトレーサビリティ情報を解析し、トレーサビリティ、ステータス、テスト アーティファクトの結果に関する詳細なメトリクス測定値を提供します。

Model Testing Dashboard

ダッシュボードの各メトリクスはモデルのテスト品質の異なる側面を測定し、業界認定のソフトウェア開発標準 (ISO 26262、DO-178C など) のガイドラインを反映しています。モデルの要件に基づくテスト品質をモデル テスト ダッシュボードで監視するには、プロジェクト内のアーティファクトを維持して、以下の考慮事項に従います。モデル テスト ダッシュボードの使用方法の詳細については、モデル テスト ダッシュボードを使用してテスト アクティビティのステータスと品質を調査を参照してください。

プロジェクト内のアーティファクト ファイルの管理

要件に基づくテスト アクティビティをモデル テスト ダッシュボードで解析するには、設計とテスト アーティファクトをプロジェクトに保存します。テスト メトリクスで解析するアーティファクトには次のようなものがあります。

  • モデル

  • Simulink® Requirements™ で作成する要件

  • モデルで使用されるライブラリ

  • Simulink Test™ で作成するテスト ケース

  • 実行されたテスト ケースのテスト結果

モデル テスト ダッシュボードで最新の資産を解析するには、確実に次のことを行います。

  • アーティファクト ファイルへの変更を保存する。

  • テスト結果をエクスポートし、結果ファイルに保存する。

  • 解析するファイルをプロジェクト内に格納する。

要件に基づくテストのためのソフトウェア コンポーネントのモデル化

モデル テスト ダッシュボードは、プロジェクト内の各 "コンポーネント" に関するトレーサビリティとテストの解析を提供します。コンポーネントとはソフトウェア アーキテクチャ内の機能エンティティであり、個別または大規模なシステム テストの一部として実行およびテストできます。モデル テスト ダッシュボードは、プロジェクト内の各モデルを考慮して、コンポーネントを表します。なぜなら、モデルを使用して、モデルベース デザインのソフトウェア コンポーネントのアルゴリズムを設計およびテストするからです。各コンポーネントに関して、高水準のシステム要件とコンポーネントの役割に基づいて機能要件を作成します。次に、コンポーネント アルゴリズムをモデル化し、機能要件を満たします。その後、コンポーネントをテストするために、要件からテスト ケースを派生させ、モデルに対してテストを実行します。このプロセス全体を通じて、以下の間で明示的または暗黙的なトレーサビリティ リンクを作成して維持します。

  • 各機能要件と、それを実装するモデル要素

  • 各機能要件と、それを検証するテスト ケース

  • 各テスト ケースと、テスト対象のモデル

  • 各テスト ケースと、生成された最新の結果

こうしたトレーサビリティ リンクを使用すると、要件、設計、テスト アクティビティの完全性を追跡することができます。リンクは、設計およびテストに含まれるギャップを見つけるのに役立ちます。テストが失敗した場合、失敗したテスト ケース、テストした要件、要件を実装したモデル要素へのトレーサビリティ リンクをたどることができます。これにより、テストの失敗の原因となった可能性のある設計エラーを迅速に検出できます。ISO 26262 および DO-178C などのソフトウェア開発に関する業界標準では、テストの完全性を示すためにこうしたアーティファクト間のトレーサビリティが必要です。

モデル テスト ダッシュボードは、コンポーネントのスコープ内でアーティファクトのトレーサビリティおよびメトリクス結果を返します。コンポーネントのスコープ内のアーティファクトとは、モデル、要件、テスト ケース、およびモデルまでトレースするテスト結果です。ダッシュボードの [アーティファクト] ペインでは、トレースするコンポーネント別にアーティファクトが整理され、モデル名を使用して各コンポーネントを表します。

Artifacts panel showing components and traced artifacts

コンポーネント リストには、モデルでないシステム (サブシステムなど) は含まれません。システムをモデル化するときに、設計の一部をモデル テスト ダッシュボードでテストおよび解析する場合は、それをモデルとして保存します。

モデル テスト解析用にアーティファクトをコンポーネントまでトレース

コンポーネントのスコープ内にあるアーティファクトを判別するために、モデル テスト ダッシュボードは、コンポーネントに対応するプロジェクト内のアーティファクトとモデルの間のトレーサビリティ リンクを解析します。[アーティファクト] パネルでは、モデル名で表される各コンポーネントと、コンポーネントまでトレースする以下のアーティファクトが一覧表示されます。

  • 機能要件

  • 設計アーティファクト

  • テスト ケース

  • テスト結果

コンポーネントのリストの後に、ダッシュボードがいずれのモデルにもトレースしていないアーティファクトが [トレースなし] フォルダーに表示されます。トレーサビリティ解析中にアーティファクトがエラーを返す場合、パネルの [エラー] フォルダーにアーティファクトが表示されます。こうしたセクションおよびコンポーネントのトレーサビリティ情報を使用して、テスト アーティファクトが想定どおりのモデルまでトレースするかどうかを確認します。

[アーティファクトのトレース] ボタンを有効にすることで、プロジェクト内のアーティファクトを編集して保存するときに、ダッシュボードは変更を追跡し、[アーティファクト] パネルのトレーサビリティ データが古い可能性があるかどうかを示します。トレーサビリティ データを更新するには、[アーティファクトのトレース] をクリックします。ボタンが有効になっていない場合、ダッシュボードはトレーサビリティ情報に影響を与える変更を検出していません。

機能要件

[機能要件] フォルダーは、[タイプ]Functional に設定され、次のいずれかのリンク基準を満たす要件を表示します。

  • 要件が、[タイプ]Implements に設定されているリンクによって、モデルまたはモデルで使用されるライブラリ サブシステムにリンクされている。

  • 要件が属しているコンテナー要件が、[タイプ]Implements に設定されているリンクによって、モデルまたはモデルで使用されるライブラリ サブシステムにリンクされている。

  • 要件が、上記 2 つの基準の組み合わせを使用してモデルまでトレースしている。たとえば、別の要件にリンクするコンテナー要件に属する要件が、モデルにリンクしている場合などがあります。

Simulink Requirements を使用して、これらの要件を要件ファイル (.slreqx) に作成するか、インポートします。要件が [トレースなし] に表示されるコンポーネントの下に表示されると想定している場合、ダッシュボードがトレースしないリンク タイプのいずれかを使用しているかどうか確認します。これについては、トレースされないアーティファクトで説明しています。要件のリンク付けの詳細については、要件リンク (Simulink Requirements)を参照してください。

コンポーネントのメトリクス結果を収集するときに、ダッシュボードは [機能要件] フォルダーに表示される要件のサブセットを解析します。メトリクスは、[タイプ]Functional に設定されている要件、および [タイプ]Implements に設定されているリンクによってモデルに直接リンクされている要件のみを解析します。コンポーネントまでトレースする要件であっても、こうした設定をもたないものは、[機能要件] フォルダーに表示されますが、要件のメトリクス結果の対象になりません。

設計アーティファクト

[設計アーティファクト] フォルダーには、コンポーネントのブロック線図を含むモデル ファイルと、モデルによって部分的または完全に使用されるライブラリが表示されます。

テスト ケース

[テスト ケース] フォルダーには、モデルまでトレースするテスト ケースが表示されます。これには、モデルに対して実行されるテスト ケースと、テスト ハーネスを使用してモデルのサブシステムに対して実行されるテスト ケースが含まれます。Simulink Test を使用して、こうしたテスト ケースをテスト スイート ファイルに作成します。

コンポーネントのメトリクス結果を収集するときに、ダッシュボードは [テスト ケース] フォルダーに表示されるテスト ケースのサブセットを解析します。ダッシュボードは、モデルに対して実行されるテスト ケースのみを解析します。モデル内のサブシステムをテストするテスト ケースはフォルダーに表示されますが、モデル全体をテストしないため、メトリクスの対象になりません。

テスト結果

[テスト結果] フォルダーには、モデルをテストするテスト ケースからのテスト結果が表示されます。テスト結果をモデル テスト ダッシュボードに表示して解析するには、テスト結果をエクスポートして結果ファイルに保存しなければなりません。テスト マネージャーで収集しても、エクスポートしていない結果はダッシュボードに表示されず、メトリクス結果の対象になりません。結果が [トレースなし] に表示されるコンポーネントの下に表示されると想定している場合、ダッシュボードがトレースしないリンク タイプのいずれかを使用しているかどうか確認します。これについては、トレースされないアーティファクトで説明しています。

コンポーネントのメトリクス結果を収集するときに、ダッシュボードは [テスト結果] フォルダーに表示されるテスト結果のサブセットを解析します。ダッシュボードは、モデルに対して実行されるテスト ケースからの最新の結果のみを解析します。メトリクスには、モデルに対して実行されないテスト ケースからの結果は含まれません (サブシステムをテストするテスト ケースなど)。

トレースされないアーティファクト

[トレースなし] フォルダーには、ダッシュボードがいずれのモデルにもトレースしていないアーティファクトが表示されます。プロジェクト内のアーティファクトのトレーサビリティを確認するときは、以下の制限事項を考慮してください。

  • ダッシュボードは、現在のプロジェクト内に保存されていないアーティファクトをトレースまたは解析しません。

  • [アーティファクト] パネルに表示するには、モデルが MATLAB 検索パス上になければなりません。MATLAB 検索パス上にないモデルにリンクするアーティファクトは [トレースなし] フォルダーに表示され、メトリクスによって解析されません。

  • MATLAB 検索パスを変更しても、[アーティファクト] パネルのトレーサビリティ情報は更新されません。ダッシュボードが開いている間は、検索パスを変更しないでください。

  • ダッシュボードは、プロジェクト内のシンボリックなファイル リンク (ショートカットなど) はトレースしません。

  • ダッシュボードは、参照プロジェクトのアーティファクトをトレースまたは解析しません。

要件が次のいずれかのリンクによってモデルまたはテスト ケースにリンクされている場合、ダッシュボードはそのリンクをトレースしません。

  • 組み込みリンク。これは、モデル ファイルに直接保存される要件ファイルです。

  • データ ディクショナリとの双方向のリンク。

  • MATLAB コード ファイルへのリンク。

  • 組み込み MATLAB Function ブロックへのリンク。

  • 拡張子が .req である、非推奨の要件ファイルに含まれるリンク。ダッシュボードで要件リンクを解析するには、リンクを .slmx ファイルまたは要件ファイル (.slreqx) に保存します。

  • カスタム タイプをもつリンク。

  • カスタム タイプを使用する要件へのリンク。

  • System Composer™ アーキテクチャ モデルへのリンク。

テスト ケースの実行時に以下のいずれかの条件を満たす場合、生成された結果はトレースされていません。なぜなら、ダッシュボードがコンポーネントとの間で明確なトレーサビリティを確立することができないからです。

  • プロジェクトが読み込まれていない。

  • プロジェクトのダッシュボードが 1 度も開かれていない。

  • Simulink Check™ のライセンスがない。

  • テスト ファイルがプロジェクト外に保存されている。

  • テスト ファイルに未保存の変更が含まれている。

  • テスト済みのモデルに未保存の変更が含まれている。

  • トレーサビリティの解析中にテスト ファイルがエラーを返す。

  • トレーサビリティの解析中にテスト済みのモデルがエラーを返す。

テスト結果のエクスポート時に以下のいずれかの条件を満たす場合、生成された結果はトレースされていません。なぜなら、ダッシュボードがコンポーネントとの間で明確なトレーサビリティを確立することができないからです。

  • プロジェクトが読み込まれていない。

  • プロジェクトのダッシュボードが 1 度も開かれていない。

  • Simulink Check のライセンスがない。

  • トレーサビリティの解析中にテスト結果ファイルがエラーを返す。

[トレースなし] フォルダーを使用して、コンポーネントへのトレーサビリティがいずれかのアーティファクトから欠落しているかどうかをチェックします。トレーサビリティをアーティファクトに追加する場合、[アーティファクトのトレース] をクリックしてパネル内の情報を更新します。

アーティファクト エラー

[エラー] フォルダーには、ダッシュボードがアーティファクト解析を実行したときにエラーを返したアーティファクトが表示されます。トレーサビリティ解析中にアーティファクトが返す可能性があるいくつかのエラーを以下に示します。

  • トレーサビリティ解析が開始されたときに保存されていない変更がある場合、アーティファクトはエラーを返します。

  • 前のバージョンの Simulink に保存されていた場合、テスト結果ファイルはエラーを返します。

  • 検索パス上にない場合、モデルはエラーを返します。

こうしたアーティファクトを開いて、エラーを修正します。その後、ダッシュボードでトレーサビリティを解析するために [アーティファクトのトレース] をクリックします。

メトリクス結果の収集

モデル テスト ダッシュボードでは、[アーティファクト] ペインにリストされている各コンポーネントのメトリクス結果を収集します。ダッシュボードの各メトリクスはモデルのテスト品質の異なる側面を測定し、業界認定のソフトウェア開発標準 (ISO 26262、DO-178 など) のガイドラインを反映しています。利用可能なメトリクスと、メトリクスによって返される結果の詳細については、Model Testing Metricsを参照してください。

プロジェクト内のアーティファクトを編集および保存すると、ダッシュボードは変更を追跡し、ダッシュボード内のメトリクス結果が古い可能性があるかどうかを示します。変更が [アーティファクト] パネルのトレーサビリティ情報に影響を与える場合、[アーティファクトのトレース] をクリックします。トレーサビリティ情報を更新した後で、いずれかのメトリクス結果がアーティファクト変更の影響を受ける可能性がある場合、[古いメトリクス] アイコン Stale Metrics がダッシュボードの上部に表示されます。影響を受けるウィジェットがグレーで強調表示されます。結果を更新するには、[結果の収集][すべての結果を収集] をクリックします。

ダッシュボードは、以下の変更に関しては、古いメトリクス データを示しません。

  • テスト ケースを実行してダッシュボードで結果を解析した後で、テスト ケースを変更した場合、ダッシュボードではテスト ケース メトリクスが古いことが示されますが、結果メトリクスが古いことは示されません。

  • テスト結果で使用されるカバレッジ フィルター ファイルを変更する場合、ダッシュボード内のカバレッジ メトリクスにはデータが古いことが示されないか、変更が含まれません。フィルター ファイルへの変更を保存した後で、テストを再実行し、フィルター ファイルを使用して新しい結果を取得します。

コンポーネントのメトリクス結果を収集するときに、ダッシュボードはコンポーネントまでトレースするアーティファクトのサブセットの結果を返します。ただし、要件とテスト ケースの間のトレーサビリティ リンクをカウントするメトリクス結果には、他のコンポーネントまでトレースする可能性があるアーティファクト、またはいずれのコンポーネントもトレースしない可能性があるアーティファクトへのリンクが含まれています。たとえば、テスト ケース TestCaseAModelA をテストする場合、メトリクス [要件にリンクされているテスト ケース]ModelA で実行すると、そのテスト ケースの結果が返されます。メトリクスが TestCaseA にリンクされている要件をチェックするときに、そのメトリクスは要件の実装またはトレーサビリティ ステータスを考慮しません。TestCaseA に要件 RequirementB への Verifies リンクがあり、その要件が別のモデルにリンクされている場合、メトリクスはテスト ケースがリンクされていることを示す true を返します。ただし、メトリクス [テスト ケースにリンクされている要件]ModelA で実行する場合は、要件が ModelA にリンクされていないため、RequirementB の結果を返しません。要件にリンクされているテスト ケースについては、リンクされた要件がテスト ケースの実行対象であるモデルによって実装されていることをチェックします。さらに、テスト ケースにリンクされている要件に関して、要件を実装するモデルでテスト ケースが実行されることを確認します。

参考

関連するトピック