テスト工程のC0 C1 C2 カバレッジとは何でしょうか?
調べてみました。
目次
テストカバレッジ、コードカバレッジとは
コードカバレッジはコード網羅率とも呼ばれ、ソフトウェアのテストの網羅性の尺度の一つです。
つまり、所定の網羅条件がテストによってどれだけ実行されたかを割合で表したものです。
ソフトウェアのテストでは、すべてのケースと、すべてのコードがテストされるカバレッジ100%が望ましい。
一方で、複雑な条件が含まれるソフトウェアでは、カバレッジ100%が無理なために、「C0/C1カバレッジ100%」がユニットテストの完了条件として含まれているプロジェクトも多いようです。
このようにカバレッジには種類があるので、それらを見てみましょう。
カバレッジ(網羅率)の種類
行カバレッジ
すべてのコード行のうち、テストで実行された行の割合です。
ステートメントカバレッジ(C0:命令網羅率) (statement coverage)
すべての実行可能命令(ステートメント)のうち、テストで実行された命令の割合です。
それぞれの命令文が少なくとも1回は実行される ようにテストを設計します。
ブロックカバレッジ
すべてのブロックのうち、テストで実行されたブロックの割合です。
ブロックは、if文などによる分岐を含まない一連のステートメントです。
パスカバレッジ
すべてのパス(可能な実行経路)のうち、テストで実行されたパスの割合です。
判断文カバレッジ(ブランチカバレッジ、C1:分岐網羅率) (branch coverage)
すべての判定条件のうち、テストで実行された判定条件の割合です。
それぞれの判定条件における真偽が少なくとも1回は実行される ようにテストを設計します。
単純条件カバレッジ(C2:条件網羅率) (condition coverage)
すべての条件のうち、テストで実行された条件の割合です。
判断文カバレッジ との違いは、1つの判断文には(ANDやORで接続された)複数の条件が含まれる場合がありますが、 判断文カバレッジでは判断文全体が真と偽の両方の値を取ればよいのに対し、単純条件カバレッジでは個々の条件が真と偽の両方の値を取る必要がある点です。
それぞれの条件文における真偽が少なくとも1回は実行される ようにテストを設計します。
コメント