Statement coverage、Branch coverageを参考にすると良さそう(simpleCov、jestの場合Condition Coverageはデフォルトでは測定できない)
Statement Coverage
- プログラム内の各命令が実行されたかの網羅率(命令網羅率)
- 三項演算子の条件分岐は見れない
Branch Coverage
- ifやcaseなどの全ての分岐の処理が実行されたかの網羅率
- 各決定ポイント( if 文など)の真と偽の両方のパスがテストされたかどうかを測定
if(a > 0 && b > 0)
の場合4通りの条件があるが、全体がtrueとfalseの2通りテストした場合100%になる
Function Coverage
- プログラム内の各関数が呼び出されたかの網羅率
- 関数が一度でも呼び出されれば良い
Line Coverage
Condition Coverage
- 各決定ポイント内の各個別条件が独立して true と false の両方の値を取るかどうかを測定
if(a > 0 && b > 0)
の場合2通りの条件のテストが必要- (a = -1, b = 1) , (a = 1, b = -1) この2条件でテストすれば100%になる
multipule Condition Coverage
- 各決定ポイント内の各個別条件の組み合わせ全ての網羅率
if(a > 0 && b > 0)
の場合4通りの条件のテストが必要- 条件の組み合わせは 2^各個別条件数必要になる
参考