コードのテストと検証
検証プロセスの各段階に対応した認定ツール
安全上重要なシステムにおけるソフトウェアの欠陥は、人的被害、リコール、認証の不承認につながる可能性があります。コード検証を行うことで、ソフトウェアが仕様を正しく実装していることを確認し、認証に必要な文書化された証拠を作成することができます。
コード検証が重要な理由
規制対象の業界では、要件が正しく実装されていることを証明しなければなりません。対象範囲の漏れやトレーサビリティの欠如があると、認証監査の際に問題点が露呈し、製品のリリースが遅れることになります。
包括的な検証アプローチ
効果的な検証では、静的解析、動的テスト、カバレッジ測定、および要求トレーサビリティを単一のワークフローに統合します。各活動から得られる証拠は、コンプライアンス・ケースに直接反映されます。
- 欠陥の早期発見のための静的解析
- ランタイム検証のためのテスト
- テストの網羅性を検証するためのカバレッジ
- 正しさを保証するためのトレーサビリティ
検証ツールを詳しく見る
PC-lint Plus
PC-lint Plusは、規模を問わず、CおよびC++のコードベースに対して、徹底的で認定済みの静的解析を提供します。MISRA CおよびC++、AUTOSAR C++、CERT-C、CWEを標準でサポートしており、事実上あらゆるビルドチェーンに統合可能で、完全にオンプレミスで実行されます。すべての検出結果は追跡可能であり、すべての抑制措置は文書化されます。
VectorCAST
VectorCASTは、安全性が極めて重要な組込みソフトウェアの単体テストおよびソフトウェアインテグレーションテストを自動化します。テスト環境の構築、スタブの生成、ホストおよびターゲットでの実行、MC/DCを含むあらゆる必要なレベルでのカバレッジ測定、双方向の要求トレーサビリティに対応しています。変更ベーステストにより、大規模なコードベースにおいてもCIサイクルを短縮できます。
Squore
Squoreは、静的解析結果、テスト結果、カバレッジ指標、要件データベースなど、開発ツールチェーン全体からのデータを一つのダッシュボードに集約します。また、品質ゲートを適用することで、チーム全体およびプロジェクト全体においてコンプライアンス義務を可視化し、品質の低下を早期に検知できる傾向分析を提供します。
主要な検証活動
静的解析
静的コード解析は、ソースコードを実行せずに検査を行うもので、欠陥、セキュリティ上の脆弱性、およびコーディング標準への違反を早期に検出することができます。テスト開始前に問題を特定することで、コードの品質を向上させ、デバッグの負担を削減し、信頼性が高く、コンプライアンスに準拠した開発を支援します。
動的検証およびテスト
動的検証およびテストでは、ソフトウェアを実行して、ランタイム時の挙動を検証します。コンポーネントとその相互作用を体系的にチェックすることで、欠陥を早期に発見し、正しい機能性を確保します。VectorCASTは、組み込みC、C++、およびAda向けにこのプロセスを自動化し、ISO 26262、DO-178C、およびIEC 61508で要求される構造的カバレッジの証拠と要求トレーサビリティを提供します。
継続的なモニタリング
継続的モニタリングでは、解析やテストの結果を長期にわたって追跡することで、プロジェクト全体のソフトウェア品質を把握することができます。これにより、傾向、課題、リスクを早期に把握し、十分な情報に基づいた意思決定を可能にするとともに、複雑さが増しても品質目標が一貫して達成されるようにします。
規制対象の開発向けに設計されています
PC-lint Plusは、exida社により、ISO 26262:2018(ASIL A~D)、IEC 61508:2010(SIL 1~4)、EN 50716、およびIEC 62304の認証を取得しています。 VectorCASTのカバレッジ測定結果は、TÜVにより、ISO 26262の全ASILレベル、DO-178Cの全DALレベル(レベルAのMC/DCを含む)、IEC 61508の全SILレベル、IEC 62304、およびEN 50716について認証されています。認証ドキュメントは、追加費用なしで標準ライセンスに含まれています。認定キットはリクエストに応じてご用意いたします。
さらに詳しく
コード検証とは何ですか?
静的解析や単体テストから、カバレッジ測定や要求トレーサビリティに至るまでの、あらゆる活動を網羅した包括的な定義です。
検証および妥当性確認
これら2つの活動の正確な違い、それぞれがどのような証拠を生み出すのか、そしてなぜすべての主要な安全標準において、その両方が要件となっているのか。
静的検証と動的検証
静的解析と動的テストの違い、それぞれで何が検出されるのか、そして安全性が重要な開発において、なぜこの2つを組み合わせて行う必要があるのかについて。
コードの品質が重要な理由
自動車、航空宇宙、医療、および産業用ソフトウェアの品質低下がもたらす、安全性、財務面、および規制面での影響。
品質からコンプライアンスへ
体系化された品質プロセスによって、規格で求められる要件の要求トレーサビリティ、カバレッジデータ、およびツールの適格性に関する証拠が、どのように自然に生成されるか。

