Eclipseで使える静的解析ツール:Eclipseで使えるテストツールカタログ(2)(3/4 ページ)
Eclipseプラグインで提供されるテストツールが充実してきた。本連載では、システム開発の現場に有効なテストツールを紹介し、統合開発ツールにEclipseを選択する開発におけるテストの効率化、ソフトウェア品質の向上のヒントを提供する。(編集部)
潜在的なバグからコーディング規約をチェック:PMD
PMDは潜在的なバグからコーディング規約をチェックすることができる静的解析ツールです。例えばコネクションオブジェクトを使用したら必ずクローズメソッドが呼ばれなければならない、あるいはnullとの比較にequals()メソッドは使用しないなど、コンパイルエラーとしてチェックされないが、バグを誘発する可能性が高いコードをチェックしてくれます。
PMDは先ほど紹介したCheckstyleや、後から紹介するFindBugsと比べると、コーディングスタイルのチェックルールを持ち、かつ潜在的なバグをチェックするルールを持っているオールラウンド的なツールです。ただしデフォルトで提供されるルール数はそれほど多くはないので、プロジェクト固有のカスタムルールを作成し、幅広いチェックができるようにするとよいです。
特長
PMDの特長は以下になります。
・豊富なチェックルールを提供
潜在的なバグから、コーディング規約に関するルールまで幅広いチェックルールが提供されています。また本稿では取り上げませんが、ソースコードのメトリクス情報を算出するためのルールや計測機能を持っていることも大きな特長として挙げられます。
・ソースコードが解析対象
ソースコードが解析対象のため、プログラムの作成途中でもチェックが可能です。
・ルールには優先度の設定が可能
幅広いチェックルールを持つため、PMDの各ルールには5段階の優先順位(Error High/ Error/ Warnig High/ Warning / Information)が付与されています。これにより開発者はチェックで検出されたメッセージにおいてどの部分を優先的に修正すべきか判断することができます。
・適用するルールの選択が可能
ルールのカテゴリを独自に設定し、必要なルールのみをチェックできるようにフィルタリングすることができます。
・ルールの拡張性が高い≪≫
ルールを追加する方法として、以下のいずれかの方法を使用することができます
- XPath(XML Path Language)を用いたルールの作成
- Javaのクラスを直接作成
PMDではXPathを用いたカスタムルールの作成を支援するためにツール(AST Viewer)を提供しています。ただしPMDプラグインでは提供されていないため、別途下記のURLからダウンロードしてください。
・豊富な連携ツールが存在する
Eclipse以外にもさまざまなIDE上で利用することができます。利用可能なIDEは以下のURLを参照してください。
■入手方法
PMDを利用する場合は、Eclipseのアップデート機能を用いたインストールを行います。
[ウィンドウ]-[設定]でEclipseの設定画面を開き、ツリーの部分に[PMD]が表示されていればインストールが成功しています。
使い方
PMDでは自動実行と手動実行の2つの実行方法があります。
それぞれの実行方法について下記の手順にて利用します。
●Just In Timeで実行
・ビルドパスの設定
ソースコードを保存したタイミングでPMDが実行されるように設定を行います。[プロジェクト]メニューの[プロパティ]を選択して表示されるプロジェクトのプロパティ画面(図1)にて、PMDを選択し、[Enable PMD]のチェックボックスをチェックします。利用できるルール一覧が表示されるので、チェックボックスのチェックを行い、使用するルールを設定します。
・問題ビューの確認
Eclipse環境にてPMDでチェックされた内容を正しく表示するために問題ビューの設定を確認します。問題ビューのフィルターのアイコンをクリックし、フィルターの設定のダイアログを表示(図3)、タイプフィールドで表示されたPMDに関連する3つの項目がチェックされているか確認します。
●手動で実行
・コンテキストメニューから呼び出し
パッケージエクスプローラから添削対象の選択を行った状態で、右クリックにより、[PMD]-[Check Code With PMD]を実行します。
・解析結果の確認
PMDによる解析結果は、[Violations Outline]と[Violations Overview]に表示されます。基本は[Violations Outline]で表示されるエラーメッセージ、行番号を基に対象となるコードの問題点を確認します。
・解析結果への対処
[Violations Outline]で表示されるメッセージを右クリックし、以下のいずれかの操作を行います。
- 詳細を見る(Show Details)
指摘されたチェックルールの詳細を確認することができます。特にチェックルールで検出される典型的なコード例が表示されるので、何を修正すべきか分からない場合のよりどころとなります。 - レビュー実施済みマークを付ける(Mark as reviewed)
レビューが実施されたことを対象コードのコメントとして自動的に挿入することができます。最終的にレビューが完了した時点でPMDがコードに自動で挿入したコメントをすべて削除する場合にはコンテキストメニューから[PMD]-[Clear violations review]を選択することで、コメントを自動削除することができます。 - 違反と見なさない(Removed violations)
[Violations Outline]の指摘ルール一覧から削除します。レビュー等によって指摘されたルールが違反ではないと判断された場合に使用します。 - 修正する(Quick fix)
チェックによって検出された指摘事項を修正する機能のようですが、現時点ではこの機能を用いることができるルールは存在しません。
Copyright © ITmedia, Inc. All Rights Reserved.