コーディング規約チェックとフロー解析

Jtestは、約1,000種類のコーディング規約に従ってJavaソースコードを静的に解析し、違反している箇所をレポートします。さらに、処理フローを解析し、リソースリークやNullPointerException、さらには、SQLインジェクションやクロスサイトスクリプティング(XSS)といったセキュリティ上危険なコードも検出することが可能です。
Jtestで静的解析を自動化することにより、Javaソースコードの品質確保と問題箇所の修正の推進を容易にします。
 



コーディング規約チェック

1,000種類のコーディング規約でJavaソースコードを解析

約1,000種類のコーディング規約に従ってJavaソースコードを静的に解析し、違反している箇所をレポートします。
Javaソースコードを解析し、メソッドや文字列リテラルの重複やパフォーマンスに影響するガーベッジコレクションの問題、JDKの異なるバージョンや異なるOSへの移植性の問題などを検出します。
また、多くの規約には、カスタマイズ可能なパラメータがあり、ニーズに合せて詳細な条件を指定できます。

コーディング規約カテゴリ(抜粋)

  • 重複コードの検出
  • 最適化
  • スレッドと同期化
  • Enterprise JavaBeans
  • バグの可能性
  • サーブレット
  • ガベージコレクション
  • セキュリティ

独自のルールセットの作成やコーディングルールの追加・編集が可能

ユーザー定義コーディング規約を作成する「RuleWizard」が搭載されています。
視覚的にコーディング規約を作成したり、サンプルソースからコーディング規約を自動生成することが可能です。
また、使用するコーディング規約のセットを作成できるので、コーディング規約チェックを実施する対象やタイミングに合せて、使用するセットを選択できます。

フロー解析

複数のクラスにまたがった複雑なパスを検証、エラーにつながるパスを特定

アプリケーションの実行パスをシミュレートして、処理フローや渡された値によって発生するエラー (リソースリーク、デッドロック、Null Pointer Exceptionなど) につながるパスを特定します。
実際にコードを実行することなく複数のクラスやパッケージに渡った複雑なパスも検証します。 フロー解析は複雑なパスを特定してトレースするため、人間によるテストや検査では発見が難しく、コーディング規約チェックや単体テストでも発見されないことが多い問題点を検出できます。
コードを実行せずに問題点を検出するフロー解析機能は、レガシーコードのようなエラーの実行時検出が効果的ではなかったり不可能だったりするコードに有効です。

複数のクラスにまたがった複雑なパスを検証、エラーにつながるパスを特定

フロー解析で検出可能なエラーの種類 (抜粋)

  • 境界外アクセス
  • デッドロック
  • ダブルロック
  • リソースリーク
  • 配列を超えたアクセス
  • セキュリティの脆弱性
    • バックドアの脆弱性を防ぐ
    • 機密データの漏えいを防ぐ
    • SQLインジェクションを防ぐ
    • クロスサイトスクリプティング(XSS)の脆弱性を防ぐ
    • 安全ではないエラー処理とロギングを避ける
  • NullPointerException
  • nullチェックの前の間接参照

検出可能なセキュリティ脆弱性規約セット(抜粋)

  • CERT for Java
  • CWE-SANS Top 25 2009
  • CWE-SANS Top 25 2011
  • NIST
  • OWASP Top 10
  • PCI DSS

メトリクス計測

ソースコードの複雑度の指標となるメトリクスを計測

メソッド数、オブジェクトの結合度、サイクロマティック複雑度など約50種類のメトリクスをレポートします。
また、メトリクスが指定された許容範囲を超える場合に、コーディング規約の違反としてレポートすることも可能です。
メトリクス計測結果から、複雑度が高くバグが入り込みやすいコードを検出しリファクタリングすることで、バグの作り込みの防止に役立ちます。

計測可能なメトリクス (抜粋)

  • オブジェクト間の結合
  • サイクロマティック複雑度
  • ネストされたIf文
  • ファンアウト
  • Halstead難度
  • 凝集性の欠如
  • 保守性インデックス
  • メソッドのソース行数

Jtestで行う静的解析(コーディング規約チェックとフロー解析)/テストに関する資料

以下の資料をご用意しております。ご希望の方は、資料請求フォームからお問合せください。

【資料】

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

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

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

    03-4405-7853

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

CONTACT

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