静的解析
静的解析でバグを早期発見、保守性や再利用の指標となるメトリクスを計測
近年の大規模・複雑化したプログラムにおいて、不具合の検出はますます困難になっています。 特にオーバーフローや未初期化変数の使用などのバグは、致命的な不具合につながるだけでなく、それに加えて複数のファイルにまたがる「特定のパス」を実行した時にのみ発生することもあり、デバッグでの検出には労力を要します。 さらに、どんなに時間をかけても目視によってすべての実行パスを検証することは、現実的ではありません。
静的解析ツールC/C++testでは、このような致命的なバグが潜んでいる場合でも、静的解析の「フロー解析」機能で、プログラムのあらゆるパスをシミュレートし、バグを早期に発見します。また、ソースコード品質の底上げに貢献する「コーディング規約チェック」機能を搭載しているため、バグの作りこみを抑制し、ソースコードの可読性と保守性を強化します。
静的解析とは
静的解析は、ソフトウェアの解析手法の一種で、コードを実行せずに行なう検証のことです。静的解析の利点として、コーディング時という開発の早い段階でエラーを検出できるため、バグ修正コストを抑制できます。また、プロジェクトの共通のコーディングスタイルを推進できるため、コードの可読性や保守性が向上するなどの利点があります。
ソースコードに対する静的解析は、ソフトウェアの品質を確保する上で、もっとも効果を得やすく、自動化しやすい工程です。機能安全やセキュリティなどに対するコンプライアンスでも、ツールによる静的解析が重要な役割を担っています。
C/C++testの主な「静的解析」機能
- フロー解析
- コーディング規約チェック
- ユーザー定義ルール作成
- 重複コード検出
- メトリクス計測
- AI&機械学習
フロー解析機能で、致命的なバグを高速に検出
フロー解析は、ソースコードを解析し、関数・ファイルをまたがったバグに至るまでの処理の流れをレポートします。 コードレビューなど目視では発見しにくいバグが検出可能になります。後工程でのバグの発覚による大幅な手戻りコストの発生防止に効果を発揮します。
- メモリリーク/リソースリーク
- バッファオーバーフロー
- NULLポインターの参照
- 未初期化変数の参照
- 整数オーバーフロー
- ゼロ除算
- 配列の境界外アクセス
- イテレーター範囲外アクセス
- セキュリティ脆弱性
- デッドロック
- 不適切な排他制御
静的フロー解析イメージ図
コーディング規約チェックを搭載 | MISRA C:2023/MISRA C++:2023に完全対応
<サポートしているコーディング規約の例>
- AUTOSAR C++14コーディングガイドライン
- MISRA C:1998
- MISRA C:2004
- MISRA C++:2008
- MISRA C:2023 (MISRA C:2012)
- NISRA C++:2023
- HISソースコードメトリクスチェックルール
- FDA C/C++ 推奨ルール
MISRA C:2023/MISRA C++:2023に完全対応
セキュリティ対策に有効なSEI CERT C/C++ コーディングスタンダードにも対応
IoTにおけるセキュリティ対策をより強固なものにするセキュアコーディングのチェックに特化したルールセットを標準搭載しています。
<サポートしているコーディング規約の例>
- CERT C コーディングスタンダード
- CERT C++ コーディングスタンダード
- CWE TOP 25 最も危険なプログラミングエラー
- OWASP TOP10
- DISA ASD STIG
- PCIDSS
- UL2900
SEI CERT C/C++、CWE TOP 25などセキュリティルールを搭載
ユーザー定義ルール作成
ユーザー定義コーディングルール作成画面
メトリクス計測
メトリクス計測
C++言語の最新規格もサポート
C++11、C++14はもちろん、C++17、C++20の新たな記法を認識し、エラーなく静的解析、単体テストを行うことができます。ここ数年で急速に進化が進んでいるC++言語の最新の規格をサポートします。大規模化、複雑化が進む車載ソフトウェアを始めとして、組み込みソフトウェアでも採用が進むC++言語での開発を支援します。TÜV SÜD社よりIEC 61508およびISO 26262、IEC 62304ツール認証取得済み
IEC 61508およびISO 26262は、ツールが開発プロジェクトで使用するのに妥当なものであるかを証明できなければならないと定めています。もし、この証明をユーザーが行うとすると、ツールの使用実績や実行結果などのドキュメントを用意し、第三者に検証を依頼する必要があり、手間や費用がかかります。
※認証取得を目的としてご利用になる場合は、お問い合わせください。
導入後も安心してお使いいただけるサポート体制
静的解析ツール・単体テストツール「C/C++test」は、導入時のサポートから、運用支援、問題発生時のQ&A対応など導入後も安心してお使いいただけるサポート体制でお客様をバックアップいたします。
PICK UP
イベント・セミナー
ニュース・キャンペーン
静的解析ツール・単体テストツール C/C++testに
関するお問い合わせ
テクマトリックス株式会社
東京本社ソフトウェアエンジニアリング事業部
03-4405-7853
- メールでのお問い合わせ
- parasoft-info@techmatrix.co.jp