Parasoft Jtest/dotTEST の静的解析、単体テストを Jenkins で自動化した際、どのように結果を確認されていますか。専用のダッシュボードツール Parasoft DTP に結果をパブリッシュして WEB ブラウザから閲覧していますか?それとも、出力される HTML レポートファイルを開いて確認していますか?
今回は、Parasoft 製品の解析結果を可視化するための Jenkins 用のプラグイン Parasoft Findings for Jenkins を利用した結果の確認方法をご紹介します。
なお、Jenkins を利用した CI 環境で Parasoft Jtest/dotTEST を利用する方法やそのメリットについては以下の記事でご紹介しています。ぜひ、ご一読ください。
Parasoft Findings for Jenkins とは
Parasoft Findings for Jenkins は Jenkins ジョブで実行された Parasoft 製品の静的解析、単体テストの実行、コードカバレッジ計測の結果を可視化するための Jenkins プラグインです。
プラグインを利用するとトレンドグラフによる結果の推移やビルドごとの結果の詳細を Jenkins 上で確認できるようになります。Freestyle、Maven、および Pipeline ジョブで使用できます。
プラグインの詳細な情報は以下のドキュメントをご確認ください。
Parasoft Jtest は Javaコードに潜むさまざまなセキュリティ脆弱性を早期発見
ソースコードの品質向上を実現します。
ソースコードの品質向上を実現します。
インストール
プラグインは、Jenkins の [Jenkinsの管理] > [Plugins] > [Available plugins] からインストールすることができます。
インストール後、プラグインの有効化と Jenkins の再起動が必要です。
設定
解析した結果を確認するための事前設定を行います。
静的解析結果確認用の設定
Maven と Freestyle ジョブ
- Build Steps > ビルド手順の追加 で静的解析を実行するコマンドを追加します。
- ビルド後の処理 > ビルド後のアクションの追加 で Record compiler warnings and static analysis results を選択します。
- 追加した Record compiler warnings and static analysis results で以下の項目を設定します。
- Tool : [Parasoftの指摘事項] を選択
- Report File Pattern : 静的解析の実行後に自動生成される report.xml ファイルのパス
- Skip symbolic links when searching for files : シンボリックリンクを含めたくない場合はチェックボックスを ON
- Encoding of Report Files : report.xml のエンコーディング文字セット
- Settings : Parasoft ツールの settings.properties ファイルの場所を指定
- Custom ID : ツールのカスタム ID とカスタム名を指定
- Custom Name : ツール名を変更する場合に指定
- 「適用」をクリックします。
単体テスト実行結果確認用の設定
Maven と Freestyle ジョブ
- Build Steps > ビルド手順の追加 で単体テストを実行するコマンドを追加します。
- ビルド後の処理 > ビルド後のアクションの追加 で Publish xUnit test result report を選択します。
- 追加された Publish xUnit test result report で以下の項目を設定します。
- Report Type : [ParasoftAnalyzers-10.x] を選択
- Includes Pattern : 単体テスト実行後に自動生成される report.xml ファイルのパス
- 「適用」をクリックします。
単体テストカバレッジ確認用の設定
Maven と Freestyle ジョブ
- Build Steps > ビルド手順の追加 で単体テストの実行、カバレッジ計測を行うコマンドを追加します。
- ビルド後の処理 > ビルド後のアクションの追加 で Record Parasoft code coverage results を選択します。
- 追加された Record Parasoft code coverage results で以下の項目を設定します。
- Report File Pattern : 動的解析の実行後に自動生成される coverage.xml ファイルのパス
- Reference Job : 参照ジョブフィールドに使用するジョブの名前を設定
- Reference Build : 参照ビルドフィールドに参照ジョブのビルド番号を設定
- Quality gates (オプション) :ビルド後に評価する Quality gates を追加
- Source Code Encoding : ソース ファイルの正しいエンコーディングを選択
- 「適用」をクリックします。
静的解析の結果を確認する
ジョブのトップ画面に Parasoft Warnings Trend トレンドグラフが追加され、グラフ内の任意の場所にマウスポインターを合わせると該当のビルドにおける静的解析結果が表示されます。
ポイントをクリックすると該当ビルドの Parasoft Warnings ページに遷移して静的解析の詳細な結果を確認できます。
Overview ウィジェットでは、検出している違反を重要度別にドーナツグラフで表示します。
History ウィジェットではこれまでに実行された静的解析違反の変化をさまざまな側面から表示します。合計違反モードでは検出数の推移を表示し、重要度モードでは重要度で分類した検出数の推移を確認できます。
Details レポートでは上部にある項目 (Packages、Files、Categories、Types、Issues) を選択して一覧の表示軸を変更し、一覧に表示された内容をドリルダウンしていくことで違反の詳細を表示できます。
単体テストの結果を確認する
Jtest で単体テストの実行、カバレッジ計測を行っている場合、テストの実行結果は テスト結果の推移 、カバレッジ計測結果は Parasoft Coverage で確認します。
テストの実行結果
ジョブのトップ画面に テスト結果の推移 トレンドグラフが表示され、グラフ内の任意の場所にマウスポインターを合わせると該当のビルドにおける単体テスト実行結果が表示されます。
トレンドグラフの任意のポイントをクリックすると該当するビルドの テスト結果 ページに遷移します。
ビルド内で実行したテスト、失敗したテスト、実行時間など実行されたテストの概要を表示します。
失敗したテストの情報としてテスト実行時に出力されたスタックトレースを表示し、失敗の詳細を確認できます。
テスト結果 ページの情報はドリルダウンして任意のクラスにおけるテスト実行結果、任意のテストメソッドに関する過去のビルド実行履歴を追跡することができます。
カバレッジ
ジョブのトップ画面に Parasoft Coverage Trend トレンドグラフが追加され、グラフ内の任意の場所にマウスポインターを合わせると該当のビルドで計測された行カバレッジの情報が表示されます。
任意のポイントをクリックすると該当するビルドの Parasoft Coverage ページに遷移して計測したカバレッジの詳細を確認できます。
Quality gates を設定する
Parasoft Findings for Jenkins を利用するとビルド中に実行した静的解析、カバレッジの結果を元にした Quality gates を設定して静的解析の違反数やカバレッジが任意の条件を満たさない場合に、ビルドを "不安定(Unstable)" または "失敗(Failed)" としてマークできます。
Quality gates の結果はビルドの 状態 タブで確認します。
まとめ
Jenkins 用のプラグイン Parasoft Findings for Jenkins を利用した Jtest/dotTEST の解析結果の確認方法、品質ゲートの設定についてご紹介しました。
Jenkins で静的解析、単体テストを自動化したものの、結果の共有や確認方法にお困りでしたら、ぜひ一度 Parasoft Findings for Jenkins をお試しください。