このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
アーティファクトのトレース
ユニット
"ユニット" とはソフトウェア アーキテクチャ内の機能エンティティであり、個別に、または大規模なシステム テストの一部として実行およびテストできます。ISO 26262-6 などのソフトウェア開発標準は、ユニット テストのオブジェクティブを定義します。ユニット テストは通常、ユニットの各要件に対応しなければならず、要件、テスト、ユニットの間のトレーサビリティを示す必要があります。ユニット テストは、改良条件判定カバレッジ (MC/DC) など、ユニットに対する特定のカバレッジ オブジェクティブも満たす必要があります。
既定では、ダッシュボードはプロジェクト フォルダー内のすべてのモデルを解析し、Simulink® モデルをユニットと見なします。
プロジェクト内のユニットとコンポーネントは、トレース ビューを使用して確認できます。詳細については、Explore Traceability Information Using Trace Viewsを参照してください。特定のモデルをダッシュボードから除外する場合は、コンポーネントとユニットとしてのモデルの指定に示すように、プロジェクト内の対象とするモデルにラベルを付けて、そのラベルを認識するようにダッシュボードを構成することで、ユニットまたはコンポーネントであるモデルを指定します。
コンポーネント
"コンポーネント" は複数のテスト可能なユニットを統合するエンティティです。
既定では、ダッシュボードはプロジェクト フォルダー内のすべてのモデルを解析し、System Composer™ アーキテクチャ モデルをコンポーネントと見なします。サポート対象のアーキテクチャには、System Composer アーキテクチャ モデル、System Composer ソフトウェア アーキテクチャ モデル、AUTOSAR アーキテクチャなどがあります。
プロジェクト内のユニットとコンポーネントは、トレース ビューを使用して確認できます。詳細については、Explore Traceability Information Using Trace Viewsを参照してください。特定のモデルをダッシュボードから除外する場合は、コンポーネントとユニットとしてのモデルの指定に示すように、プロジェクト内の対象とするモデルにラベルを付けて、そのラベルを認識するようにダッシュボードを構成することで、ユニットまたはコンポーネントであるモデルを指定します。
コンポーネントとユニットとしてのモデルの指定
プロジェクト内のモデルにラベルを付けて、そのラベルを認識するようにダッシュボードを構成することで、ユニットおよびコンポーネントとして表示されるモデルを制御できます。
プロジェクトを開きます。この例では、MATLAB® コマンド ウィンドウで次のように入力します。
このプロジェクト例にはコンポーネント モデルとユニット モデルが既に構成されています。openExample("slcheck/ExploreTestingMetricDataInModelTestingDashboardExample"); openProject("cc_CruiseControl");
テスト アーキテクチャのラベルを含めるプロジェクト ラベル カテゴリを作成します。[ラベル] ペインを右クリックし、[新規カテゴリの作成] を選択します。
Testing Interface
など、カテゴリに対して名前を入力し、[OK] をクリックします。ユニットのラベルを作成します。作成したカテゴリをクリックし、[新規ラベルの作成] を選択します。
Software Unit
というラベル名を入力し、[OK] をクリックします。コンポーネントのラベルを作成します。作成したカテゴリをクリックし、[新規ラベルの作成] を選択します。
Software Component
というラベル名を入力し、[OK] をクリックします。ユニットとコンポーネントのラベルが [ラベル] ペインのカテゴリの下に表示されます。
プロジェクト ラベル カテゴリおよびラベルの作成方法の詳細については、を参照してください。
プロジェクト内のモデルにコンポーネントおよびユニットとしてラベルを付けます。プロジェクト ペインでモデルを右クリックして、[ラベルの追加] をクリックし、カテゴリとラベルを選択します。この例の場合、以下のラベルを適用します。
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]
プロジェクト ラベルの追加方法の詳細については、を参照してください。
次のいずれかの方法を使用してダッシュボード ウィンドウを開きます。
[プロジェクト] タブの [ツール] セクションで、[モデル テスト ダッシュボード] をクリックします。
[プロジェクト] タブの [ツール] セクションで、[モデル設計ダッシュボード] をクリックします。
[ダッシュボード] タブで、[オプション] をクリックします。
[プロジェクト オプション] ダイアログ ボックスの [分類] セクションで、コンポーネントとユニットに対して作成したカテゴリとラベルを指定します。コンポーネント インターフェイスの場合、[カテゴリ] を
Testing Interface
、[ラベル] をSoftware Component
に設定します。ユニット インターフェイスの場合、[カテゴリ] をTesting Interface
、[ラベル] をSoftware Unit
に設定します。[適用] をクリックします。ダッシュボードで [プロジェクト] パネルのアーティファクトの一覧が更新されます。
ユニットまたはコンポーネント用のダッシュボードを開くには、[プロジェクト] パネルで、そのユニットまたはコンポーネントの名前をクリックします。ダッシュボードに、選択したユニットまたはコンポーネントのメトリクス結果が表示されます。
アーティファクトをユニットおよびコンポーネントまでトレース
[プロジェクト] パネルには、現在のプロジェクトのアーティファクトのうち、現在選択されているダッシュボードと互換性があるアーティファクトが表示されます。たとえば、プロジェクト内のユニットのモデル テスト ダッシュボードを開いたり、プロジェクト内のユニットまたはコンポーネントのモデル保守性ダッシュボードを開いたりできます。プロジェクト内のエンティティにラベルを付けて、そのラベルを認識するようにダッシュボードを構成することで、ソフトウェア アーキテクチャ内でユニットおよび上位レベルのコンポーネントであるエンティティを指定できます。既定では、コンポーネントと見なされるモデルを指定しない場合、ダッシュボードではそれぞれを次のように見なします。
Simulink モデルはユニット。
System Composer アーキテクチャ モデルはコンポーネント。
詳細については、階層内のモデルをコンポーネントまたはユニットとして分類を参照してください。
ユニットまたはコンポーネントのスコープ内にあるアーティファクトを判別するために、ダッシュボードは、プロジェクト内のアーティファクト間、ソフトウェア ユニット モデル間、およびコンポーネント モデル間のトレーサビリティ リンクを解析します。既定では、ファイルがパス上にない場合やプロジェクトに追加されていない場合も含め、プロジェクト フォルダー内のすべてのファイルがダッシュボードで解析されます。特定のモデルをダッシュボードから除外する場合は、コンポーネントとユニットとしてのモデルの指定に示すように、プロジェクト内の対象とするモデルにラベルを付けて、そのラベルを認識するようにダッシュボードを構成することで、ユニットまたはコンポーネントであるモデルを指定します。
ユニットまたはコンポーネントとそのアーティファクト間でダッシュボードによって検出されたトレーサビリティ パスを確認するには、ツールストリップの [トレース ビュー] をクリックします。トレース ビューは対話型ダイアグラムであり、これを使用して、アーティファクトが設計のユニットおよびコンポーネントにどのようにトレースされるのかを確認したり、プロジェクトの要件、テスト、およびテスト結果のトレーサビリティ情報を確認したりできます。詳細については、Explore Traceability Information Using Trace Viewsを参照してください。
[プロジェクト] パネルでアーティファクトを選択すると、[アーティファクト] パネルに、選択されたアーティファクトまでトレースするアーティファクトが表示されます。ユニットおよびコンポーネントの場合、トレースされるアーティファクトには以下が含まれます。
機能要件
設計アーティファクト
テスト
テスト結果
機能要件
[機能要件] フォルダーには、ユニットまたはコンポーネントで実装されているかユニットまたはコンポーネントの上流にある [タイプ] が Functional
の要件が表示されます。
メトリクス結果を収集するときに、ダッシュボードはユニットまたはコンポーネントが直接実装する機能要件のみを解析します。[機能要件] フォルダーには、要件がユニットまたはコンポーネントで実装されているのか、ユニットまたはコンポーネントの上流にあるのかを識別しやすくする 2 つのサブフォルダーが含まれます。
実装済み — [タイプ] が
Implements
のリンクでユニットまたはコンポーネントに直接リンクされている機能要件。これらの要件は、このユニットまたはコンポーネントについてのダッシュボードのメトリクスで使用されます。上流 — 実装済みの要件に間接的または推移的にリンクされている機能要件。これらの要件は、このユニットまたはコンポーネントについてのダッシュボードのメトリクスで使用されません。
Requirements Toolbox™ を使用して要件ファイル (.slreqx
) で要件を作成するかインポートします。ユニットまたはコンポーネントへとトレースしない要件は、問題のトレースフォルダーに表示されます。要件が、想定に反して [アーティファクト] パネルに表示されない場合は、アーティファクト、リンク、および結果の欠損の解決を参照してください。
ダッシュボードがプロジェクト ファイル間の依存関係をトレースする方法の詳細については、デジタル スレッドを使用したアーティファクト トレーサビリティの監視と古くなった結果の検出を参照してください。
設計アーティファクト
[設計] フォルダーには、次のような、現在のユニットまたはコンポーネントへとトレースするプロジェクト アーティファクトが表示されます。
ユニットまたはコンポーネントのブロック線図を含むモデル ファイル。
ユニットまたはコンポーネントが参照するモデル。
モデルによって部分的または完全に使用されるライブラリ。
モデルにリンクされているデータ ディクショナリ。
モデルへとトレースする外部 MATLAB コード。
アーティファクトが、想定に反して [設計] フォルダーに表示されない場合は、アーティファクト、リンク、および結果の欠損の解決を参照してください。ダッシュボードがプロジェクト ファイル間の依存関係をトレースする方法の詳細については、デジタル スレッドを使用したアーティファクト トレーサビリティの監視と古くなった結果の検出を参照してください。
メモ
ダッシュボードに表示されることが想定される外部 MATLAB コードが表示されない場合は、構造がサポートされていないかどうかを確認してください。
次に該当するクラス メソッドは [アーティファクト] パネルに表示されません。
ドット表記を使用して呼び出す非静的メソッド。
関数表記を使用して呼び出す非静的メソッド。
ドット表記を使用して Simulink モデルから呼び出す静的メソッド。
スーパークラス メソッド。
クラス定義ファイルとは別のファイルに定義されている。
これらのメソッドについては、ダッシュボードに、[設計] フォルダー内の関連するクラス定義が表示されます。
コンストラクターがスーパークラスのコンストラクターの場合、クラス コンストラクターは [アーティファクト] パネルに表示されません。ダッシュボードには [設計] フォルダー内の関連するスーパークラス定義が表示されますが、メソッドそのものは表示されません。
クラス プロパティは、そのプロパティが Simulink または Stateflow® から呼び出される場合、[アーティファクト] パネルに表示されません。ダッシュボードの [アーティファクト] パネルには、関連するクラス定義が表示されます。
列挙クラスは [アーティファクト] パネルに表示されません。たとえば、Simulink で Enumerated Constant ブロックを使用する場合、ダッシュボードには
enum
型を定義する MATLAB クラスは表示されません。クラス ファイルに同じ名前をもつメソッドとローカル関数が含まれる場合、ドット表記を使用する呼び出しがクラス定義内のメソッドを呼び出し、関数表記を使用する呼び出しがクラス ファイル内のローカル関数を呼び出します。
テスト
[テスト] フォルダーには、選択されたユニットまでトレースするテストとテスト ハーネスが表示されます。"テスト" は、テスト反復または反復のないテスト ケースのいずれかにすることができます。
ユニットのメトリクス結果を収集するときに、ダッシュボードはユニット テストのみを解析します。[テスト] フォルダーには、テストがユニット テストと見なされるかどうか、および、ユニットまでトレースするテスト ハーネスを識別しやすくするサブフォルダーが含まれます。
ユニット テスト — ダッシュボードでユニット テストと見なされるテスト。ユニット テストは、ユニット全体またはユニットの下位レベル要素 (サブシステムなど) を直接テストします。これらのテストは、このユニットについてのダッシュボードのメトリクスで使用されます。
その他 — ユニットまでトレースするが、ダッシュボードでユニット テストと見なされないテスト。たとえば、ライブラリについてのテストやバーチャル サブシステムについてのテストはダッシュボードでユニット テストとは見なされません。これらのテストは、このユニットについてのダッシュボードのメトリクスで使用されません。
テスト ハーネス — ユニットまたはユニットの下位レベル要素までトレースするテスト ハーネス。テスト ハーネスはダブルクリックすると開きます。
Simulink Test™ を使用してテストを作成します。ユニットへとトレースしないテストは、問題のトレースフォルダーに表示されます。想定に反して、テストが [アーティファクト] パネルに表示されない場合やテストのメトリクス結果が表示されない場合は、アーティファクト、リンク、および結果の欠損の解決を参照してください。
ダッシュボードがプロジェクト ファイル間の依存関係をトレースする方法の詳細については、デジタル スレッドを使用したアーティファクト トレーサビリティの監視と古くなった結果の検出を参照してください。
テスト結果
ユニットのメトリクス結果を収集するときに、ダッシュボードはユニット テストからのテスト結果のみを解析します。[テスト結果] フォルダーには、ユニット テストからのテスト結果を識別しやすくするサブフォルダーが含まれます。
[モデル]、[SIL]、および [PIL] のサブフォルダーには、それぞれノーマル、ソフトウェアインザループ (SIL)、およびプロセッサインザループ (PIL) ユニット テストのシミュレーション結果が含まれます。これらの結果は、このユニットについてのダッシュボードのメトリクスで使用されます。
テスト結果の次のタイプが表示されます。
保存されたテスト結果 — テスト マネージャーで収集し、結果ファイルにエクスポートした結果。
一時的なテスト結果 — テスト マネージャーで収集したものの、結果ファイルにはエクスポートしていない結果。テスト マネージャーから結果をエクスポートすると、ダッシュボードは一時的な結果ではなく保存された結果を解析します。また、プロジェクトを閉じるか、Simulink Test の結果エクスプローラーで結果セットを閉じると、ダッシュボードは一時的な結果の認識を停止します。後続のテスト セッションまたはプロジェクト セッションで結果を解析する場合は、結果を結果ファイルにエクスポートしてください。
その他 — シミュレーション結果以外の結果、ユニット テストからでない結果、無効なテストからでない結果、または単なるレポート。これらの結果は、このユニットについてのダッシュボードのメトリクスで使用されません。
ユニットへとトレースしないテスト結果は、問題のトレースフォルダーに表示されます。想定に反して、テスト結果が [アーティファクト] パネルに表示されない場合やテストのメトリクス結果が表示されない場合は、アーティファクト、リンク、および結果の欠損の解決を参照してください。
外部 MATLAB 関数を使用する場合は、外部 MATLAB 関数のインライン化の制御を参照してください。関数のインライン化により、ダッシュボードでのカバレッジ メトリクスの結果に不整合が生じる可能性があります。
ダッシュボードがプロジェクト ファイル間の依存関係をトレースする方法の詳細については、デジタル スレッドを使用したアーティファクト トレーサビリティの監視と古くなった結果の検出を参照してください。
メモ
モデル カバレッジ メトリクスのカバレッジは要件にはスコープされないことに注意してください。テスト結果で [カバレッジ結果をリンクされた要件にスコープ] チェック ボックスを選択した場合、その選択はダッシュボードで無視され、ダッシュボードに表示されるモデル カバレッジ メトリクスの結果はスコープされません。[カバレッジ結果をリンクされた要件にスコープ] オプションの詳細については、Scoping Coverage for Requirements-Based Tests (Simulink Test)を参照してください。
問題のトレース
[問題のトレース] フォルダーには、ダッシュボードがユニットまたはコンポーネントまでトレースしていないアーティファクトが表示されます。[問題のトレース] フォルダーを使用して、ユニットまたはコンポーネントへのトレーサビリティがアーティファクトから欠落しているかどうかをチェックします。[問題のトレース] フォルダーには問題のトレースのタイプを識別しやすくするサブフォルダーが含まれます。
予期せぬ実装リンク — [タイプ] が
Container
または [タイプ] がInformational
の要件に対する、[タイプ] がImplements
の要件リンク。コンテナー要件と情報要件は、それらが属する要件セットの実装ステータスと検証ステータスの対象とはならないため、ダッシュボードでは、これらのリンクの [タイプ] はImplements
と想定されません。要件が実装対象となっていない場合は、リンク タイプを変更できます。たとえば、[タイプ] がInformational
の要件を、[タイプ] がRelated to
のリンクをもつように変更できます。未解決で未サポートのリンク — プロジェクトで切断された要件リンクまたはダッシュボードでサポートされていない要件リンク。たとえば、モデル ブロックが要件を実装しているが、そのモデル ブロックが削除された場合、要件リンクは未解決になります。ダッシュボードは、一部のアーティファクトおよび一部のリンクのトレーサビリティ解析をサポートしません。
トレースされないテスト — プロジェクト パス上にないモデルまたは下位レベル要素 (サブシステムなど) で実行するテスト。
トレースされない結果 — ダッシュボードがテストまでトレースできなくなった結果。たとえば、テストから結果が生成されたが、そのテストを削除した場合、ダッシュボードで結果をテストまでトレースできなくなります。
ダッシュボードは、一部のアーティファクトおよび一部のリンクのトレーサビリティ解析をサポートしません。ユニットまたはコンポーネントへとトレースすることが想定されているアーティファクトがトレースなしの場合は、アーティファクト、リンク、および結果の欠損の解決でトラブルシューティング ソリューションを参照してください。
アーティファクトの問題
解析中にエラー、警告、および情報メッセージの原因となったアーティファクトの詳細を確認するには、ツールストリップの [アーティファクトの問題] をクリックします。問題は MATLAB セッション間で保持され、重大度、メッセージ、ソース、またはメッセージ ID でメッセージを並べ替えることができます。
メッセージには以下が表示されます。
ダッシュボードがサポートしないモデル構造
ダッシュボードがトレースしないリンク
ダッシュボードがサポートしないテスト ハーネスまたはテスト ケース
テスト結果の未達カバレッジまたはシミュレーション結果
ダッシュボードによる読み込み時にエラーを返すアーティファクト
ダッシュボードが非アクティブにするモデル コールバックに関する情報
パス上になく、トレース中に考慮されないアーティファクト
詳細については、View Artifact Issues in Projectを参照してください。
アーティファクト エラー
ダッシュボードがアーティファクト解析を実行したときにアーティファクトがエラーを返した場合、[エラー] フォルダーが表示されます。トレーサビリティ解析中にアーティファクトが返す可能性があるいくつかのエラーを以下に示します。
トレーサビリティ解析が開始されたときに保存されていない変更がある場合、アーティファクトはエラーを返します。
前のバージョンの Simulink に保存されていた場合、テスト結果ファイルはエラーを返します。
アーティファクトの解析中にダッシュボードで検出される警告およびエラーの詳細を確認するには、ツールストリップの [アーティファクトの問題] をクリックします。こうしたアーティファクトを開いて、エラーを修正します。ダッシュボードは、ダッシュボードの上部にバナーを表示して、[プロジェクト] パネルと [アーティファクト] パネルに表示されるアーティファクト トレーサビリティが古くなっていることを示します。バナー上の [アーティファクトのトレース] ボタンをクリックし、[プロジェクト] パネルと [アーティファクト] パネルのデータをリフレッシュします。