Fight the Future

Java言語とJVM、そしてJavaエコシステム全般にまつわること

Javaのコードカバレッジツール

参考文献

Next Generation Java Testing: TestNG and Advanced Concepts

Next Generation Java Testing: TestNG and Advanced Concepts

Clover

Javaカバレッジツールとしては古参の1つ。

商用。さまざまなレポートフォーマットに対応している。

PDFでも出力可。さまざまなIDEのプラグインを提供している。

EMMA

オープンソースカバレッジツール。

クラス、メソッド、ブロックカバレッジがフルサポートされている。

複数のテストを実行して得たレポートを1つにまとめることができる。

EMMA: a free Java code coverage tool

Cobertura

同じくオープンソースカバレッジツール。

おもしろい機能としてカバレッジがあるパーセンテージを下回るとビルドを失敗させることができる。

Cobertura

Coverage Reports Don't Say What You Think They Say

カバレッジ自体は何も言っていない、ということ。

(つまり、レポートを見る人によって解釈が異なるということ。カバレッジ自体は意味を持たない。)

特にパーセンテージは意義を持たない(Irrelevant)。

カバレッジのために設計をするのは悪である(Designing for Coverage Is Evil.)。

カバレッジツールは存在しないコードはテストできない。


カバレッジはあくまで参考にしか過ぎず、

基準にするべきものではないというのがCedricの意見であり、

僕もその点には賛同する。