今回の記事では、「関数カバレッジ」と「コールカバレッジ」をご紹介します。これらのカバレッジは、主に統合テストフェーズで計測されるカバレッジです。統合テストフェーズでは、統合した関数やモジュールが、正常に動作するのか確認するテストを行います。そこで使用される「関数カバレッジ」と「コールカバレッジ」とは、どのような基準なのかご紹介します。
関数カバレッジ
関数カバレッジは、ソフトウェアの各階層(コンポーネント、モジュール等)における関数の数と実行された関数の割合です。計測の目的としては、ソフトウェアの各階層における未実行の関数や、意図していない関数を発見することです。
どこの階層の関数カバレッジを計測するのかは、開発プロジェクトのルールや、カバレッジツールによって異なります。例えば、ソースファイルの階層で、関数カバレッジを計測する場合は、以下のような計算式になります。
コールカバレッジ
コールカバレッジとは、実行されたソフトウェア関数コールの割合です。計測の目的としては、ソフトウェア全体における未実行の関数や、意図していない関数を発見することです。コールカバレッジでは、着目する視点によって『Callerカバレッジ』と『Calleeカバレッジ』という2通りの計測方法があります。
○Callerカバレッジ
着目する関数の中に記述された関数コールの内、実行された関数呼び出しの割合を示します。
○Calleeカバレッジ
着目する関数の呼び出し箇所の内、実行された呼び出し箇所の割合を示します。
まとめ
いかがだったでしょうか。関数カバレッジとコールカバレッジ(Caller/Callee)の特徴を把握できましたでしょうか。統合テストフェーズで使われるということで、過去にご紹介したステートメントカバレッジやブランチカバレッジとは、違った視点だったかと思います。各モジュールを結合後、関数が意図通り動いているのか、コールされているのか、関数カバレッジやコールカバレッジが確認の基準になります。ぜひ統合テストに、カバレッジ計測を取り入れてみてください。
関連記事「カバレッジを始めよう!」シリーズ
- カバレッジを始めよう!#1 ~カバレッジって何?~
- カバレッジを始めよう!#2 ~より強力なカバレッジ基準「ブランチカバレッジ」「MC/DC」~
- カバレッジを始めよう!#3~関数カバレッジとコールカバレッジ~