今回の記事では、「関数カバレッジ」と「コールカバレッジ」をご紹介します。これらのカバレッジは、主に統合テストフェーズで計測されるカバレッジです。統合テストフェーズでは、統合した関数やモジュールが、正常に動作するのか確認するテストを行います。そこで使用される「関数カバレッジ」と「コールカバレッジ」とは、どのような基準なのかご紹介します。

関数カバレッジ

関数カバレッジは、ソフトウェアの各階層(コンポーネント、モジュール等)における関数の数と実行された関数の割合です。計測の目的としては、ソフトウェアの各階層における未実行の関数や、意図していない関数を発見することです。

どこの階層の関数カバレッジを計測するのかは、開発プロジェクトのルールや、カバレッジツールによって異なります。例えば、ソースファイルの階層で、関数カバレッジを計測する場合は、以下のような計算式になります。


コールカバレッジ

コールカバレッジとは、実行されたソフトウェア関数コールの割合です。計測の目的としては、ソフトウェア全体における未実行の関数や、意図していない関数を発見することです。コールカバレッジでは、着目する視点によって『Callerカバレッジ』と『Calleeカバレッジ』という2通りの計測方法があります。

○Callerカバレッジ

着目する関数の中に記述された関数コールの内、実行された関数呼び出しの割合を示します。


○Calleeカバレッジ

着目する関数の呼び出し箇所の内、実行された呼び出し箇所の割合を示します。


まとめ

いかがだったでしょうか。関数カバレッジとコールカバレッジ(Caller/Callee)の特徴を把握できましたでしょうか。統合テストフェーズで使われるということで、過去にご紹介したステートメントカバレッジやブランチカバレッジとは、違った視点だったかと思います。各モジュールを結合後、関数が意図通り動いているのか、コールされているのか、関数カバレッジやコールカバレッジが確認の基準になります。ぜひ統合テストに、カバレッジ計測を取り入れてみてください。

関連記事「カバレッジを始めよう!」シリーズ
【ホワイトペーパー】知っておきたいMC/DCの計測アルゴリズム

 - ISO 26262規格で求められるMC/DCの概要 -