SpotBugsやCheckstyleといったOSSとの違い

SpotBugsやCheckstyleといったOSSで見逃しがちなバグと静的フロー解析によるバグの検出例についてご紹介します。

JtestとOSSとの違い
 
SpotBugsやCheckstyleといったOSSの静的解析は、単一ファイルの中で発生する違反の検出はできますが、複数ファイルに呼び出しがまたがるバグを検出できないことがほとんどです。

静的フロー解析

フロー解析を使用すると、SpotBugsやCheckstyleといったOSSでは難しかった違反の検出が可能になります。Jtestのフロー解析機能は実行パスを網羅的にシミュレートし、特定の実行パスで発生する問題を検出します。

Jtestの静的フロー解析機能では、ファイルまたがりで発生する以下の問題を検出することが可能になります。また、導入後すぐに高速な解析が可能なため、まずは現状のソースコード品質を把握するのに最適です。

  • NullPointerException
  • ファイル・ソケット・データベースなどのリソースクローズ漏れ
  • SQLインジェクション
  • クロスサイトスクリプティング
  • スレッド間のデッドロックの可能性

Jtestの静的フロー解析で検出できるバグの例

Jtestを使用するとSpotBugsやCheckstyleといったOSSでは検出が難しかったNullPointerExceptionを検出することが可能です。

Jtestの静的フロー解析で検出できるバグの例


Jtestを使用するとOSSでは検出が難しかったクロスサイトスクリプティングを検出することが可能です。
 
Jtestの静的フロー解析で検出できるバグの例

静的フロー解析の効果

  • ファイルにとじた問題ばかりではなく、結合テストレベルのバグをコーディング工程で検出することができ、修正コストが下がります。
  • 後工程でコーディングミスレベルの バグが多発しなくなり、品質向上に 寄与します。
  • 普段テストが疎かになりがちな 異常系の処理で発生するバグも検出します。

Java対応静的解析・単体テストツール Jtestに
関するお問い合わせ

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

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

    03-4405-7853

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

お問い合わせ

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