[ 通常表示 ]  [ 簡易表示 ]  [ シンプル表示 ]

「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

テストカバレッジ (test coverage)

pointこの用語のポイント

pointテスト全体に対して、どれくらいの確認が終わったか?だよ

point何をもって「全体」と見なすかはケース・バイ・ケースだよ

スポンサーリンク

簡単に書くよ

テストカバレッジ (test coverage)とは

「テストを全部やると、これだけ確認できるはずだよ。それに対して、今はこれだけの確認が終わってるよ」な割合のこと
です。

image piyo

詳しく書くよ

テストにおける「全部で、これだけ確認するよ」に対する「これだけ確認できたよ」な割合が「テストカバレッジ」です。
カバレッジ」は「全体に対して、これくらいをカバーしているよ(カバーしたよ)」的なことをカッコ付けて言った表現ね。

テスト全体で、これくらいの確認をします。

テストカバレッジ

そのうち、これくらいの確認が終わりました。

テストカバレッジ2

確認が終わった範囲、言い方を変えると、確認が終わった割合がテストカバレッジです。
日本語で「網羅率」と表現されたりもします。

テストカバレッジ3

例えば、そうですね。
ここにピヨ太プログラムがありました。

テストカバレッジ4

ピヨ太プログラムは

1.お腹が空いた
2.嫌なことがあった


のどちらかの条件を満たすと、ケーキを食べます。

テストカバレッジ5

そんな役立たずなプログラムです。

ピヨ太プログラムの処理を、もう少しプログラムっぽく書くと以下のようになります。

if((お腹が空いた? == Yes) or (嫌なことがあった? == Yes)){
  ケーキを食べる
}


テストカバレッジ6

このピヨ太プログラムに対して「処理が枝分かれしたときの行き先を全部1回は確認するぜ!」な方針でテストを行うことにしました。
具体的には、ピヨ太プログラムが

1.ケーキを食べる
2.ケーキを食べない


の2つのパターンを、それぞれ確認します。

テストカバレッジ7

最初の時点では、何も確認できていません。
テストカバレッジは0%です。

テストカバレッジ8

次にピヨ太プログラムを

1.お腹が空いた? → Yes

の条件に設定してテストを行いました。

テストカバレッジ9

このテストにより

1.ケーキを食べる

分岐に入った際の処理に問題がないことを確認できました。

テストカバレッジ10

これでテストカバレッジは50%です。
全部で2つ確認するつもりです。
そのうちの1つが確認できました。
半分終わった計算です。

テストカバレッジ11

次にピヨ太プログラムを

1.お腹が空いた? → No
2.嫌なことがあった? → No


の条件に設定してテストを行いました。

テストカバレッジ12

このテストにより

2.ケーキを食べない

分岐に入った際の処理に問題がないことを確認できました。

テストカバレッジ13

これでテストカバレッジは100%です。
全部で2つ確認するつもりです。
そのうちの2つとも確認できました。
全部終わった計算です。

テストカバレッジ14

なお、何をもって「全部」と見なすかはケース・バイ・ケースです。
テストの方針や、やり方によります。

今回のピヨ太プログラムの例では「枝分かれの行き先」に注目してテストを行いました。
ピヨ太プログラムが

1.ケーキを食べる
2.ケーキを食べない


の2つを確認できれば全部です。
テストカバレッジ100%になります。

もし、テストを「枝分かれする要素(条件)」に注目して行ったら、どうでしょう。

ピヨ太プログラムにおける枝分かれする要素は

1.お腹が空いた?
2.嫌なことがあった?


の2つです。
それぞれYes/Noのどちらかになるので、

1.お腹が空いた? → Yes
2.お腹が空いた? → No
3.嫌なことがあった? → Yes
4.嫌なことがあった? → No


の4つが考えられます。

この4つを確認することを「全部」とした場合、先ほどのテストでは、足りません。
先ほどのテストでは「ケーキを食べる」ルートの

1.お腹が空いた? → Yes

と「ケーキを食べない」ルートの

2.お腹が空いた? → No
4.嫌なことがあった? → No


しか、やっていないからです。

3.嫌なことがあった? → Yes

の確認が取れていません。

「枝分かれの行き先」に注目した場合は、テストカバレッジが100%(2つ確認する予定の2つ)になりました。
「枝分かれする要素(条件)」に注目した場合は、テストカバレッジが75%(4つ確認する予定の3つ)にしかなりませんでした。

やったのは同じテスト内容なのにです。

このように、どのような観点でテストを行うかによって「全部」が変わります。
一応、頭の片隅にでも置いておいてください。

image piyo2

一言でまとめるよ

まぁ「テストカバレッジ」って単語が出てきたら「テストにおける確認が終わった部分の割合なんだな~」と、お考えください。

一番上に戻るよ
スポンサーリンク