
ユカイ、ツーカイ、カイハツ環境!(8)
JUnit/FindBugs/PMDなどを総観できるQALab/Limy
岡本 隆史
2009/9/29
便利なEclipseプラグイン集「Limy」とは
「Limy」というEclipseプラグインをご存じでしょうか。これは、コード支援機能やプロジェクトの品質管理機能、プロパティエディタやVelocityテンプレートエディタなどが含まれている便利なEclipseプラグイン集です。
| 今回の主な内容 ・便利なEclipseプラグイン集「Limy」とは ・QALabで扱う7つの品質管理ツール ・Limyを使って品質レポートを作成してみよう ・QALabのレポート画面を見てみよう ・思わぬコーディングの悪癖も発見!? |
今回は、Limy Eclipseプラグインに統合されているソフトウェアの品質レポートを生成する「QALab」の機能を利用したソフトウェア品質管理やLimy EclipseプラグインのQALab実行機能について紹介します。
■ さまざまな品質管理機能を一括実行/総観できる「QALab」
Javaで品質管理を行うツールとして、さまざまなツールが提供されていますが、それらを利用するには1つずつセットアップする必要があり面倒です。
ObjectLABにより開発されるQALabを利用すると、さまざまな品質管理ツールを一括して実行でき、また、開発中のソフトウェアのある瞬間の品質だけでなく、時系列を追った遷移も見ることができるようになります。
■ QALabはLimy Eclipseプラグインでもっと簡単になる
QALabはAntのタスクやMavenのプラグインなどから利用できますが、Limy EclipseプラグインのQALab実行機能を利用すると、ボタン1つでQALabを実行でき、ソースコードの品質を管理するうえでのさまざまな統計情報を出力できます。
![]() |
| 図1 Limy Eclipseプラグインを利用したQALabのレポート画面 |
QALabで扱う7つの品質管理ツール
QALab自身は、下記の7つのツールの実行結果を統合してレポーティングできます(アルファベット順、下記リストはインデックスになっています)。
そのほか、TODOコメントの数やステップ数の遷移などの統計も取ることができます。
上記の個々のツールをセットアップすれば、それぞれのレポートを取得できますが、Limy EclipseプラグインのQALab実行機能を利用すると、面倒なセットアップなしにEclipse上からボタン1つで上記のツールのレポートを取得できます。それでは、1つ1つを見ていきましょう。
■ CheckStyle
コーディング規約違反をチェックします。開発者によるコーディングスタイルのばらつきを防ぎ、統一感の取れたコードにすることができます。CheckStyleの詳細については下記記事をご参照ください。
■ Cobertura
ユニットテストを実行した際のカバレッジを算出します。テストケースによるテストの網羅性の確認と、テストケースにより実行されていないコードを確認できます。
■ FindBugs
バグや不具合が混入している可能性があるコードを検出します。ストリームのクローズ漏れやマルチスレッドによる実行の不具合の検出やパフォーマンスが低下する可能性があるコードなど、検出できるバグは多岐に渡ります。
FindBugsはコンパイル済みのクラスファイルに対して検証するため、コンパイラの最適化により除去されるデッドコードやコーディング規約違反などは検出できません。FindBugsの詳細については下記記事をご参照ください。
■ JavaNCSS
クラス数、メソッド数、Javadoc数、コードの複雑さ(CCN:Cyclic Complexity Number)、コメントにより説明されていないコードのステップ数(NCSS::Non-Commenting Source Statements)などのソースコードのメトリクス(統計情報)を取得できます。
直接的なバグやコーディング規約違反などは指摘してくれませんが、複雑なメソッドをリファクタリングして分かりやすいコードに分割したり、コメント不足のコードを発見し、コメントを充実させるなど、保守しやすいコードにするのに役立ちます。
次ページでは、引き続き残りの3ツールを紹介し、Limy Eclipseプラグインを使い始めます。
| Index | ||||||||
|
||||||||
ユカイ、ツーカイ、カイハツ環境! バックナンバー 連載インデックスへ»
- 第1回 Trac Lightningで始めるチケット式開発「電撃」入門
- 第2回 SubversionとTracでファイル管理の“迷宮”から脱出
- 第3回 分散バージョン管理Git/Mercurial/Bazaar徹底比較
- 第4回 Aptanaなら開発環境とクラウドの連携が超お手軽!
- 第5回 App Engine/AptanaなどJavaクラウド4つを徹底比較
- 第6回 Eclipse 3.5 Galileoの「実に面白い」新機能とは
- 第7回 ブラウザを選ばずWebテストを自動化するSelenium
- 第8回 JUnit/FindBugs/PMDなどを総観できるQALab/Limy
- 第9回 Googlerも使っているIntelliJ IDEAのOSS版を試す
- 第10回 Webのバグを燃やしまくるFirebugと、そのアドオン7選
- 第11回 DB設計の神ツール「ERMaster」なら、ここまでできる
- 第12回 AWS ToolkitでTomcatクラスタをEC2上に楽々構築
- 第13回 究極の問題解析ツール、逆コンパイラJD-Eclipseとは
- 第14回 AzureのストレージをJavaで扱えるWindowsAzure4j
- 第15回 Java EE 6/Tomcat 7/Gitに対応したEclipse 3.6
- 第16回 単体テストを“神速”化するQuick JUnitとMockito
- 第17回 コード探知機「Sonar」でプロジェクトの深海を探れ!
- 第18回 Team Foundation ServerでJava開発は大丈夫か?
- 第19回 Review Boardならコードレビューを効率良くできる!
- 第20回 Bazaarでござ〜る。猿でもできる分散バージョン管理
- 第21回 「Hudson」改め「Jenkins」で始めるCI入門
- 第22回 Ant使いでもMavenのライブラリ管理ができるIvyとは
- 第23回 AWSの自由自在なPaaS「Elastic Beanstalk」とは
- 第24回 Eclipse 3.7 Indigo公開、e4、Orion、そしてクラウドへ
- 第25回 Java開発者が知らないと損するPaaSクラウド8選
- 第26回 Git管理の神ツール「Gitolite」なら、ここまでできる!
- 第27回 アジャイル管理ツール9選+Pivotal Tracker入門
| Java Solution全記事一覧 |
TechTargetジャパン
- Scalaのパッケージ、アクセス修飾子、オブジェクト継承 (2012/5/22)
インポート、パッケージオブジェクト、抽象クラス/抽象メソッド、オーバーライド、final、シールドクラスなども - 基幹系システムでCloud SQLは使えるか試してみた (2012/5/17)
サンプルとしてMRPシステムを作成して動かし、「再帰呼び出し」などのパフォーマンスを測定して検証してみます - アジャイル管理ツール9選+Pivotal Tracker入門 (2012/5/14)
群雄割拠のアジャイルプロジェクト管理ツールを9つ紹介し、特に注目を集めているPivotal Trackerの基本的な使い方を解説します - サーバサイドJSやJavaでWebアプリが作れるXPages (2012/5/11)
Notes/Dominoの資産をサーバサイドJavaScriptやJavaで操作し、HTMLやJavaScript、CSSをUIにできる技術を紹介
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -




