システム開発において、ソースコードの品質を担保するためにはソースコードレビューが不可欠です。ソースコードレビューには主に、以下の三つの役割があります。

  • コーディング規約順守のチェック
  • バグ埋め込みのチェック
  • 性能劣化のチェック

 これらのチェックは、実装(コーディング)工程で行うべきものです。コーディング規約の違反箇所は、実装工程の後では修正される機会は少なくなります。また性能問題を放っておくと、システムテストなどかなり後の工程で明るみ出て、リリースまでに残された少ない時間の中で対応を余儀なくされるといった事態になりかねません。

 このように、ソースコードレビューには、その後の工程で補うことができない大きなメリットがあります。繰り返しますが、ソースコードレビューは必ず行うべきです。しかし実際の開発現場では、以下のような制約により、十分にソースコードレビューを行えないことがあります。

  • 必要なスキルを持つメンバーの不足
  • ソースコードレビューにかけられる工数の不足

 そこで静的解析ツールの登場です。静的解析ツールを用いることで、ソースコードレビューの一部を自動化できます。

静的解析ツールとは

 静的解析ツールは、ソースコードやコンパイルされたバイトコードを静的に(プログラムを実行せずに)解析し、あらかじめ決められたチェックルールに従ってソースコードが書かれているかどうかをチェックするツールです。静的解析ツールであらかじめ用意されていないルールについてチェックするには、カスタムルールを作成するか、人手によるソースコードレビューが必要になります。

 静的解析ツールはプログラミング言語ごとに提供されており、有償または無償のさまざまなツールがあります。以下は、無償で利用できるツールの一例です。

    開発言語:Java
  • Checkstyle
  • FindBugs

    開発言語:C、C++
  • Splint
  • cppcheck

    開発言語:.NET対応言語(C#、VB.NETなど)
  • FxCop

 今回はこれらのうち、Java言語に対応する静的解析ツールである「Checkstyle」と「FindBugs」を例に、ツール導入の流れを紹介します。