2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

コードカバレッジの種類について

Last updated at Posted at 2020-10-06

コードカバレッジ

本記事の概要

本記事では、下記3種類のカバレッジについて記載する。

  • ステートメントカバレッジ(C0:命令網羅)
  • ブランチカバレッジ(C1:分岐網羅)
  • 単純条件カバレッジ(C2:条件網羅)

説明で用いるサンプルコード

if (条件文a1 || 条件文a2) { //判定条件A
	命令文1
} else{
	命令文2
	
} if (条件文b1 && 条件文b2) {	//判定条件B
	命令文3
}

ステートメントカバレッジ(C0:命令網羅)

結論

  • 実行可能なステートメント(命令)のうち、テストで実行された命令の割合のこと

    ⇒カバレッジを100%にするには、実行可能なステートメントを全て少なくとも1回は実行する必要がある

上記サンプルコードの場合

  • 命令文1~3のステートメントを行う2つのテストケースが必要

ブランチカバレッジ(C1:分岐網羅)

結論

  • 全ての判定条件のうち、テストで実行された判定条件の割合のこと

    ⇒カバレッジを100%にするには、それぞれの判定条件の真偽が少なくとも1回は実行する必要がある

上記サンプルコードの場合

  • 下記の2つのテストケースが必要(※それぞれの判定条件の真偽が少なくとも1回は実行されていることが確認できる)
  1. 判定条件A:真、判定条件B:偽
  2. 判定条件A:偽、判定条件B:真

単純条件カバレッジ(C2:条件網羅)

結論

  • 全ての条件文のうち、テストで実行された条件文の割合のこと

    ⇒カバレッジを100%にするには、それぞれの条件文の真偽が少なくとも1回は実行する必要がある

上記サンプルコードの場合

  • 下記の2つのテストケースが必要(それぞれの条件文の真偽が少なくとも1回は実行されていることが確認できる)
  1. 条件文a1:真、条件文a2:偽、条件文b1:真、条件文b2:真

    →判定条件A:、判定条件B:真
  2. 条件文a1:偽、条件文a2:真、条件文b1:偽、条件文b2:偽

    →判定条件A:、判定条件B:偽
  • なお、上記の例のようにC2のカバレッジが100%でも、C0, C1のカバレッジが100%になるとは限らない

参考

2
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?