静的解析

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

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

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

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

静的解析とは

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

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

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


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

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

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

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

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

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

<サポートしているコーディング規約の例>
  • AUTOSAR C++14コーディングガイドライン
  • 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++ コーディングスタンダードに対応

ユーザー定義ルール作成

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

C++test:ユーザー定義コーディングルール

メトリクス計測

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

C++test:メトリクス計測

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

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

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

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

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

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

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

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

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

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

    03-4405-7853

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

CONTACT

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