Jtest を含めた Parasoft 製品の静的解析結果の活用方法や共有方法にお困りではありませんか?
静的解析では、一解析で数十件、解析ファイル数が多い場合には数百件の違反を検出することも少なくありません。膨大な数の違反を修正するには、検出した違反の内容を確認する必要があります。
Parasoft 製品の静的解析では、解析後にHTMLやCSVファイル形式のレポートを出力して解析結果を確認することができます。
[画像1:Jtest 解析結果 HTML レポート]
[画像2: CSV レポート]
これらのレポートで解析結果を確認する際、以下のように感じたことはありませんか。
今回は、このような課題をお持ちの方に DTP を使った解析結果の確認方法をご紹介いたします。
なお、本記事は DTP を使ったことが無い、DTP を使うメリットがわからない、といった方を対象にしています。既に DTP を活用されていて、DTP の新しい機能や知らない機能を知りたい、という方はこちらから DTP 関連の記事をご確認ください。
自分に必要な情報だけを知りたい
違反エクスプローラのフィルター機能を使い、プロジェクト名、ファイル名、ファイル作成者、修正担当者、優先度などの条件で検出した違反事項をフィルタリングして必要な情報だけを閲覧することができます。
[画像3:違反エクスプローラのフィルター機能]
ソースコードを参照しながら検出結果を確認したい
違反エクスプローラでは、解析したソースコードを参照しながら検出した違反事項を確認、ルールドキュメントも同じ画面で確認することができるので効率的に検出結果の確認とコードの修正方針を決定できます。
[画像4:ソースコードとルールドキュメント]
修正の優先度を決めたい
検出した違反事項に対して、優先度付けや修正期日を付与することができます。
プロジェクトリーダーやマネージャが検出結果をレビューして違反エクスプローラから優先度や違反に対するアクション(修正/抑制/レビューなど)、修正期日を設定すると、開発メンバーは優先的に対応するべき違反事項を把握することができます。
[画像5:違反の詳細情報を設定]
変更されたファイルの違反事項だけ確認したい
「ウィジェットの追加」から [コード > ファイル – 変更済み] ウィジェットをダッシュボードに追加します。
ダッシュボードに追加されたウィジェットには、指定した過去の解析からソースコードが変更されたファイル数が表示されます。
[画像6:「ファイル – 変更済み」ウィジェットの表示]
ウィジェットをクリックすると変更のあったファイルのソースコードの差分と違反のサマリー情報(新規追加された違反、修正された違反、既存の違反)を確認することができます。
[画像7:「ファイル – 変更済み」ウィジェットと変更エクスプローラ]
最新の解析で新規に検出した違反事項だけ確認したい
「ウィジェットの追加」から [静的解析 > 違反 – 変更済み – 統計] ウィジェットをダッシュボードに追加します。
ダッシュボードに追加されたウィジェットには、指定した過去の解析結果と比較して “新規に検出した違反” 、 “修正された違反”、”既存の違反(過去の解析でも最新の解析でも検出した違反)” 数を表示されます。
[画像8:「違反- 変更済み – 統計」ウィジェットの表示]
ウィジェットの「新規」項目をクリックすると、最新の解析で新規に検出された違反事項だけを確認することができます。
[画像9:「違反- 変更済み – 統計」ウィジェットと違反エクスプローラ]
DTP を利用することで解析結果を見やすくできますが、解析後に出力するHTMLやCSVファイル形式のレポートの内容をカスタマイズすることもできます。
レポートの出力内容自体をカスタマイズしたい場合は、レポートの出力内容のカスタマイズをご検討ください。
[画像10:HTML、PDF レポート出力内容のカスタマイズ]
CSV レポートの出力内容をカスタマイズするには、XSL ファイルを利用します。(デフォルトの CSV レポートの出力内容はカスタマイズできません。)
[画像11:CSV レポート出力内容のカスタマイズ]
まとめ
DTP を利用して解析結果を見やすくする方法をご紹介しました。
スピード感が求められる開発現場において静的解析を利用する上で、検出した違反事項を効率的に確認してコードを修正するのは重要なことです。
ぜひ、DTP を利用した解析結果の管理をご検討ください。
Parasoft Jtest について
Java対応静的解析・単体テストツール Parasoft Jtest
Jtestは、テスト工数の大幅削減とセキュアで高品質なJavaシステムの開発を強力にサポートするJava対応テストツールです。1,000個以上のコーディング規約をもとにソースコードを静的に解析し、プログラムの問題点や処理フローに潜む検出困難なエラーを検出します。さらに、JUnitを用いた単体テストについて、作成、実行、テストカバレッジ分析、テスト資産の管理といった単体テストに係る作業をサポートし、単体テストの効率化を促進します。