Eclipseのコードカバレッジ機能とは?テストがちゃんとできているかを可視化しよう!

こんにちは。ゆうせいです。

今回は、Eclipseを使っている新人エンジニアに向けて、コードカバレッジ(Code Coverage)という機能をわかりやすく解説します。

「テストは書いたけど、全部のコードがちゃんと実行されたのかな?」
そんな疑問を数字や色でハッキリ答えてくれるのがコードカバレッジの機能なんです。


コードカバレッジとは?

コードカバレッジとは、テストがソースコードのどこまで実行されたかを示す指標のことです。

  • どのがテストで実行されたか?
  • どのif文やループが通ったか?
  • 実行されなかった死んでいるコードはどこ?

これらを色分け(緑・黄色・赤)や数値で表示して、テストの網羅性を測ります。

例えるなら、掃除をした後に「どこを拭いたかをライトで照らして確認する」ようなイメージですね!


Eclipseでコードカバレッジを使うには?

Eclipse単体ではこの機能はありませんが、通常は以下のプラグインを使います。

使われるプラグイン:EclEmma(エクレマ)

  • Eclipseの有名なコードカバレッジツール
  • インストールすると Run with Coverage ボタンが追加される
  • JUnitなどのテストと組み合わせて利用

セットアップ手順(EclEmmaの導入)

  1. Eclipseの[ヘルプ] → [新規ソフトウェアのインストール] を選択
  2. 以下のURLを追加: http://update.eclemma.org/
  3. 「EclEmma Java Code Coverage」を選択してインストール
  4. Eclipseを再起動すると、ツールバーに「Coverage」アイコンが出現!

コードカバレッジの使い方ステップ

ステップ1:JUnitテストを書く

@Test
public void testAdd() {
    Calculator calc = new Calculator();
    assertEquals(5, calc.add(2, 3));
}

ステップ2:「Run with Coverage」で実行

  • テストクラスを右クリック → 「Coverage As」→「JUnit Test」
  • 実行が終わると、コードに色付きのカバレッジ結果が表示されます!

色の意味(EclEmmaのカバレッジ表示)

意味状況
緑(Green)実行されたコードテストで通った!
赤(Red)実行されなかったコードテスト漏れあり!
黄色(Yellow)部分的に通ったコード条件式の一部だけ実行

たとえば、if (x > 0)x = 1 のテストしかなければ、falseのパターンがカバーされず「黄色」になります。


カバレッジ率とは?

カバレッジには主に以下の3種類の指標があります。

種類内容数式(記号で)数式(日本語)
行カバレッジ実行された行の割合実行済み行 ÷ 全行実行された行数 ÷ 全コード行数
命令カバレッジJVM命令単位の割合実行済み命令 ÷ 全命令実行された命令数 ÷ 全命令数
分岐カバレッジ条件文の全パターンの割合通過済み分岐 ÷ 全分岐if文などのtrue/falseパターンの網羅率

コードカバレッジを活用するメリット

メリット内容
テストの抜けを見つけやすい実行されていない箇所が赤で一目瞭然
不要なコードの発見テストされていない=使われていないかも
品質向上テストの信頼性が上がる
保守性向上他人のコードでもカバレッジで理解しやすくなる

注意点と限界

注意点内容
緑色だからといって安心できないテストの中身が不十分なこともある
カバレッジ100%でもバグはある網羅と品質はイコールではない
無理に100%を目指すと非効率重要なロジックを優先してカバーするのが現実的

今後の学習のすすめ方

  1. まずはEclEmmaを導入して、JUnitと一緒に使ってみる
  2. 赤や黄色のコードを探し、どんなパターンが漏れているか考える
  3. カバレッジ率だけでなく、テスト内容の質にも注目する

コードカバレッジは、「ちゃんと動くか」だけでなく「ちゃんと守れているか」をチェックする安全装置のようなもの。

新人エンジニアのうちから使い慣れておけば、将来のテスト設計やコードレビューの場面で大きな武器になりますよ!

セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。