demoプロジェクトのソースコードが静的解析ルールに準拠しているかどうかをチェックし、レポートを生成します。
生成されたレポートを参照し、静的解析ルールの違反の内容を確認します。
Jtest の静的解析には、次の2種類の解析方法があります。
- パターン解析
指定された記述の仕方に沿ってコードが記述されているかを自動的にチェックする機能です。Jtest ではビルトインルールが約1000種類ほどあり、一例として以下のカテゴリを持っています。- バグの可能性
- ガベージコレクション
- セキュリティ
- フレームワーク(Spring 等)
- フロー解析
実行をシミュレートして、実行時のバグにつながる現実の実行パスを自動的に特定する機能です。一例として以下のバグを検出するルールを持っています。- NullPointerException
- リソースリーク
- SQLインジェクション
- その他のセキュリティ脆弱性
ここでは、ビルトインのテストコンフィギュレーション「builtin://Critical Rules」を使用して解析を実施していきます。
1. 準備
Gradleを使用する場合、静的解析のための準備は特に必要ありません。
2. 静的解析の実行
1. demoプロジェクトディレクトリに移動します。
>cd %JTEST_HOME%\examples\demo |
2.Gradleを起動し、Jtest DTPによる静的解析を実行します。次のコマンドを実行します。
>gradle jtest -Djtest.config="builtin://Critical Rules" |
3.実行が終了すると、%JTEST_HOME%\examples\demo\build\reports\jtestディレクトリにレポートが生成されます。
>dir /b build\reports\jtest |
Jtest がDTP Serverに接続するように設定されている場合、Jtest の解析結果をアップロードすることができます。
Jtest の解析結果をアップロードするには、Gradleの起動引数に「-Djtest.publish=true」を追加します。
3.解析結果の確認
1.%JTEST_HOME%\examples\demo\build\reports\jtestディレクトリに生成されたhtmlを開きます。
2.「指摘事項」、「静的解析」、「すべての指摘事項 カテゴリごと」にてコーディングルールのカテゴリおよびルールごとに検出されたルール違反の件数を確認します。