gcovによるステートメントカバレッジ計測

GCCコンパイラに付属しているgcovというツールを使用し、ステートメントカバレッジ(C0カバレッジ)を計測する方法を紹介します。

ステートメントカバレッジとは、すべての実行可能命令のうち、テストで実行された命令の割合です。

gcov

■環境

OS:Linux

言語:C/C++

コンパイラ:GCC 3.4.6

 

■手順(カバレッジ測定)

以下の簡単なプログラムのカバレッジを測定してみます。

 

  1. プログラムをオプション付きでコンパイルする
  2. コンパイルしたファイルを実行する
  3. gcovでカバレッジデータを読み込む

     

この例では全体の80%の命令が実行されていることがわかります。

また、同じディレクトリに出力されている「test.c.gcov」にどの命令が実行されたのかが記録されています。

 

■手順(HTMLで表示)

lcovを使うと、カバレッジの計測結果を視覚的にわかりやすく表示できます。

  1. 以下からlcovをダウンロードする
    http://ltp.sourceforge.net/coverage/lcov.php

  2. 環境にlcovをインストールする
  3. test.gcdaと同じディレクトリでlcovを実行する
  4. genhtmlを実行する
  5.  infoディレクトリ内のindex.htmlをブラウザで開く
    以下のように実行された命令、されていない命令が色分けされて表示されます。

 

 

オリエンタルインフォーメイションサービス(OIS)