SpotBugsやCheckstyleといったOSSとの違い
SpotBugsやCheckstyleといったOSSで見逃しがちなバグと静的フロー解析によるバグの検出例についてご紹介します。
SpotBugsやCheckstyleといったOSSの静的解析は、単一ファイルの中で発生する違反の検出はできますが、複数ファイルに呼び出しがまたがるバグを検出できないことがほとんどです。
静的フロー解析
フロー解析を使用すると、SpotBugsやCheckstyleといったOSSでは難しかった違反の検出が可能になります。Jtestのフロー解析機能は実行パスを網羅的にシミュレートし、特定の実行パスで発生する問題を検出します。Jtestの静的フロー解析機能では、ファイルまたがりで発生する以下の問題を検出することが可能になります。また、導入後すぐに高速な解析が可能なため、まずは現状のソースコード品質を把握するのに最適です。
- NullPointerException
- ファイル・ソケット・データベースなどのリソースクローズ漏れ
- SQLインジェクション
- クロスサイトスクリプティング
- スレッド間のデッドロックの可能性
Jtestの静的フロー解析で検出できるバグの例
Jtestを使用するとSpotBugsやCheckstyleといったOSSでは検出が難しかったNullPointerExceptionを検出することが可能です。Jtestを使用するとOSSでは検出が難しかったクロスサイトスクリプティングを検出することが可能です。
静的フロー解析の効果
- ファイルにとじた問題ばかりではなく、結合テストレベルのバグをコーディング工程で検出することができ、修正コストが下がります。
- 後工程でコーディングミスレベルの バグが多発しなくなり、品質向上に 寄与します。
- 普段テストが疎かになりがちな 異常系の処理で発生するバグも検出します。
イベント・セミナー
Java対応静的解析・単体テストツール Jtestに
関するお問い合わせ
テクマトリックス株式会社
東京本社ソフトウェアエンジニアリング事業部
03-4405-7853
- メールでのお問い合わせ
- parasoft-info@techmatrix.co.jp