Eclipseのコードカバレッジ機能とは?テストがちゃんとできているかを可視化しよう!
こんにちは。ゆうせいです。
今回は、Eclipseを使っている新人エンジニアに向けて、コードカバレッジ(Code Coverage)という機能をわかりやすく解説します。
「テストは書いたけど、全部のコードがちゃんと実行されたのかな?」
そんな疑問を数字や色でハッキリ答えてくれるのがコードカバレッジの機能なんです。
コードカバレッジとは?
コードカバレッジとは、テストがソースコードのどこまで実行されたかを示す指標のことです。
- どの行がテストで実行されたか?
- どのif文やループが通ったか?
- 実行されなかった死んでいるコードはどこ?
これらを色分け(緑・黄色・赤)や数値で表示して、テストの網羅性を測ります。
例えるなら、掃除をした後に「どこを拭いたかをライトで照らして確認する」ようなイメージですね!
Eclipseでコードカバレッジを使うには?
Eclipse単体ではこの機能はありませんが、通常は以下のプラグインを使います。
使われるプラグイン:EclEmma(エクレマ)
- Eclipseの有名なコードカバレッジツール
- インストールすると Run with Coverageボタンが追加される
- JUnitなどのテストと組み合わせて利用
セットアップ手順(EclEmmaの導入)
- Eclipseの[ヘルプ] → [新規ソフトウェアのインストール] を選択
- 以下のURLを追加: http://update.eclemma.org/
- 「EclEmma Java Code Coverage」を選択してインストール
- 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%を目指すと非効率 | 重要なロジックを優先してカバーするのが現実的 | 
今後の学習のすすめ方
- まずはEclEmmaを導入して、JUnitと一緒に使ってみる
- 赤や黄色のコードを探し、どんなパターンが漏れているか考える
- カバレッジ率だけでなく、テスト内容の質にも注目する
コードカバレッジは、「ちゃんと動くか」だけでなく「ちゃんと守れているか」をチェックする安全装置のようなもの。
新人エンジニアのうちから使い慣れておけば、将来のテスト設計やコードレビューの場面で大きな武器になりますよ!
セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク
投稿者プロフィール
- 代表取締役
- 
セイ・コンサルティング・グループ株式会社代表取締役。
 岐阜県出身。
 2000年創業、2004年会社設立。
 IT企業向け人材育成研修歴業界歴20年以上。
 すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
 この記事に間違い等ありましたらぜひお知らせください。