Main Content

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

モデル テスト ダッシュボードでのアーティファクト、リンク、および結果の欠損の解決

問題

モデル テスト ダッシュボードは、ソフトウェア ユニット モデルの要件に基づくテスト ワークフローの一部であるアーティファクト (モデル、要件、テスト、および結果) を解析します。要件に基づくテスト ワークフローの一部ではないアーティファクトやアーティファクト間のリンクは、モデル テスト ダッシュボードに表示されないか、解析結果に影響しない可能性があります。また、一部のアーティファクトやリンクは、モデル テスト ダッシュボードでサポートされません。ダッシュボードに表示されることが想定されるリンクまたはアーティファクトが表示されない場合は、次のいずれかの解決策を試してください。

考えられる解決策

ダッシュボードでアーティファクトのトラブルシューティングを開始する場合は、以下の解決策を試してください。

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

  • アーティファクトがプロジェクトに保存されていることを確認する。ダッシュボードは、プロジェクトに保存されていないファイルを解析しません。

  • アーティファクトが参照プロジェクト内にないことを確認する。ダッシュボードは、参照プロジェクト内のファイルを解析しません。

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

  • [診断] ペインを開き、エラーまたは警告に対処する。

  • ダッシュボードを使用してアーティファクトを再度トレースし、メトリクス結果を再度収集する。

トラブルシューティングを行うアーティファクトや解析の問題のタイプに応じて、次のいずれかの解決策を試してください。

プロジェクトに対するアーティファクトのトレースの有効化

プロジェクト内のアーティファクトを編集して保存すると、ダッシュボードはこれらの変更を追跡し、アーティファクトのトレースを有効にして古い結果を検出する必要があります。

既定では、ダッシュボードは、ダッシュボードでプロジェクトを最初に開いたときにアーティファクトのトレースを有効にするよう要求します。[有効にして続行] をクリックし、ダッシュボードでツールの出力を追跡して古くなったメトリクス結果を検出できるようにします。

ダッシュボードでは、Simulink® Test™ からのテスト結果など、ツールの出力を追跡して古くなったメトリクス結果を検出する必要があります。

プロジェクトの [起動とシャットダウン] 設定からもアーティファクトのトレースを有効にできます。プロジェクトの [起動とシャットダウン] 設定で、[ツールの出力を追跡して期限切れの結果を検出] を選択します。ツールの出力および古くなったメトリクス結果の詳細については、デジタル スレッドを参照してください。

キャッシュ フォルダー アーティファクトの追跡

既定では、プロジェクトはシミュレーション キャッシュ フォルダーとコード生成フォルダーの両方に同じルート フォルダーを使用します。可能であれば、プロジェクトのシミュレーション キャッシュ フォルダーとコード生成フォルダーに異なるルート フォルダーを使用してください。異なるルート フォルダーを指定すると、ダッシュボードはシミュレーション キャッシュ フォルダーに対する変更を追跡する必要がなくなります。

プロジェクトのキャッシュ フォルダー設定を表示するには、[プロジェクト] タブの [環境] セクションで [詳細] をクリックします。[プロジェクトの詳細] ダイアログに、[シミュレーション キャッシュ フォルダー][コード生成フォルダー] に指定されたルート フォルダーが表示されます。

変更の追跡の動作は、プロジェクトの設定のみに依存します。カスタムの操作は、変更の追跡の動作に影響を与えません。たとえば、ダッシュボードは Simulink.fileGenControl によって指定されたルート フォルダーをチェックしません。

プロジェクトでダッシュボードによる解析が必要

プロジェクトのダッシュボードを最初に開くときに、ダッシュボードはプロジェクト内のアーティファクトを特定し、トレーサビリティ情報を収集します。ダッシュボードは、アーティファクトを監視する前に、この初回のセットアップを行ってトレーサビリティ データを確立する必要があります。初回のセットアップをキャンセルすると、プロジェクト内のアーティファクトが [アーティファクト] パネルの [未解析] フォルダーに表示されます。未解析のアーティファクトをトレースするには、[収集][アーティファクトのトレース] をクリックします。

[プロジェクト] パネルのモデルのリストが不正確

[プロジェクト] パネルには、ユニット モデルまたはコンポーネント モデルのいずれかであるプロジェクト内のモデルが表示されます。モデルはモデル参照階層に従って、モデルを参照するコンポーネントの下に整理されます。ユニット モデルとコンポーネント モデルのリストに想定されるモデルの階層が表示されない場合は、次のいずれかの解決策を試してください。

ユニット モデルとコンポーネント モデルにラベルが付いていることを確認.  プロジェクト内のユニット モデルとコンポーネント モデルにラベルを付けて、ラベルの付いたモデルを識別するようダッシュボードを構成します。ユニット モデルが 1 つ以上の他のモデルを参照する場合、参照モデルはそのユニット モデルの下にある [設計] フォルダーに表示されることに注意してください。モデルのラベル付けとダッシュボードの構成の詳細については、階層内のモデルをコンポーネントまたはユニットとして分類を参照してください。オブザーバー モデルがある場合は、それらがユニットとしてラベル付けされていないことを確認します。オブザーバー モデルがラベルの要件に合致している場合、ダッシュボードにはそれらがユニットとして含まれます。

サポートされているリリースでモデルが保存されていることを確認.  モデルが R2012b 以降で保存されていることを確認します。ダッシュボードは、R2012b より前に保存されたモデルをサポートしていません。

アーティファクト解析中にスキップされたブロック

ブロックにマスクがあり、そのマスクがブロックの内容を非表示にする場合、ダッシュボードはブロックをアーティファクト解析から除外します。

カスタム ライブラリに自己修正可能なマスクをもつブロックが含まれないことを確認します。ダッシュボードは、自己修正可能なマスクが含まれるブロックを解析しません。自己修正可能なマスクは、アーティファクト トレーサビリティ解析と互換性がない、ブロックの構造的な内容を変更する場合があります。

[アーティファクト] パネルにライブラリがない

ライブラリが、ライブラリ転送テーブルを使用していないことを確認します。ダッシュボードはライブラリ転送テーブルをサポートしていません。

[アーティファクト] パネルに要件がない

[アーティファクト] パネルに要件がない場合は、次のいずれかの解決策を試してください。

要件が機能要件であることを確認.  要件が機能要件として構成されていることを確認します。要件エディターの左側のペインで、要件をクリックします。右側のペインの [プロパティ] セクションで、[タイプ]Functional に設定します。モデル テスト ダッシュボードは、要件に基づくユニット テストについてレポートするため、機能要件のみが [アーティファクト] パネルに表示され、ダッシュボードによって解析されます。

サポートされている要件ファイルに要件が保存されていることを確認.  要件が、.slreqx 拡張子をもつ要件ファイルに保存されていることを確認します。

[アーティファクト] パネルにテスト ケースがない

テスト ケースがモデル テスト ダッシュボードでサポートされていることを確認します。モデル テスト ダッシュボードは MATLAB ベースの Simulink テストをサポートしていません。

[アーティファクト] パネルにテスト ハーネスがない

テスト ハーネスが System Composer™ アーキテクチャ モデルの内部テスト ハーネスではないことを確認します。ダッシュボードは System Composer アーキテクチャ モデルの内部テスト ハーネスをサポートしません。モデルに内部テスト ハーネスが既に使用されている場合、内部テスト ハーネスを外部保存されたテスト ハーネスに変換できます。メイン モデルの最上部に移動し、Simulink Test を開きます。[テスト] タブで、[テスト ハーネスを管理][外部ハーネスに変換] をクリックします。[OK] をクリックして、影響を受けるテスト ハーネスを変換します。System Composer アーキテクチャ モデルの外部テスト ハーネスは、サブフォルダー [テスト][テスト ハーネス][アーティファクト] パネルに表示されます。

テスト ハーネスがライブラリ ブロック インスタンス内のサブシステム上にないことを確認します。テスト ハーネスがモデル内のライブラリ ブロック内のサブシステム上にある場合、ダッシュボードはテスト ハーネスのアーティファクト トレーサビリティ解析を実行できません。ライブラリ ブロック インスタンス内のサブシステム上にあるモデルとテスト ハーネス間の関係は、アーティファクト トレーサビリティ解析と互換性がありません。アーティファクト トレーサビリティ解析を有効にするには、テスト ハーネスをライブラリに移動します。

[アーティファクト] パネルにテスト結果がない

次のいずれかであることを確認します。

  • 結果がテスト結果ファイルに保存されている。テスト結果をテスト マネージャーからエクスポートして保存します。

  • 現在のプロジェクト セッション中に結果を収集し、まだその結果を閉じていない。テスト結果を収集してエクスポートしていない場合、ダッシュボードは、テスト マネージャー内の一時的な結果 (Temporary test results icon アイコンで表される) を認識します。プロジェクトまたはテスト結果セットを閉じるか、テスト結果を結果ファイルにエクスポートすると、ダッシュボードは一時的な結果の認識を停止します。

アーティファクトが警告を返す

[診断] ペインを開き、警告の詳細を確認します。

アーティファクトがエラーを返す

[診断] ペインを開き、エラーの詳細を確認します。

ダッシュボードが [診断] ペインにエラーを返す場合、ダッシュボード ウィジェットに表示されるメトリクス データは不完全である可能性があります。エラーは、ダッシュボードがアーティファクトのトレース、アーティファクトの解析、メトリクスの収集を正しく実行できなかった可能性があることを示しています。

ダッシュボードに表示されるメトリクス結果を使用する前に、レポートされているエラーを解決して、アーティファクトを再度トレースします。

あいまいなリンクの修正.  プロジェクト内のリンクがプロジェクト アーティファクト間の明確な関係を定義していることを確認します。

要件に基づくテストでは、多くの場合、プロジェクトにソフトウェア要件と次との間のリンクが含まれています。

  • 要件を実装する設計アーティファクト

  • 実装された要件をテストするテスト ケース

  • 上位のシステム要件

プロジェクト内のリンクはアーティファクト間の関係を定義するのに役立ちます。ダッシュボードはデジタル スレッドを使用してプロジェクトのアーティファクト間のトレーサビリティ関係を取得します。トレーサビリティ関係を維持するために、ダッシュボードはプロジェクト アーティファクトへのリンクがあいまいな場合にエラーを返します。あいまいなリンクはダッシュボードでサポートされません。

次のいずれかの条件が満たされる場合、ダッシュボードは明確なトレーサビリティを確立できません。

  • リンク セットの優先順位が、読み込まれた同じ名前の別のリンク セットよりも高い。

  • 要件セットの優先順位が、読み込まれた同じ名前の別の要件セットよりも高い。

  • リンクがプロジェクト パス上にないか、一時的にのみプロジェクト パス上にある。

  • リンクが移植可能でない。

    移植可能でないリンクを回避するには、次のようにします。

    • リンクのパス形式の基本設定を絶対パスに設定しない。絶対パスは移植できません。リンクのパス形式の基本設定を設定する方法については、rmipref (Requirements Toolbox) およびドキュメント パス ストレージ (Requirements Toolbox)を参照してください。

    • リンク セットのソース アーティファクトを特定する場合は、既定のリンク ファイル名と場所を使用する。リンク ソースの再マッピングは MATLAB 基本設定ディレクトリで維持され、移植できません。詳細については、要件リンクのストレージ (Requirements Toolbox)を参照してください。

ダッシュボードのエラー メッセージにある詳細と推奨アクションを使用してあいまいなリンクを修正します。

トレーサビリティ関係とデジタル スレッドの詳細については、デジタル スレッドを参照してください。

問題のトレース

ユニット モデルまでトレースすることが想定されているアーティファクトが [問題のトレース] フォルダーに表示されている場合は、トレースされないアーティファクトのタイプに応じて、次のいずれかの解決策を試してください。

トレースされない要件の修正.  実装リンクを使用して、要件がユニット モデルまでトレースしていることを確認します。要件およびそのリンクは、次のいずれかの基準を満たさなければなりません。

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

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

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

要件に基づくテストでは、モデルが実装する機能要件を満たしていることを確認します。モデル テスト ダッシュボードは要件に基づくテストの品質についてレポートするため、機能要件として指定され、ユニットに実装されている要件のみを解析します。各ユニットについて、ダッシュボードのフォルダー [機能要件][実装済み] にユニットに実装されている機能要件が表示されます。

要件が、サポートされていないリンクを使用していないことを確認します。モデル テスト ダッシュボードは、次のようなリンクをトレースしません。

  • 下流へのリンク。モデル テスト ダッシュボードは、下位の要件から上位の要件へのリンクのみをトレースします。各ユニットについて、ダッシュボードのフォルダー [機能要件][上流] に上位の機能要件が表示されます。上流リンクはユニットに対して実装済み機能要件に直接的または推移的にリンクされています。要件エディターを使用して、リンクの方向を確認してください。要件エディターで、[解析] セクションの [トレーサビリティ ダイアグラム] をクリックします。[影響解析] セクションで、[上流] ボタンと [下流] ボタンを使用してリンクの方向を確認します。

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

  • 外部に保存され、要件管理インターフェイス (RMI) を使用してリンクされた要件へのリンク。

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

  • Stateflow® のライセンスがない場合の、MATLAB Function ブロックへのリンク。MATLAB Function ブロックの解析には Stateflow のライセンスが必要です。

  • Stateflow の一部の要素へのリンク。

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

  • モデルのファイル拡張子が変更された場合のモデルへのリンク。ファイル拡張子が .slx のモデルに要件がリンクされていても、モデルのファイル拡張子が .mdl に変更されると、ダッシュボードは要件リンクを未解決としてリストします。想定されるモデル ファイルを参照するように要件リンクを変更し、要件リンクを再度保存します。

  • ショートカットなど、プロジェクト内のシンボリックなファイルのリンク。

  • ライブラリ転送テーブルなど、モデル テスト ダッシュボードでサポートされていないモデル要素へのリンク。

データ ディクショナリ エントリへの要件リンクの場合、ダッシュボードは要件から、データ ディクショナリ エントリに関連付けられたデータ ディクショナリ ファイルまでトレースします。

トレースされない要件リンク セットの修正.  従来の要件管理インターフェイス (RMI) 形式を使用しない要件リンク セットを確認します。ダッシュボードで要件リンク セットを解析できるようにするには、要件リンク セットを入力引数として関数 slreq.refreshSourceArtifactPath に渡します。

トレースされない設計アーティファクトの修正.  設計アーティファクトが、モデルとリンクしているモデル コールバックに依存していないことを確認します。モデル テスト ダッシュボードは、解析のためにモデルを読み込むときに、モデル読み込みコールバックを実行しません。モデルがデータ ディクショナリをリンクするためにコールバックに依存している場合、ダッシュボードがトレーサビリティ解析を実行するときにデータ ディクショナリはリンクされません。

トレースされないテスト ケースの修正.  テスト ハーネスを使用して、テスト ケースがモデルに対して実行されるか、モデル内のサブシステムに対して実行されることを確認します。

トレースされないテスト結果の修正.  プロジェクトとテスト ケースが正しく設定されていることを確認し、テストを再実行します。テスト ケースの実行時に以下のいずれかの条件が満たされた場合、生成された結果はトレースされていません。なぜなら、ダッシュボードがユニットとの間で明確なトレーサビリティを確立することができないからです。

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

  • アーティファクトのトレースがプロジェクトに対して有効になっていない。アーティファクトのトレースが有効になっていない場合、ダッシュボードは変更を追跡したり、テスト ケースから生成されたテスト結果までトレースしたりできません。詳細については、プロジェクトに対するアーティファクトのトレースの有効化を参照してください。

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

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

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

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

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

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

  • テスト結果が、MATLAB ベースの Simulink テストなど、モデル テスト ダッシュボードでサポートされていないテスト ケースで生成されたものである。

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

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

  • アーティファクトのトレースがプロジェクトに対して有効になっていない。詳細については、プロジェクトに対するアーティファクトのトレースの有効化を参照してください。

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

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

メトリクスが要件の結果、テスト ケース、またはテスト結果をレポートしない

アーティファクトがユニット モデルの 1 つまでトレースしているにもかかわらず、そのユニットのメトリクス結果に表示されない場合は、アーティファクトのタイプに応じて次のいずれかの解決策を試してください。

メトリクス結果を生成しない要件の修正.  要件が、[タイプ]Implements に設定されているリンクによって、モデルに直接リンクしていることを確認します。ダッシュボードのメトリクスは実装済み機能要件のみを解析します。各ユニットについて、フォルダー [機能要件][実装済み] に実装済み機能要件が表示されます。上流の要件はフォルダー [機能要件][上流] に表示されますが、上流の要件は実装済み要件に間接的または推移的にのみリンクされているため、メトリクス結果の対象になりません。

メトリクス結果を生成しないテスト ケースの修正.  テスト ケースがユニット モデル全体またはモデルのサブシステムを直接テストすることを確認します。ダッシュボードのメトリクスはユニット テストのみを解析します。各ユニットについて、フォルダー [テスト][ユニット テスト] にユニット テスト ケースが表示されます。その他のテスト ケース (ユニット テスト以外) はフォルダー [テスト][その他] に表示されますが、その他のテストはユニット モデルまたはモデルのサブシステムを直接テストしないため、メトリクス結果の対象になりません。たとえば、ライブラリについてのテストはダッシュボードでユニット テストとは見なされません。

メトリクス結果を生成しないテスト結果の修正.  結果が次の基準を満たしていることを確認します。

  • 結果が、テスト ケースから生成された最新の結果である。

  • 結果が、フォルダー [テスト][ユニット テスト] に表示されるユニット テストから取得される。フォルダー [テスト][その他] のテスト ケースはメトリクス結果の対象になりません。

テスト ケースに複数回の反復が含まれる場合、メトリクス結果はテスト ケース全体のステータスを反映し、個々の反復の結果を表示しません。

ダッシュボードで古い結果を個々のテスト ケースやテスト スイートに分離できるのは、テスト ケースやテスト スイートにリビジョン番号が付いている場合のみです。テスト ケースまたはテスト スイートがリビジョン番号を保存しないリリースで保存された場合、テスト ファイルで関数 sltest.testmanager.refreshTestRevisions を使用してリビジョン情報を更新します。

カバレッジ メトリクスは、外部の MATLAB ファイルのカバレッジを集計しません。カバレッジ メトリクスには、コンポーネントから呼び出された外部の MATLAB コードのカバレッジ結果は含まれません。

各ユニットについて、フォルダー [テスト結果][ユニット シミュレーション] にメトリクス結果を生成するテスト結果が表示されます。フォルダー [テスト結果][その他] のテスト結果はメトリクス結果の対象になりません。

シミュレーション テスト結果解析のメトリクス結果を生成しないテストの修正.  テスト ケースがユニット テストであり、シミュレーション結果を生成することを確認します。各ユニットについて、メトリクスはフォルダー [テスト結果][ユニット シミュレーション] のテスト結果を解析します。フォルダー [テスト結果][その他] のテスト結果は、シミュレーション結果でない結果、ユニット テストからでない結果、または単なるレポートです。たとえば、SIL の結果はシミュレーション結果ではありません。[シミュレーション テスト結果の解析] セクションのメトリクスでは、シミュレーション テストのみの結果がカウントされるのに対し、[テスト ケースの解析] セクションのメトリクスでは、すべてのユニット テストがカウントされます。

テストが [シミュレーション テスト結果の解析] セクションのメトリクスでカウントされない場合、テスト ケースが、シミュレーション テストであることを示す次の基準を満たしていることを確認します。

  • シミュレーション モードがノーマル、アクセラレータ、またはラピッド アクセラレータである。これらのモードのいずれかをテストした後に、テストで反復を使用して別のシミュレーション モードを設定した場合でも、そのテストはシミュレーション テストと見なされます。

  • テストがリアルタイム テストではない。

  • テストが等価性テストである場合は、最初のシミュレーションが、最初の 2 つの基準の一方を満たしている。

  • テストに複数回の反復が含まれている場合は、テスト ケースまたは少なくとも 1 回の反復が、最初の 2 つの基準の一方を満たしている。

メトリクス結果による欠損リンクまたはアーティファクトの表示

メトリクス結果は、すべてのタイプのトレーサビリティ リンクをカウントしているわけではありません。テスト ケースまたは要件がリンクされていることが想定されるにもかかわらず、リンクがないことがメトリクスで示された場合は、次のいずれかの解決策を試してください。

トレーサビリティの結果にカウントされないリンクの修正.  要件とテスト ケースの間にリンクがあるが、トレーサビリティ メトリクスにはテストまたは要件がリンクされていないと示されている場合、そのリンクがダッシュボードのメトリクスでサポートされているかどうかを確認します。メトリクスは次のリンクをサポートしていません。

  • 正当化への要件リンク。要件が正当化とリンクされ、テスト ケースにリンクされていない場合、メトリクス結果ではリンクされていないと表示されます。

  • テスト ハーネスへの要件リンク。

テスト結果でのモデル カバレッジの欠損の修正.  モデル カバレッジ メトリクスで予期しないカバレッジ ギャップがレポートされた場合は、テスト ケースを再実行し、メトリクス結果を再収集して新しいテスト結果を得ます。モデル テスト ダッシュボードには、次のような場合にカバレッジ ギャップが表示されることがあります。

  • メトリクスの収集後に、テスト結果ファイルまたはカバレッジ フィルター ファイルを変更した。これには、変更後にテスト結果ファイルを再インポートした場合も含まれます。

  • 1 つ以上のテストを実行した後に、累積したカバレッジの結果を収集し、モデル ファイルに変更を加えた。

参考

関連するトピック