テストカバレッジの種類
テストカバレッジには種類がある
code:_
func foo() {
if (a) { // l2
// l3
}
if (b && c) { // l5
// l6
}
}
C0 命令網羅
全ての命令を最低1回実行
a,b,cどちらもtrueであれば (1ケース) l2, l3 を通るので100%
C1 分岐網羅
全ての条件分岐の組み合わせを通る
a, b && c それぞれで true,false を実行すれば (4ケース) l2, l3 の条件分岐を通るので100%
C2 条件網羅
全ての条件の組み合わせを通る
a, b, c それぞれで true, falseを実行すれば (8ケース) l2, l3 の条件分岐の組み合わせを通るので100%
C3以降もあるらしい
ebiken.icon カバレッジ100%を目指すのは大抵の場合間違っているし、100%だからといってカバレッジの種類によっては十分テストしているとはいえない。
Goの公式testpackageではc0カバレッジしか取れない