Main Content

要件に基づくテストを ISO 26262 に対して評価する

モデル テスト ダッシュボードを使用して、要件に基づくテスト アクティビティの品質と完全性を ISO 26262-6:2018 に従って評価することができます。ダッシュボードは、要件、テスト、テスト結果の間のトレーサビリティを監視し、テストの完全性と構造カバレッジの概要を提供することで、このアクティビティを容易にします。ダッシュボードは、プロジェクト内の実装および検証アーティファクトを解析し、次を提供します。

  • 要件に基づくテストに関する、ISO 26262-6:2018、Clause 9.4.3 に従った完全性および品質メトリクス

  • 要件に基づくテスト結果に関する、ISO 26262-6:2018、Clause 9.4.4 に従った完全性および品質メトリクス

  • ユニット別に整理された、プロジェクト内のアーティファクトの一覧

要件に基づくテスト アクティビティの完全性を評価するには、モデル テスト ダッシュボードを使用して、以下の自動および手動での確認手順に従います。

モデル テスト ダッシュボードを開いてメトリクス結果を収集

モデル テスト ダッシュボードを使用してテスト アーティファクトを解析するには、以下を行います。

  1. モデルとテスト アーティファクトを含むプロジェクトを開きます。あるいは、ダッシュボードのサンプル プロジェクトを読み込むには、MATLAB® コマンド ウィンドウで次のように入力します。

    openExample("slcheck/ExploreTestingMetricDataInModelTestingDashboardExample");
    openProject("cc_CruiseControl");

  2. ダッシュボードを開きます。モデル テスト ダッシュボードを開くには、以下のいずれかの方法を使用します。

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

    • MATLAB コマンド ラインで以下のように入力します。

      modelTestingDashboard

  3. ダッシュボードの [アーティファクト] パネルでは、要件、テスト、テスト結果などのアーティファクトがトレースするユニットの下に整理されています。サンプル プロジェクトのユニット cc_DriverSwRequest のメトリクス結果を表示するには、[プロジェクト] パネルで [cc_DriverSwRequest] をクリックします。ダッシュボードでメトリクス結果が収集され、ユニットのメトリクス データがウィジェットに取り込まれます。

    メモ

    ユニットと見なされるモデルを指定しない場合、モデル テスト ダッシュボードでは、他のモデルを参照しないモデルがユニットと見なされます。プロジェクト内のモデルにラベルを付けて、そのラベルを認識するようにモデル テスト ダッシュボードを構成することで、ユニットおよびコンポーネントとして表示されるモデルを制御できます。詳細については、コンポーネントとユニットとしてのモデルの指定を参照してください。

Model Testing Dashboard showing results for unit cc_DriverSwRequest

ダッシュボード ウィジェットには、各ユニットのテスト アーティファクトに関するトレーサビリティと完全性の測定値がまとめられています。赤色の [非準拠] オーバーレイ アイコン が表示されたメトリクス結果は、要件に基づくユニットのテストを完了するために対処しなければならない可能性がある問題を示しています。完全なトレーサビリティ、テストの完了、またはモデル カバレッジが表示されている場合、結果は準拠しています。メトリクスの準拠しきい値を確認するには、オーバーレイ アイコンをポイントします。データを詳細に確認するには、個々のメトリクス ウィジェットをクリックします。表には、選択したメトリクスに関して、アーティファクトと各アーティファクトのメトリクス値が表示されます。詳細なメトリクス結果を取得して、問題のあるアーティファクトを修正できるように、表にはアーティファクトを開くためのハイパーリンクが示されています。モデル テスト ダッシュボードの使用方法の詳細については、モデル テスト ダッシュボードを使用してテスト アクティビティのステータスと品質を調査を参照してください。

テストの確認

ユニットがその要件を満たすことを検証するには、そのユニットのテストを要件に基づいて作成します。ISO 26262-6、Clause 9.4.3 は、ユニットのテストを要件から派生させることを求めています。要件のテストを作成するときに、要件のテストへのリンク (Requirements Toolbox)およびEstablish Requirements Traceability for Testing (Simulink Test)で説明されているように、テストと要件の間のトレーサビリティ リンクを追加します。トレーサビリティを利用することで、どの要件がテストによって検証されたかを追跡したり、モデルが満たさない要件を特定することができます。Clause 9.4.3 は、要件とテストの間のトレーサビリティと、テストの正確性および完全性の確認を求めています。ユニットのテストの正確性と完全性を評価するには、モデル テスト ダッシュボードの [テストの解析] セクションにあるメトリクスを使用します。

ISO 26262-6 に関してテストの正確性と完全性を確認するのに役立つサンプル チェックリストを以下に示しています。各質問に対して、対応するダッシュボード メトリクスを使用して確認アクティビティを実行し、対応する修正を適用します。このチェックリストはサンプルとして提供されています。確認し、アプリケーションのニーズを満たすように変更する必要があります。

チェックリスト項目確認アクティビティダッシュボード メトリクス修正法
1 — 各テストは要件までトレースするか。

[要件にリンクされているテスト] セクションのウィジェットを表示して、ユニットのテストがすべて要件にリンクされていることを確認します。

要件にリンクされているテスト

Gauge widget indicating percentage of tests with requirements and count widget indicating one unlinked test

メトリクス ID — TestCaseWithRequirementDistribution

詳細については、Test Case with Requirement Distributionを参照してください。

リンクされていない各テストに対して、要件に基づくテストの問題を修正で説明されているように、テストが検証する要件へのリンクを追加します。

2 — 各テストは適切な要件までトレースするか。

各テストに関して、リンクされている要件が正しいことを手動で検証します。[要件を含むテスト] ウィジェットをクリックし、テストの表を表示します。テストのトレース先の要件を確認するには、[アーティファクト] 列で、テスト名の左側にある矢印をクリックします。

要件にリンクされているテスト

Table of tests and linked requirements

メトリクス ID — TestCaseWithRequirement

詳細については、Test Case with Requirementを参照してください。

不適切な要件への各リンクについては、そのリンクを削除します。テストから適切な要件へのリンクが欠落している場合、正しいリンクを追加します。

3 — テストがすべての要件をカバーしているか。

[テストにリンクされている要件] セクションのウィジェットを表示して、ユニットの要件がすべてテストにリンクされていることを確認します。

テストにリンクされている要件

Gauge widget indicating percentage of requirements with tests and count widget indicating unlinked requirements

メトリクス ID — RequirementWithTestCaseDistribution

詳細については、Requirement with Test Case Distributionを参照してください。

リンクされていない各要件について、要件に基づくテストの問題を修正で説明されているように、それを検証するテストへのリンクを追加します。

4 — テスト ケースはパス/失敗の基準を含めて予想される結果を定義しているか。各タイプのテスト ケースを手動で確認します。[タイプ別のテスト] セクションのウィジェットをクリックして、各タイプのテスト ケースの表を表示します。[シミュレーション][等価性]、および [ベースライン] があります。[アーティファクト] 列のハイパーリンクを使用して、各テスト ケースをテスト マネージャーで開きます。ベースラインのテスト ケースはベースライン基準を定義しなければなりません。シミュレーション テスト ケースについては、Assess Simulation and Compare Output Data (Simulink Test)で説明されているように、各テスト ケースが評価を使用してパス/失敗の基準を定義していることを確認します。

タイプ別のテスト

Table that lists each test case and its type

メトリクス ID — TestCaseType

詳細については、Test Case Typeを参照してください。

予想される結果が定義されていない各テスト ケースについて、[アーティファクト] 列のハイパーリンクをクリックしてテスト マネージャーでテスト ケースを開き、予想されるテストの定義とパス/失敗の基準を追加します。
5 — 各テストはトレース先の要件を適切にテストするか。

各テストの要件リンクと内容を手動で確認します。[要件を含むテスト] ウィジェットをクリックし、テストの表を表示します。テストのトレース先の要件を確認するには、[アーティファクト] 列で、テスト名の左側にある矢印をクリックします。ハイパーリンクを使用してテストと要件を開き、テストが要件を適切にテストすることを確認します。

要件にリンクされているテスト

Table of tests and linked requirements

メトリクス ID — TestCaseWithRequirement

詳細については、Test Case with Requirementを参照してください。

トレースする要件を適切にテストしない各テストについて、[アーティファクト] 列のハイパーリンクをクリックしてテスト マネージャーでテストを開き、テストを更新します。あるいは、要件をさらにテストするテストを追加します。

テスト結果の確認

ユニットに対してテストを実行後、その結果を確認し、テストが実行されたこと、パスしたこと、ユニットを十分にテストしたことをチェックしなけれななりません。ISO 26262-6:2018 の Clause 9.4.4 では、ユニットごとに要件のカバレッジを解析することを求めています。各テストで意図したモデルをテストし、パスしていることを確認します。さらに、テストのモデル カバレッジ結果を収集することで、ユニットのカバレッジを測定します。ユニットの要件のテスト カバレッジを評価するには、モデル テスト ダッシュボードの [シミュレーション テスト結果の解析] セクションのメトリクスを使用します。

ダッシュボードを使用したテスト結果の解析と確認を容易にするために、以下のチェックリストが提供されています。各質問に対して、対応するダッシュボード メトリクスを使用して確認アクティビティを実行し、対応する修正を適用します。このチェックリストはサンプルとして提供されています。確認し、アプリケーションのニーズを満たすように変更する必要があります。

チェックリスト項目確認アクティビティダッシュボード メトリクス修正法
1 — 各テスト結果はテストまでトレースするか。ダッシュボードに表示されるテスト結果のみを使用します。テストまでトレースしないテスト結果はダッシュボードに表示されません。[モデル テストのステータス] セクションのウィジェットをクリックすると、テストとそれらのトレース結果の表が示されます。

モデル テストのステータス

Table of failed tests

メトリクス ID — slcomp.mt.TestStatusDistribution

詳細については、Model Test Status Distributionを参照してください。

メトリクスの詳細を開き、[アーティファクト] 列のハイパーリンクをクリックしてテスト マネージャーでテストを開きます。結果がトレースすべきテストを再実行し、新しい結果をエクスポートします。
2 — 各テストはテスト結果までトレースするか。未テストのテストおよび無効なテストがないことを確認します。

モデル テストのステータス

Widgets showing count of untested and disabled tests

メトリクス ID — slcomp.mt.TestStatusDistribution

詳細については、Model Test Status Distributionを参照してください。

無効または未テストの各テストについて、テスト マネージャーでテストを有効にして実行します。
3 — すべてのテストが実行されたか。未テストのテストおよび無効なテストがないことを確認します。

モデル テストのステータス

Widget showing count of untested and disabled tests

メトリクス ID — slcomp.mt.TestStatusDistribution

詳細については、Model Test Status Distributionを参照してください。

無効または未テストの各テストについて、テスト マネージャーでテストを有効にして実行します。
4 — すべてのテストがパスするか。

ユニットのテストがすべてパスしたことを確認します。

モデル テストのステータス

Gauge widget indicated percentage of tests that passed

メトリクス ID — slcomp.mt.TestStatusDistribution

詳細については、Model Test Status Distributionを参照してください。

各テストの失敗に関して、テスト マネージャーで失敗を確認し、モデル内の対応するテストまたは設計要素を修正します。
5 — すべてのテスト結果にカバレッジ結果が含まれているか。テスト マネージャーで各テスト結果を手動で確認し、カバレッジ結果が含まれていることをチェックします。該当なしカバレッジを含まない各テスト結果について、テスト マネージャーでテストを開き、カバレッジの収集を有効にします。テストを再度実行します。
6 — 各ユニットで必要な構造カバレッジ オブジェクティブを達成したか。テストがユニット テストで要求されるカバレッジ タイプの 100% のモデル カバレッジを達成していることを確認します。必要なカバレッジ タイプを判別するには、ソフトウェア ユニットの安全レベルを考慮して、ISO 26262-6:2018 の Clause 9.4.4 の表 9 を使用します。

モデル カバレッジ

Model coverage results chart

メトリクス ID — slcomp.mt.CoverageBreakdown

詳細については、Model Coverage Breakdownを参照してください。

カバーされていない各設計要素について、解析して、未達カバレッジの原因を判断します。解析によって、テスト、要件、または実装に含まれる欠陥を明らかにすることができます。必要に応じて、要素をカバーするテストを追加します。あるいは、カバレッジ フィルターの規則の作成、編集、表示 (Simulink Coverage)で説明されているように、未達カバレッジを正当化する正当化フィルターを追加します。
7 — 全体的な達成されたカバレッジはすべて要件に基づくテストから得られたものか。全体的な達成されたカバレッジの 100% が要件に基づくテストから得られたものであることを確認します。

ダッシュボードの [達成されたカバレッジの比率] サブセクションにメトリクス結果を表示します。[要件ベースのテスト] の下のウィジェットをクリックすると、それぞれのカバレッジ タイプについての全体的な達成されたカバレッジのソースについての情報が得られます。

Requirements-based test chart

関連するメトリクス ID については、要件ベースのテストを参照してください。

要件に基づくテストから得られたものではない全体的な達成されたカバレッジについて、テストが検証する要件へのリンクを追加します。

8 — 全体的な達成されたカバレッジはユニットを適切にテストするテストから得られたものか。各テストについて、内容を手動で確認します。ユニット境界テストから得られた全体的な達成されたカバレッジの割合を確認します。

ダッシュボードの [達成されたカバレッジの比率] サブセクションにメトリクス結果を表示します。[ユニット境界テスト] の下のウィジェットをクリックすると、それぞれのカバレッジ タイプについての全体的な達成されたカバレッジのソースについての情報が得られます。

Unit-boundary test chart

関連するメトリクス ID については、ユニット境界テストを参照してください。

ユニット境界テストから得られたものではない全体的な達成されたカバレッジについて、ユニット全体をテストするテストを追加するか、またはユニットのモデル定義を再考します。
9 — 欠陥は正しく正当化されたか。

カバレッジの正当化を手動で確認します。[モデル カバレッジ] セクションのバーをクリックして、対応するカバレッジ タイプの結果の表を表示します。さらに詳しく確認するためにテスト結果をテスト マネージャーで開くには、[アーティファクト] 列のハイパーリンクをクリックします。

モデル カバレッジ

Table of decision coverage results

メトリクス ID — slcomp.mt.CoverageBreakdown

詳細については、Model Coverage Breakdownを参照してください。

正しく正当化されていない各カバレッジ ギャップについて、未達カバレッジの正当化を更新します。あるいは、ギャップをカバーするテストを追加します。

ISO 26262 に従ったユニットの検証

モデル テスト ダッシュボードは、ユニットの要件に基づくテスト アクティビティの品質と完全性に関する情報を提供します。ISO 26262-6:2018 に準拠するために、別のアーキテクチャ レベルでもソフトウェアをテストしなければなりません。ISO 26262-6:2018 では、以下のテスト レベルの準拠要件が示されています。

  • ソフトウェア ユニット テスト (表 7、メソッド 1j)

  • ソフトウェア統合テスト (表 10、メソッド 1a)

  • 埋め込みソフトウェア テスト (表 14、メソッド 1a)

ISO 26262-8:2018、Clause 9 で詳細に説明されている汎用的な検証プロセスには、テストの計画、仕様、実行、評価、およびドキュメンテーションを利用してこうした各レベルのテストを体系的に実現できる方法について、追加情報が含まれています。この表は、モデル テスト ダッシュボードがユニット テスト レベルに関する ISO 26262-8:2018、Clause 9 の要件に適用される方法と、準拠性を示すために実行する必要がある補完的なアクティビティを示しています。

要件準拠性の根拠補完的なアクティビティ
9.4.1 — 検証アクティビティの範囲モデル テスト ダッシュボードは安全性に関連するソフトウェア ユニットと安全性に関連しないソフトウェア ユニットすべてに適用されます。該当なし
9.4.2 — 検証メソッドモデル テスト ダッシュボードは、テスト結果に関するビューを含めて、要件に基づくテストの完全性についての概要を提供します (表 7、メソッド 1j)。

該当する場合は、次のような他の検証メソッドを 1 つ以上適用します。

  • 手動での確認と解析チェック リスト

  • 静的コード解析、制御フロー解析、データ フロー解析など、他のツールを適用

  • インターフェイス テスト、フォールト挿入テスト、back-to-back 比較など、追加のテストを作成

9.4.3 — テスト ケースを派生させるためのメソッドモデル テスト ダッシュボードにはソフトウェア ユニットの要件と関連するテストを詳しく検討するための方法がいくつか用意されており、要件からテストを派生させるのに役立ちます。Simulink® Design Verifier™ などの他のツールを使用して、テストを派生させることもできます。
9.4.4 — 要件および構造カバレッジ

モデル テスト ダッシュボードは以下を示すのに役立ちます。

  • 要件のカバレッジの完全性

  • テストによって達成された分岐/ステートメントおよび MCDC モデル カバレッジ

  • 達成したカバレッジの充足性の根拠

ダッシュボードはモデル レベルでのみ構造カバレッジを提供します。他のツールを使用すれば、構造カバレッジをコード レベルで追跡できます。
9.4.5 — テスト環境モデル テスト ダッシュボードは、要件に基づくテストをモデル レベルで実行するのに役立ちます。back-to-back 比較テストを適用して、モデルの動作が生成されたコードと同等であることを検証します。

参考文献:

  • ISO 26262-4:2018(en) 自動車 — 機能安全 — パート 4: システム レベルでの製品開発。国際標準化機構

  • ISO 26262-6:2018(en) 自動車 — 機能安全 — パート 6: ソフトウェア レベルでの製品開発。国際標準化機構

  • ISO 26262-8:2018(en) 自動車 — 機能安全 — パート 8: サポート プロセス。国際標準化機構

参考

関連するトピック