Main Content

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

アーティファクトのトレース

ダッシュボードのユニット

"ユニット" とはソフトウェア アーキテクチャ内の機能エンティティであり、個別に、または大規模なシステム テストの一部として実行およびテストできます。ISO 26262-6 などのソフトウェア開発標準は、ユニット テストのオブジェクティブを定義します。ユニット テストは通常、ユニットの各要件に対応しなければならず、要件、テスト、ユニットの間のトレーサビリティを示す必要があります。ユニット テストは、改良条件判定カバレッジ (MC/DC) など、ユニットに対する特定のカバレッジ オブジェクティブも満たす必要があります。

ダッシュボードで、モデルにユニットとしてラベルを付けることができます。ユニットと見なされるモデルを指定しない場合、ダッシュボードでは、他のモデルを参照しないモデルがユニットと見なされます。

ダッシュボード ウィンドウの [プロジェクト] パネルで、ユニットのダッシュボード アイコン がユニットを示します。ユニットがコンポーネントによって参照される場合、[プロジェクト] パネルのコンポーネントの下に表示されます。ユニットが 1 つ以上の他のモデルを参照する場合、これらのモデルはそのユニットの一部です。参照モデルはユニットの [設計] フォルダーに表示され、そのユニットのメトリクス結果に影響を与えます。

Project panel showing a component model, Component1, that contains two unit models: Unit1 and Unit2. The panel also shows a component model, Component2, that contains a component model, Component3.

ユニットであるモデルを指定するには、コンポーネントとユニットとしてのモデルの指定に示すように、プロジェクト内でそれらにラベルを付けて、そのラベルを認識するようにダッシュボードを構成します。

ダッシュボードのコンポーネント

"コンポーネント" は複数のテスト可能なユニットを統合するエンティティです。以下に例を示します。

  • 複数のユニット モデルを参照するモデルは、コンポーネント モデルである場合があります。

  • System Composer™ アーキテクチャ モデルは、コンポーネントである場合があります。サポート対象のアーキテクチャには、System Composer アーキテクチャ モデル、System Composer ソフトウェア アーキテクチャ モデル、AUTOSAR アーキテクチャなどがあります。

  • コンポーネントは他のコンポーネントを統合することもできます。

ダッシュボードでは、[プロジェクト] パネルでコンポーネントとユニットを参照するコンポーネントの下でコンポーネントとユニットが整理されます。

コンポーネントと見なされるモデルを指定しない場合、ダッシュボードでは、1 つ以上の他のモデルを参照するモデルがコンポーネントと見なされます。

ダッシュボード ウィンドウの [プロジェクト] パネルで、コンポーネント アイコン がコンポーネントを示します。コンポーネントの下でユニットを確認するには、コンポーネント アイコンの横にある矢印をクリックして、コンポーネント ノードを展開します。

コンポーネントと見なされるモデルを指定するには、コンポーネントとユニットとしてのモデルの指定に示すように、プロジェクト内でそれらにラベルを付けて、そのラベルを認識するようにダッシュボードを構成します。

コンポーネントとユニットとしてのモデルの指定

プロジェクト内のモデルにラベルを付けて、そのラベルを認識するようにダッシュボードを構成することで、ユニットおよびコンポーネントとして表示されるモデルを制御できます。

  1. プロジェクトを開きます。この例では、MATLAB® コマンド ウィンドウで次のように入力します。

    openExample("slcheck/ExploreTestingMetricDataInModelTestingDashboardExample");
    openProject("cc_CruiseControl");
    このプロジェクト例にはコンポーネント モデルとユニット モデルが既に構成されています。

  2. テスト アーキテクチャのラベルを含めるプロジェクト ラベル カテゴリを作成します。[ラベル] ペインを右クリックし、[新規カテゴリの作成] を選択します。Testing Interface など、カテゴリに対して名前を入力し、[OK] をクリックします。

  3. ユニットのラベルを作成します。作成したカテゴリをクリックし、[新規ラベルの作成] を選択します。Software Unit というラベル名を入力し、[OK] をクリックします。

  4. コンポーネントのラベルを作成します。作成したカテゴリをクリックし、[新規ラベルの作成] を選択します。Software Component というラベル名を入力し、[OK] をクリックします。

    ユニットとコンポーネントのラベルが [ラベル] ペインのカテゴリの下に表示されます。

    Labels pane showing the Testing Interface category with the labels Software Component and Software Unit

    プロジェクト ラベル カテゴリおよびラベルの作成方法の詳細については、ラベルの作成を参照してください。

  5. プロジェクト内のモデルにコンポーネントおよびユニットとしてラベルを付けます。プロジェクト ペインでモデルを右クリックして、[ラベルの追加] をクリックし、カテゴリとラベルを選択します。この例の場合、以下のラベルを適用します。

    • cc_CruiseControl[Testing Interface][Software Component]

    • cc_ControlMode[Testing Interface][Software Unit]

    • cc_DriverSwRequest[Testing Interface][Software Unit]

    • cc_LightControl[Testing Interface][Software Unit]

    • cc_TargetSpeedThrottle[Testing Interface][Software Unit]

    プロジェクト ラベルの追加方法の詳細については、ファイルへのラベルの追加を参照してください。

  6. 次のいずれかの方法を使用してダッシュボード ウィンドウを開きます。

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

    • [プロジェクト] タブの [ツール] セクションで、[モデル設計ダッシュボード] をクリックします。

  7. [ダッシュボード] タブで、[オプション] をクリックします。

  8. [プロジェクト オプション] ダイアログ ボックスの [分類] セクションで、コンポーネントとユニットに対して作成したカテゴリとラベルを指定します。コンポーネント インターフェイスの場合、[カテゴリ]Testing Interface[ラベル]Software Component に設定します。ユニット インターフェイスの場合、[カテゴリ]Testing Interface[ラベル]Software Unit に設定します。

    Project Options dialog box showing categories and labels specified for component and unit interfaces

  9. [適用] をクリックします。ダッシュボードで [プロジェクト] パネルのトレーサビリティ情報が更新され、モデルを参照するコンポーネント モデルの下でモデルが整理されます。モデルがコンポーネントによって参照されない場合、コンポーネントの最上位に表示されます。

ユニットまたはコンポーネント用のダッシュボードを開くには、[プロジェクト] パネルで、そのユニットまたはコンポーネントの名前をクリックします。ダッシュボードに、選択したユニットまたはコンポーネントのメトリクス結果が表示されます。

アーティファクトをユニットおよびコンポーネントまでトレース

ダッシュボードの [プロジェクト] パネルでは、テスト レベルとモデル参照階層に従ってモデルが整理されています。プロジェクトに多くのモデルとモデル参照階層が含まれている場合、モデルのさまざまなテスト レベルを識別するようにダッシュボードを構成することにより、ユニット テスト アクティビティを追跡できます。プロジェクト内のエンティティにラベルを付けて、そのラベルを認識するようにダッシュボードを構成することで、ソフトウェア アーキテクチャ内でユニットおよび上位レベルのコンポーネントであるエンティティを指定できます。コンポーネントと見なされるモデルを指定しない場合、ダッシュボードでは、1 つ以上の他のモデルを参照するモデルがコンポーネントと見なされます。詳細については、階層内のモデルをコンポーネントまたはユニットとして分類を参照してください。

ユニットまたはコンポーネントのスコープ内にあるアーティファクトを判別するために、ダッシュボードは、プロジェクト内のアーティファクト間、ソフトウェア ユニット モデル間、およびコンポーネント モデル間のトレーサビリティ リンクを解析します。[プロジェクト] パネルでは、ユニットがそれらを参照するコンポーネント別に整理され、リストされます。

Project panel showing units under a component

ユニットまたはコンポーネントとそのアーティファクト間でダッシュボードによって検出されたトレーサビリティ パスを確認するには、ツールストリップの [トレース ビュー] をクリックします。トレース ビューは対話型ダイアグラムであり、これを使用して、アーティファクトが設計のユニットおよびコンポーネントにどのようにトレースされるのかを確認したり、プロジェクトの要件、テスト、およびテスト結果のトレーサビリティ情報を確認したりできます。詳細については、Explore Traceability Information for Units and Componentsを参照してください。

[プロジェクト] パネルでユニットまたはコンポーネントを選択すると、[アーティファクト] パネルに、選択されたユニットまたはコンポーネントまでトレースするアーティファクトが表示されます。トレースされたアーティファクトには次のものがあります。

  • 機能要件

  • 設計アーティファクト

  • テスト

  • テスト結果

Artifacts panel showing traced artifacts for a unit

機能要件

[機能要件] フォルダーには、ユニットまたはコンポーネントで実装されているかユニットまたはコンポーネントの上流にある [タイプ]Functional の要件が表示されます。

メトリクス結果を収集するときに、ダッシュボードはユニットまたはコンポーネントが直接実装する機能要件のみを解析します。[機能要件] フォルダーには、要件がユニットまたはコンポーネントで実装されているのか、ユニットまたはコンポーネントの上流にあるのかを識別しやすくする 2 つのサブフォルダーが含まれます。

  • 実装済み[タイプ]Implements のリンクでユニットまたはコンポーネントに直接リンクされている機能要件。これらの要件は、このユニットまたはコンポーネントについてのダッシュボードのメトリクスで使用されます。

  • 上流 — 実装済みの要件に間接的または推移的にリンクされている機能要件。これらの要件は、このユニットまたはコンポーネントについてのダッシュボードのメトリクスで使用されません。

Requirements Toolbox™ を使用して要件ファイル (.slreqx) で要件を作成するかインポートします。ユニットまたはコンポーネントへとトレースしない要件は、問題のトレースフォルダーに表示されます。要件が、想定に反して [アーティファクト] パネルに表示されない場合は、アーティファクト、リンク、および結果の欠損の解決を参照してください。

ダッシュボードがプロジェクト ファイル間の依存関係をトレースする方法の詳細については、デジタル スレッドを使用したアーティファクト トレーサビリティの監視と古くなった結果の検出を参照してください。

設計アーティファクト

[設計] フォルダーには、次のような、現在のユニットまたはコンポーネントへとトレースするプロジェクト アーティファクトが表示されます。

  • ユニットまたはコンポーネントのブロック線図を含むモデル ファイル。

  • ユニットまたはコンポーネントが参照するモデル。

  • モデルによって部分的または完全に使用されるライブラリ。

  • モデルにリンクされているデータ ディクショナリ。

  • モデルへとトレースする外部 MATLAB コード。

アーティファクトが、想定に反して [設計] フォルダーに表示されない場合は、アーティファクト、リンク、および結果の欠損の解決を参照してください。ダッシュボードがプロジェクト ファイル間の依存関係をトレースする方法の詳細については、デジタル スレッドを使用したアーティファクト トレーサビリティの監視と古くなった結果の検出を参照してください。

メモ

ダッシュボードに表示されることが想定される外部 MATLAB コードが表示されない場合は、構造がサポートされていないかどうかを確認してください。

  • 次に該当するクラス メソッドは [アーティファクト] パネルに表示されません。

    • ドット表記を使用して呼び出す非静的メソッド。

    • 関数表記を使用して呼び出す非静的メソッド。

    • ドット表記を使用して Simulink® モデルから呼び出す静的メソッド。

    • スーパークラス メソッド。

    • クラス定義ファイルとは別のファイルに定義されている。

    これらのメソッドについては、ダッシュボードに、[設計] フォルダー内の関連するクラス定義が表示されます。

  • コンストラクターがスーパークラスのコンストラクターの場合、クラス コンストラクターは [アーティファクト] パネルに表示されません。ダッシュボードには [設計] フォルダー内の関連するスーパークラス定義が表示されますが、メソッドそのものは表示されません。

  • クラス プロパティは、そのプロパティが Simulink または Stateflow® から呼び出される場合、[アーティファクト] パネルに表示されません。ダッシュボードの [アーティファクト] パネルには、関連するクラス定義が表示されます。

  • 列挙クラスは [アーティファクト] パネルに表示されません。たとえば、Simulink で Enumerated Constant ブロックを使用する場合、ダッシュボードには enum 型を定義する MATLAB クラスは表示されません。

  • クラス ファイルに同じ名前をもつメソッドとローカル関数が含まれる場合、ドット表記を使用する呼び出しがクラス定義内のメソッドを呼び出し、関数表記を使用する呼び出しがクラス ファイル内のローカル関数を呼び出します。

テスト

[テスト] フォルダーには、選択されたユニットまでトレースするテストとテスト ハーネスが表示されます。"テスト" は以下のいずれかにすることができます。

  • テスト反復

  • 反復のないテスト ケース

ユニットのメトリクス結果を収集するときに、ダッシュボードはユニット テストのみを解析します。[テスト] フォルダーには、テストがユニット テストと見なされるかどうか、および、ユニットまでトレースするテスト ハーネスを識別しやすくするサブフォルダーが含まれます。

  • ユニット テスト — ダッシュボードでユニット テストと見なされるテスト。ユニット テストは、ユニット全体またはユニットの下位レベル要素 (サブシステムなど) を直接テストします。これらのテストは、このユニットについてのダッシュボードのメトリクスで使用されます。

  • その他 — ユニットまでトレースするが、ダッシュボードでユニット テストと見なされないテスト。たとえば、ライブラリについてのテストやバーチャル サブシステムについてのテストはダッシュボードでユニット テストとは見なされません。これらのテストは、このユニットについてのダッシュボードのメトリクスで使用されません。

  • テスト ハーネス — ユニットまたはユニットの下位レベル要素までトレースするテスト ハーネス。テスト ハーネスはダブルクリックすると開きます。

Simulink Test™ を使用してテストを作成します。ユニットへとトレースしないテストは、問題のトレースフォルダーに表示されます。想定に反して、テストが [アーティファクト] パネルに表示されない場合やテストのメトリクス結果が表示されない場合は、アーティファクト、リンク、および結果の欠損の解決を参照してください。

ダッシュボードがプロジェクト ファイル間の依存関係をトレースする方法の詳細については、デジタル スレッドを使用したアーティファクト トレーサビリティの監視と古くなった結果の検出を参照してください。

テスト結果

ユニットのメトリクス結果を収集するときに、ダッシュボードはユニット テストからのテスト結果のみを解析します。[テスト結果] フォルダーには、ユニット テストからのテスト結果を識別しやすくするサブフォルダーが含まれます。

  • [モデル][SIL]、および [PIL] のサブフォルダーには、それぞれノーマル、ソフトウェアインザループ (SIL)、およびプロセッサインザループ (PIL) ユニット テストのシミュレーション結果が含まれます。これらの結果は、このユニットについてのダッシュボードのメトリクスで使用されます。

    テスト結果の次のタイプが表示されます。

    • Saved test file icon 保存されたテスト結果 — テスト マネージャーで収集し、結果ファイルにエクスポートした結果。

    • Temporary test results icon 一時的なテスト結果 — テスト マネージャーで収集したものの、結果ファイルにはエクスポートしていない結果。テスト マネージャーから結果をエクスポートすると、ダッシュボードは一時的な結果ではなく保存された結果を解析します。また、プロジェクトを閉じるか、Simulink Test の結果エクスプローラーで結果セットを閉じると、ダッシュボードは一時的な結果の認識を停止します。後続のテスト セッションまたはプロジェクト セッションで結果を解析する場合は、結果を結果ファイルにエクスポートしてください。

  • その他 — シミュレーション結果以外の結果、ユニット テストからでない結果、または単なるレポート。たとえば、SIL の結果はシミュレーション結果ではありません。これらの結果は、このユニットについてのダッシュボードのメトリクスで使用されません。

ユニットへとトレースしないテスト結果は、問題のトレースフォルダーに表示されます。想定に反して、テスト結果が [アーティファクト] パネルに表示されない場合やテストのメトリクス結果が表示されない場合は、アーティファクト、リンク、および結果の欠損の解決を参照してください。

ダッシュボードがプロジェクト ファイル間の依存関係をトレースする方法の詳細については、デジタル スレッドを使用したアーティファクト トレーサビリティの監視と古くなった結果の検出を参照してください。

問題のトレース

[問題のトレース] フォルダーには、ダッシュボードがいずれのユニットまたはコンポーネントまでもトレースしていないアーティファクトが表示されます。[問題のトレース] フォルダーを使用して、ユニットまたはコンポーネントへのトレーサビリティがアーティファクトから欠落しているかどうかをチェックします。[問題のトレース] フォルダーには問題のトレースのタイプを識別しやすくするサブフォルダーが含まれます。

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

  • 未解決で未サポートのリンク — プロジェクトで切断された要件リンクまたはダッシュボードでサポートされていない要件リンク。たとえば、モデル ブロックが要件を実装しているが、そのモデル ブロックが削除された場合、要件リンクは未解決になります。ダッシュボードは、一部のアーティファクトおよび一部のリンクのトレーサビリティ解析をサポートしません。

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

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

ダッシュボードは、一部のアーティファクトおよび一部のリンクのトレーサビリティ解析をサポートしません。ユニットまたはコンポーネントへとトレースすることが想定されているアーティファクトがトレースなしの場合は、アーティファクト、リンク、および結果の欠損の解決でトラブルシューティング ソリューションを参照してください。

アーティファクトの問題

解析中にエラー、警告、および情報メッセージの原因となったアーティファクトの詳細を確認するには、ツールストリップの [アーティファクトの問題] をクリックします。問題は MATLAB セッション間で保持され、重大度、メッセージ、ソース、またはメッセージ ID でメッセージを並べ替えることができます。

メッセージには以下が表示されます。

  • ダッシュボードがサポートしないモデル構造

  • ダッシュボードがトレースしないリンク

  • ダッシュボードがサポートしないテスト ハーネスまたはテスト ケース

  • テスト結果の未達カバレッジまたはシミュレーション結果

  • ダッシュボードによる読み込み時にエラーを返すアーティファクト

  • ダッシュボードが非アクティブにするモデル コールバックに関する情報

  • パス上になく、トレース中に考慮されないアーティファクト

詳細については、View Artifact Issues in Projectを参照してください。

アーティファクト エラー

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

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

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

アーティファクトの解析中にダッシュボードで検出される警告およびエラーの詳細を確認するには、ツールストリップの [アーティファクトの問題] をクリックします。こうしたアーティファクトを開いて、エラーを修正します。ダッシュボードは、ダッシュボードの上部にバナーを表示して、[プロジェクト] パネルと [アーティファクト] パネルに表示されるアーティファクト トレーサビリティが古くなっていることを示します。バナー上の [アーティファクトのトレース] ボタンをクリックし、[プロジェクト] パネルと [アーティファクト] パネルのデータをリフレッシュします。