開発ライフサイクル全体にわたる検証

静的解析から認証に至るまでのあらゆる段階で活用できるベクターツール

ISO 26262、DO-178C、IEC 61508、およびIEC 62304に準拠して活動する組込みソフトウェアチームは、開発のあらゆる段階で検証を行っています。その経済的なメリットは明白です。静的解析の段階で発見された欠陥の修正コストは、統合テストの段階で発見された欠陥の修正コストのほんの一部であり、統合テストの段階で発見された欠陥の修正コストは、フィールドで発見された欠陥の修正コストのほんの一部に過ぎません。 静的解析、単体テスト、統合テスト、カバレッジ測定、およびトレーサビリティレコードは、それぞれ特定の段階において重要な役割を果たします。プロジェクトが監査の段階に達する頃には、すでにその証拠が存在しているべきです。

検証は源流から始まります

欠陥を発見するのに最もコスト効率の良いタイミングは、テストが始まる前です。静的コード解析は、ソースコードを実行せずに検査を行い、コーディング標準への違反、型エラー、ヌルポインタの参照、およびセキュリティ上の脆弱性を、コードが記述されたその瞬間に検出します。ビルドパイプラインに組み込むことで、開発者に即座にフィードバックを提供し、プロジェクトの進行に伴い欠陥が蓄積されるのを防ぎます。

単体テスト:すべてのコンポーネントを検証する

コードが記述されると、ユニットテストによって、各関数、モジュール、クラス、またはコンポーネントが、単独で正しく動作するかどうかが検証されます。各テストケースは特定の要件に基づいて記述され、自動的に実行された後、構造的カバレッジが測定されることで、安全標準で要求される双方向のトレーサビリティが確立されます。

VectorCASTは、C、C++、およびAda向けのユニットテスト環境の作成と管理を自動化し、ホスト側およびターゲット側での実行の両方をサポートするとともに、安全標準で要求されるカバレッジデータとトレーサビリティレコードを生成します。

統合テスト:インターフェースのテスト

個々のユニットが検証された後、統合テストでは、ユニット間のインターフェースが正しく動作することを確認します。この段階で、モジュール境界に関する仮定がテストされ、コンポーネント間の結合が確認され、システムレベルの挙動が明らかになり始めます。この段階でもカバレッジ測定は継続され、多くの場合、VectorCAST/QA を使用して、コンパイラとは独立して統合されたソフトウェアに計測コードを埋め込みます。

網羅性、トレーサビリティ、および証拠

ベクターツールは、各標準が規定するレベルに応じて構造カバレッジを測定します。その範囲は、低整合性レベルにおけるステートメントおよび分岐のカバレッジから、ASIL DおよびDO-178CレベルAにおけるMC/DCまで多岐にわたります。すべてのテスト結果は、それが証明する要件と関連付けられており、すべてのカバレッジレポートは、認証機関が審査するフォーマットで生成されます。

継続的な検証

継続的検証とは、レビュー対象としてフラグが立てられたビルドだけでなく、すべてのコミットがチェックされることを意味します。PC-lint Plusは、コードが記述された時点で静的解析を実行します。VectorCASTは、毎回テストスイート全体を実行するのではなく、各変更の影響を受けるテストのみを再実行します。Squoreは、これらの実行による累積的な影響をモニターし、品質ゲートを適用するとともに、リリース上のリスクとなる前に傾向を明らかにします。

この環境向けに開発されたツール

ベクターの検証ツールは、安全性が極めて重要な組み込みシステムの開発向けに設計されています。これらのツールは、対応する標準の認証を取得しており、ほぼすべてのビルド環境やCI環境に統合可能で、監査担当者が求めるフォーマットの検証結果を出力します。