コードカバレッジ
全体に対して、どれくらいの確認が終わったか?だよ
何を「全体」と見なすかはケース・バイ・ケースだよ
人によって微妙に解釈が違ったりもするよ
簡単に書くよ
コードカバレッジ(英:code coverage)とは
「テストカバレッジ」のこと。
用語の中身としては
「テストを全部やると、これだけ確認できるはずだよ。それに対して今はこれだけの確認が終わってるよ」な割合のこと
です。
あるいは
「ソースコード
(人間語で書いたプログラムの元ネタ)全体で100行あるよ。それに対して50行分の確認が終わってるから、50%の確認が終わったね!」のような、ソースコード全体に対する確認が終わった割合のこと
です。
詳しく書くよ
「コード」+「カバレッジ」で「コードカバレッジ」です。
今回 登場する「コード」は「ソースコード」の省略表現です。
ソースコードは「人間語で書いたプログラムの元ネタ」です。
人間語で書いた元ネタをコンピュータさんが分かる形に翻訳(コンパイル)することで実際に動くプログラムになります。
カバレッジは「あ~、こいつはね。全体に対して、これくらいをカバーしているよ(したよ)」的なことをカッコ付けて言った表現です。
全体は、これくらいです。
ピヨ太君は、これくらいカバーしています。
ピヨ太君のカバーしている範囲がピヨ太君のカバレッジです。
以上を踏まえて、ソースコード全体に対する何かがカバーしている範囲がコードカバレッジです。
一体、何がカバーしている範囲なのでしょうね?
ズバリ!
テストにおける確認です。
ソースコードに対する「確認が終わった範囲(割合)」
がコードカバレッジです。
テスト全体で、これくらいの確認をします。
そのうち、これくらいの確認が終わりました。
確認が終わった部分の割合がコードカバレッジです。
例えば、そうですね。
テストで100項目確認するとしましょう。
そのうち30項目の確認が終わりました。
その場合のコードカバレッジは30%です。
なお、コードカバレッジは「テストカバレッジ(カバレッジ)」や「網羅率」と表現されることも あります。
気が向いたら、覚えてあげてください。
……というのが、一番広く解釈した場合のコードカバレッジの説明です。
いろいろ調べてみたのですが、人によっては微妙に解釈の仕方が違うっぽくてですね。
中には「(確認する項目の数ではなく)ソースコードの量に対する確認が終わった割合」を意図して「コードカバレッジ」と表現している人がいました。
例えば、そうですね。
100行のソースコードが ありました。
そのうち30行目までの確認事項を確認し終わりました。
その場合のコードカバレッジは30%です。
さらに、そこから派生したのか「命令網羅率」を意図して「コードカバレッジ」と表現している人もいました。
おっと、これは大変です。
「命令網羅率」とかいう小難しい漢字が満載の単語が出てきました。
さくっと説明しておきますね。
命令網羅は「全部の処理を通ればテストはOKだよね?」なテスト方針です。
プログラムというのは、いろいろな「処理」をします。
その処理を少なくとも1回は通るようにテストをするのが命令網羅です。
※詳細は、用語「命令網羅」の説明を ご覧ください。
命令網羅率は「命令網羅でテストをやってるんだけどさ~。何割くらい確認が終わったかな?」を何となく数字で表したものです。
「命令網羅における確認の消化率」と言えますかね。
処理(命令)が2つあって、そのうちの1つを確認できれば命令網羅率は50%です。
確かにプログラムというのは処理の集まりです。
「ソースコードに書いてあるのは処理」と言えます。
だから「命令網羅率」を意図して「コードカバレッジ」と表現したのでしょう。
とはいえ、個人的な印象では「テストにおける確認が終わった部分の割合(=テストカバレッジ)」を意図して「コードカバレッジ」と表現している人が多いように感じます。
基本的には、その解釈で問題ないはずです。
もしも「コードカバレッジ」と「テストカバレッジ」が一緒に出てきたら要注意です。
「こいつは、どんな意味で『コードカバレッジ』という用語を使っているのかな?」を考えてあげてください。
一言でまとめるよ
まぁ「コードカバレッジ」って単語が出てきたら「テストにおける確認が終わった部分の割合なんだな~」と お考えください。
おまけ
■訳してみるよ
「code(コード)」は今回は「source code(ソースコード)」の略です。
「source code(ソースコード)」はIT用語の「ソースコード」です。
「source(ソース)」の意味は「源」とか「起源」とか「根源」とかです。
「code(コード)」の意味は「記号」とか「暗号」とか「符号」とか「コード」とかです。
「coverage(カバレッジ)」の意味は「適用範囲」とかです。
何となく くっつけると
源の記号の適用範囲
となります。
■検索してみる?






