tusbasaのブログ

業務や勉強中に調べたことを自分用にメモするブログ

カバレッジの種類

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^各個別条件数必要になる


参考

www.qbook.jp

www.youtube.com