demoプロジェクトのソースコードが静的解析ルールに準拠しているかどうかをチェックし、レポートを生成します。生成されたレポートを参照し、静的解析ルールの違反の内容を確認します。
Jtest の静的解析には、次の3 種類があります。● コーディング規約チェック
- コーディング規約チェック
指定された記述の仕方に沿ってコードが記述されているかを自動的にチェックする機能です。
Jtest ではビルトインルールが約1000 種類ほどあり、一例として以下のカテゴリを持っています。
...
- バグの可能性
...
- ガベージコレクション
...
- セキュリティ
- セキュリティ
...
- フロー解析
アプリケーションの実行をシミュレートして、実行時のバグにつながる実行パスを自動的に特定する機能です。
一例として以下のバグを検出するルールを持っています。
...
- NullPointerException
...
- リソースリーク
...
- SQL インジェクション
- SQL インジェクション
...
- メトリクス
ソースコードの規模、結合度、複雑さ、保守性などを計測してソフトウェアの品質を定量的に評価する機能です。
一例として以下のメトリクス値を計測することが出来ます。
...
- 保守容易性指数
...
- サイクロマティック複雑度
...
- 継承の深さ
静的解析(コーディング規約チェック、フロー解析)の実行
ここでは、ビルトインのテストコンフィギュレーション「builtin://Critical Rules」を使用します。
demoプロジェクトディレクトリに移動します。
Code Block cd <JTEST_HOME>\examples\demo
Maven から Jtest の静的解析を実行します。次のコマンドを実行してください。
Code Block demo>mvn jtest:jtest -Djtest.config="builtin://Critical Rules"
「BUILD SUCCESS」 が出力され Maven ビルドが成功したことを確認します。
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:02 min
[INFO] Finished at: 2018-09-07T15:57:33+09:00
[INFO] ------------------------------------------------------------------------- 終了後、<JTEST_HOME>\examples\demo\target\jtest ディレクトリにレポート (report.html, report.xml) が生成されます。
...
demoプロジェクトのソースコードのメトリクスを計測し、レポートを生成します。生成されたレポートを参照し、メトリクスを確認します。
ここでは、メトリクスの計測のために「builtin://Metrics」テストコンフィギュレーションを使用します。
demoプロジェクトディレクトリに移動します。
cd <JTEST_HOME>\examples\demo
Maven から Jtest の静的解析を実行します。次のコマンドを実行してください。
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:02 min
[INFO] Finished at: 2018-09-07T15:57:33+09:00
[INFO] ------------------------------------------------------------------------- 「BUILD SUCCESS」 が出力され Maven ビルドが成功したことを確認します。
- 終了後、<JTEST_HOME>\examples\demo\target\jtest ディレクトリにレポート (report.html, report.xml, metrics.xml) が生成されます。
...