Windowsでのカバレッジ測定
OpenCppCoverageを使ってみた(1)

2021年1月30日

どもです。
ここ最近、Windows上で開発を行っています。
その際に、当然単体テストを行うのですが、その「結果」すなわち「カバレッジの測定」を求められる場合があります。
というか、ほとんどの案件で求められます。
しかし、この「カバレッジ」を測定する方法はプラットフォームによって様々です。
特にWindows環境では、有用なツールは殆ど有償かつ高価であり、現場への導入は中々できません。
そのため、Windows環境でカバレッジを測定する方法は、多くの現場で課題になっています。

この課題を解決するよい方法はないかと色々調べていたら、「OpenCppCoverage」というツールが見つかりました。
今回は、このツールの導入から使い方について書きます。

1.ツールの入手

OpenCppCoverageのWindows用インストーラは、GitHubで公開されています。
現状(2019年11月23日時点)では、Ver.0.9.8.0が最新バージョンです。
32ビットと64ビット版がありますので、各自の環境に合致するものをダウンロードしてください。
OpenCppCoverage_001_download

2.インストール

ダウンロードしたインストーラをダブルクリックすると、インストールが実行されます。

まず、インストール先を設定します。
(特に指定がないのであれば、デフォルト値のままでよいです。)
インストール先を指定したら、「Next」をクリックします。
OpenCppCoverage_002_install_001
次に、OpenCppCoverageにパスを通すか(インストール先を環境変数に追加するか)否かを設定します。
個人的には、パスを通した方が便利なので、チェックボックスをチェックしておいて、パスを追加するように設定します。
パスを通す/通さないのチェックを設定したら、「Next」をクリックします。
OpenCppCoverage_003_install_002
最後に、インストール設定の確認画面が表示されます。
インストール先と、環境変数にパスを追加するか否かの設定が示されています。
設定内容に問題がなければ、そのまま「Install」をクリックします。
OpenCppCoverage_004_install_003

3.実行

インストールが完了したら、次は実行です。
OpenCppCoverageは、下記のコマンドで実行します。

OpenCppCoverage --source (ソースコードへのパス) --export_type html -- (単体テストの実行ファイルのパス)#include  <stdio.h>

上記コマンドを実行すると、コマンドを実行した場所にカバレッジの測定結果をまとめたファイル(を格納したフォルダ)が生成されます。

なお、上記コマンドの引数の詳細、およびその他の引数については、OpenCppCoverageを参照してください。

4.結果

実行結果は、下のように表示されます。
OpenCppCoverage_005_result_001
各ファイルのパスをクリックすると、カバレッジの詳細が表示されます。
OpenCppCoverage_006_result_002
こんな感じで、テストできているコードとできていないコードが分かるようになります。

5.惜しいところ

このツールの惜しいところです。

  1. 日本語が文字化けする
  2. 測定できるカバレッジは、C0のみ。
    (C1、MC/DCのカバレッジが測定できない?)
  3. たまに通っているのに「通っていない」、と判定される場合がある。

6.まとめ

今回は、OpenCppCoverageという、カバレッジを自動で測定、結果を出力してくれるツールについて紹介しました。
カバレッジを測定、結果を出力するという意味では、機能は十分かと思います。
しかし、かゆいところに手が届いていない印象を受けるのもまた事実…。

現状のバージョンが「0.9.8.0」となっていることから、今後の機能追加に期待したいです。
C1とかMC/DCに対応してくれたら、ものすごくうれしいなぁ。

ではっ!