静的解析

静的解析でバグを早期発見、保守性や再利用の指標となるメトリクスを計測

静的解析で「致命的なバグ」を見逃さない:静的解析ツール「C/C++test」


近年の大規模・複雑化したプログラムにおいて、不具合の検出はますます困難になっています。 特にオーバーフローや未初期化変数の使用などのバグは、致命的な不具合につながるだけでなく、それに加えて複数のファイルにまたがる「特定のパス」を実行した時にのみ発生することもあり、デバッグでの検出には労力を要します。 さらに、どんなに時間をかけても目視によってすべての実行パスを検証することは、現実的ではありません。
静的解析ツールC/C++testでは、このような致命的なバグが潜んでいる場合でも、静的解析の「フロー解析」機能で、プログラムのあらゆるパスをシミュレートし、バグを早期に発見します。また、ソースコード品質の底上げに貢献する「コーディング規約チェック」機能を搭載しているため、バグの作りこみを抑制し、ソースコードの可読性と保守性を強化します。

静的解析とは

静的解析は、ソフトウェアの解析手法の一種で、コードを実行せずに行なう検証のことです。静的解析の利点として、コーディング時という開発の早い段階でエラーを検出できるため、バグ修正コストを抑制できます。また、プロジェクトの共通のコーディングスタイルを推進できるため、コードの可読性や保守性が向上するなどの利点があります。
ソースコードに対する静的解析は、ソフトウェアの品質を確保する上で、もっとも効果を得やすく、自動化しやすい工程です。機能安全やセキュリティなどに対するコンプライアンスでも、ツールによる静的解析が重要な役割を担っています。

C/C++testの主な「静的解析」機能

コーディング規約チェック機能、およびプログラムのあらゆるパスをシミュレートするフロー解析でバグを早期に発見します。複雑度が高くバグが入り込みやすいコードを検出できます。早期にリファクタリングすることで、バグを未然に防止とテストしやすいソースコードの実装が可能です。

  • フロー解析
  • コーディング規約チェック
    • ユーザー定義ルール作成
    • 重複コード検出
  • メトリクス計測
  • AI&機械学習

C言語/C++言語対応 静的解析ツール・単体テストツール「C/C++test」の主な静的解析機能


フロー解析機能で、致命的なバグを高速に検出

フロー解析は、ソースコードを解析し、関数・ファイルをまたがったバグに至るまでの処理の流れをレポートします。 コードレビューなど目視では発見しにくいバグが検出可能になります。後工程でのバグの発覚による大幅な手戻りコストの発生防止に効果を発揮します。
 

<フロー解析で検出可能な問題の一例>
  • メモリリーク/リソースリーク
  • バッファオーバーフロー
  • NULLポインターの参照
  • 未初期化変数の参照
  • 整数オーバーフロー
  • ゼロ除算
  • 配列の境界外アクセス
  • イテレーター範囲外アクセス
  • セキュリティ脆弱性
  • デッドロック
  • 不適切な排他制御

静的解析ツールC/C++test:静的フロー解析イメージ図

静的フロー解析イメージ図

コーディング規約チェックを搭載 | MISRA C:2023/MISRA C++:2023に完全対応

MISRA、AUTOSARなどのコーディング規約に対応したルールを搭載しています。搭載ルールからコーディング規約に沿ったルールの選定や、コーディング規約チェック自体の策定を行い自動的に解析を行うことで、寿命の長いソースコードを実装する仕組みを構築します。

<サポートしているコーディング規約の例>
  • 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に完全対応

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などセキュリティルールを搭載

SEI CERT C/C++、CWE TOP 25などセキュリティルールを搭載

ユーザー定義ルール作成

ユーザー定義コーディングルールを作成する「RuleWizard」を搭載。GUIを使用して、視覚的にコーディングルールを作成できます。違反となるソースコードを読み込ませることで、ユーザー定義ルールを自動生成することも可能です。

静的解析ツールC/C++test:ユーザー定義コーディングルール

ユーザー定義コーディングルール作成画面

メトリクス計測

メトリクスの自動計測で、ソフトウェアの品質を定量的に評価します。バクの温床となる複雑なソースコードを検出します。早期にリファクタリングすることで、バグの防止、テストしやすいソースコードの実装が可能です。

静的解析ツールC/C++test:メトリクス計測

メトリクス計測

C++言語の最新規格もサポート

C++11、C++14はもちろん、C++17、C++20の新たな記法を認識し、エラーなく静的解析、単体テストを行うことができます。ここ数年で急速に進化が進んでいるC++言語の最新の規格をサポートします。大規模化、複雑化が進む車載ソフトウェアを始めとして、組み込みソフトウェアでも採用が進むC++言語での開発を支援します。

TÜV SÜD社よりIEC 61508およびISO 26262、IEC 62304ツール認証取得済み

C/C++testは、第三者認証機関であるTÜV SÜD社よりIEC 61508およびISO 26262、IEC 62304に準拠したテストツールとして認証を取得済みです。TÜV SÜD社より認証を取得しているため、ユーザーによるツール認証のための検証依頼をする必要がなく、ツール認証の時間や費用を削減できます。
IEC 61508およびISO 26262は、ツールが開発プロジェクトで使用するのに妥当なものであるかを証明できなければならないと定めています。もし、この証明をユーザーが行うとすると、ツールの使用実績や実行結果などのドキュメントを用意し、第三者に検証を依頼する必要があり、手間や費用がかかります。
※認証取得を目的としてご利用になる場合は、お問い合わせください。

C/C++testは、TÜV SÜD社よりIEC 61508およびISO 26262、IEC 62304ツール認証取得済み

導入後も安心してお使いいただけるサポート体制

静的解析ツール・単体テストツール「C/C++test」は、導入時のサポートから、運用支援、問題発生時のQ&A対応など導入後も安心してお使いいただけるサポート体制でお客様をバックアップいたします。


静的解析・単体テストツールを、まずは無償体験版でお試しをください

静的解析ツール・単体テストツールC/C++testを体験版をお試しください。
すべての機能を無償で14日間ご利用可能、すぐにご評価可能なチュートリアル付属
ご評価を円滑に進めるための、技術的なサポート対応あります

静的解析ツール・単体テストツール C/C++testに
関するお問い合わせ

  • テクマトリックス株式会社
    東京本社

    ソフトウェアエンジニアリング事業部

    03-4405-7853

メールでのお問い合わせ
parasoft-info@techmatrix.co.jp

お問い合わせ

製品についてやテクマトリックスについてなど、
こちらよりお気軽にお問い合わせいただけます。