Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

Java開発においてバグを除去する効率的な方法はこれだ――オープンソースツールの「FindBugs」とバグ検出に優れた「Jtest」の併用のすすめ

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2017/07/18 14:00

目次

コード実装中の解析はFindBugs、コミット後の解析はJtest

 さらに、JtestはFindBugsと組み合わせて併用することで、効率的に精度の高いソースコード解析を行うことができる。

 天久氏が推奨する運用方法は、コード実装中に行うスピード重視の解析にFindBugsを、より深いバグの検出を重視するコミット後の解析にはJtestを使うことだ。これにより、実装中に書いたコードをその場でチェックし、FindBugsが取りこぼしたバグをJtestで一気に刈り取る、といった運用が可能になる。

Jtestは有償ツールのため、まずプロジェクトで1ライセンスを用意し、コミット後の解析で利用すると効率がいい
Jtestは有償ツールのため、まずプロジェクトで1ライセンスを用意し、コミット後の解析で利用すると効率がいい

セキュリティやリソースリークのバグを減らし、レガシーコードの検証を楽に

 Java開発プロジェクトに参画している開発者はもちろん、品質保証部門やシステム開発の発注元や元請けのチームなどでも、セキュリティやリソースリークなどのバグに苦労している。天久氏は「レガシーコードの検証が必要、コーディング規約チェックをしたい人は、ぜひ一度Jtestを試してほしい」と勧める。セキュリティやリソースリークのバグは、本来なるべく早い工程で取り除くことが望ましい。なぜなら、システムテストなどの後工程で発生するとスケジュールに大きな影響が出るからだ。実際にはセキュリティ脆弱性を取り除くための工程は存在しないことが多く、事後対応になりがちだ。だが、Jtestを導入すればコード解析で検出できるようになり、大きな効果が得られるはずだ。

 また、長年運用されているシステムの場合はテスト資産が存在しないことも多い。そんなレガシーコードもJtestなら、静的フロー解析の実施によってバグ検出が可能になる。さらにコーディング規約チェックもJtestは得意としている。Jtestであれば社内で規定した規約に合わせたルールの作成が可能で、コードレビューの手間を削減することができる。具体的には「社内コーディングルールの標準化の仕掛けとしても使える」と天久氏。近年、ユーザー企業の多くがシステム開発を内製化する動きがあるが、大きなプロジェクトだと自社の社員だけでは人員が不足するため、複数のパートナー企業の支援を受けることになる。この場合気になるのがバラバラのコーディングルールだ。Jtestをコーディングルールの標準化の仕掛けとして活用すれば、ソフトウェア品質をより高められるというわけだ。

 現在FindBugsを導入しているが、ツールで見つけられないバグの検出を目視で行っているため負荷がかかっている、もっと効率的に静的解析を行いたい、品質を高めたいというのであればぜひ、Jtestを試してほしい。きっと満足する効果が得られるはずだ。

Jtestの無料体験版を入手!

 Jtestの無料体験版を配布しております。以下のリンクからダウンロード可能です。

お問い合わせ

 テクマトリックス株式会社



  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 中村 仁美(ナカムラ ヒトミ)

     大阪府出身。教育大学卒。大学時代は臨床心理学を専攻。大手化学メーカー、日経BP社、ITに特化したコンテンツサービス&プロモーション会社を経て、2002年、フリーランス編集&ライターとして独立。現在はIT、キャリアというテーマを中心に活動中。IT記者会所属。趣味は読書、ドライブ、城探訪(日本の城)。...

All contents copyright © 2005-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5