静的解析

静的解析で「致命的なバグ」を見逃さない!

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

静的解析で「致命的なバグ」を見逃さない!C言語/C++言語対応 静的解析・単体テストツール「C++test」

静的解析とは

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

静的解析の「フロー解析」と「コーディング規約チェック」機能でバグを早期発見

近年の極度に複雑化したプログラムにおいて、不具合の検出はますます困難になっています。 特にオーバーフローや未初期化変数の使用などのバグは、致命的な不具合につながるだけでなく、それに加えて複数のファイルにまたがる「特定のパス」を実行した時にのみ発生することもあり、デバッグでの検出には労力を要します。
さらに、どんなに時間をかけても目視によってすべての実行パスを検証することは、現実的ではありません。



C++testの静的解析では、このような致命的なバグが潜んでいる場合でも、静的解析の「フロー解析」機能で、モジュールのあらゆるパスをシミュレートし、バグを早期に発見します。また、ソースコード品質の底上げに貢献する「コーディング規約チェック」機能を搭載しているため、バグの作りこみを抑制し、ソースコードの可読性と保守性を強化します。

静的解析の主な機能

静的解析ツールC++test
  • フロー解析
    • フソースコードの処理フローを解析します。プログラムを実際には実行せず、論理的に実行して、メモリ破壊などの問題があるパスを指摘します。
  • コーディング規約チェック
    • MISRA C/C++、およびCERT C/C++コーディングスタンダードなどのさまざまな規約に対応したルールを搭載しています。
  • ユーザー定義ルール作成
    • ユーザー定義コーディングルールを作成する「RuleWizard」を搭載。GUIを使用して、視覚的にコーディングルールを作成ができます。
  • メトリクス計測
    • メトリクスの自動計測で、ソフトウェアの品質を定量的に評価します。バクの温床となる複雑なソースコード、品質の低いソースコードを検出します。

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

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

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

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

コーディング規約チェックを搭載 | MISRA C:2012(Amendment1含む)に完全対応

バグの発生しやすい実装や可読性・保守性を低下させる実装、MISRA C/C++などのさまざまな規格に対応したルールを搭載しています。搭載ルールからコーディング規約に沿ったルールの選定や、コーディング規約チェック自体の策定を行い自動的に解析を行うことで、寿命の長いソースコードを実装する仕組みを構築します。
<サポートしているコーディング規約の例>
  • MISRA C:1998、MISRA C:2004、 MISRA C++:2008
  • MISRA C:2012
  • HISソースコードメトリクスチェックルール
  • FDA C++ 推奨ルール

C++testは、MISRA C:2012(Amendment1含む)に完全対応

セキュリティ対策に有効なCERT C/C++ コーディングスタンダードにも対応

増加しつつあるサイバー攻撃の脅威に対する根本的で効果的な対策となるのがセキュアコーディングです。
ネットワーク経由の攻撃が想定されていなかった組み込みシステムが攻撃の対象になったことで、情報漏えいや遠隔操作などの深刻な問題に発展する事例がすでに多くの現場で起こり始めています。 IoTにおけるセキュリティ対策をより強固なものにするセキュアコーディングのチェックに特化したルールセットを標準搭載しています。

  • CERT C コーディングスタンダード
  • CERT C++ コーディングスタンダード
  • OWASP TOP10、PCIDSS
  • CWE/SANS  最も危険なプログラミングエラーTOP25など、セキュリティに関連の規約
  • IPA/SEC コーディング作法ガイド

C++testは、セキュリティ対策に有効なCERT C/C++ コーディングスタンダードに対応

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

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

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

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

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

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

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

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

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

    システムエンジニアリング事業部
    ソフトウェアエンジニアリング営業部

    03-4405-7853

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

CONTACT

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