SonarQube

SonarQubeでプログラムの品質管理をはじめる(概要)

More than 1 year has passed since last update.

はじめに

SonarQubeは日本語のドキュメントが少なく導入に苦労したので、同じように導入を試みようとする方の手助けになればと思い、使い方などまとめておこうと思います。
(2週に1度程度の頻度です)

記載する予定のもの

SonarQubeとは

スイスのSonarSource社が主に開発を行っている統合的なプログラム品質管理を行える統合品質管理ツールです。

SonarQubeのHP

何ができるのか

  • 様々な言語で書かれたソースコードに対して、静的解析チェックを実行して、その結果をWebで閲覧できる。
  • JUnitなどでユニットテストを実行して、テスト成功数、失敗数、カバレッジなどを採ることができ、Webで閲覧できる。
  • プログラムが循環参照している箇所をWebで閲覧できる。(現在Javaのみ)
  • プログラムの複雑度を測り、Webで閲覧できる。
  • プログラムの重複している箇所を洗い出して、その箇所をWebで閲覧できる。
  • プログラムのチェック方法はプラグインとして自分自身で拡張が可能。
  • 技術的負債を可視化してくれる。
  • チェック方法やチェック結果はWeb APIを使用することで外部にExport可能。
    ※Export機能はありますが現在非推奨となっています。
  • CI環境に組み込み、継続的な品質チェックを行える。

対応言語

現在(SonarQube 5.1)では主に以下の言語を対象としています。
※対応言語が多いため一部抜粋です。
その他の言語については公式を参照してください。
公式はこちら
* Java
* Android
* C/C++
* C#
* Objective-C
* PL/SQL
* HTML/JavaScript/CSS
* PHP

ライセンス

LGPLで公開されており、無料で使え、拡張も行えます。
また、SonarSource社のサポートを受けられるEnterprise Editionもあります。

SonarQubeのリポジトリ

https://github.com/SonarSource

SonarQube導入のメリット

  • 品質を見える化して公開することにより、成果物がどんな状態かをチーム皆で共有できる。または役職者にいつでも見せることができる。
  • コード遵守率などが上がるとグラフィックが変化するため、ちょっとしたゲーム感覚で開発者のモチベーションが上がる(かも)
  • CIの中の1ジョブとして実行できるため、クライアントのリソースを喰わなくて済む。
  • 品質集計をSonarQubeに任せることで、PMOの仕事が減る。

SonarQube導入のデメリット

  • 日本語の情報が不足
  • 新しすぎるバージョンを入れると、Javaの古いバージョンを切り捨てないといけないということがあるため、使用しているプログラム言語のバージョンによっては既知のバグ込みバージョンのSonarQubeを使用しないといけない。

次回はインストール方法についてまとめます。