こんにちはー、まもーです🐬
今回は少々ITの内容になります。IT業界ではソースコードをどれだけテストしたかを示す「カバレッジ」という言葉があります。そのカバレッジのレベルがC0、C1、C2のように定義されてるのですが、それぞれの意味を覚えられないというか、忘れる!!!なので今回は復習しながら、誰でも覚えられるように工夫してみました。
プログラムの「カバレッジ」って何?
プログラムのテストでよく聞く「カバレッジ」。冒頭で記載したとおり、カバレッジは「どれだけコードをテストできたか」を示す指標です。
IT企業の新人の方に加えて久しぶりにコードを書いている中堅エンジニアの方でも、「C0、C1、C2?どれがどれだっけ?」と迷った経験があるのではないでしょうか。
この記事では、テストでよく使うC0(命令網羅)、C1(分岐網羅)、C2(条件網羅)の基本を、具体例を交えながら解説します。シンプルで覚えやすい方法をお届けするので、ぜひ参考にしてください!
C0/C1/C2を理解する!
まずはカバレッジの種類を表で整理しました。この表を押さえれば、C0/C1/C2の概要をサクッと理解できます!
カバレッジの種類 | 名称 | テスト内容の定義 | IT現場での担保度 |
---|---|---|---|
C0 | 命令網羅 | すべての命令(コード行)が1回実行されること | 必須 |
C1 | 分岐網羅 | すべての分岐を1回以上通ること | ほぼ必須 |
C2 | 条件網羅 | 条件式の各要素のtrue/falseを1回ずつ通ること | 場合による |
テスト内容は名称そのままですね。
また、シンプルなサンプルコードを使ってC0、C1、C2の違いを具体的に解説します。
サンプルコードの中に、命令、分岐、条件、が指す箇所を示しました。それらの箇所の実行パターンを網羅するようにテストを行うことで、テスト内容を満たせます。
具体的に解説します。
1. C0(命令網羅)
- 定義: すべての命令(コード行)が1回実行されること。
- サンプルコードでのテスト内容:
doSomething()
とdoSomethingElse()
の両方が実行されれば達成。 - 具体例:
- A=10, B=4 →
doSomething()
実行 - A=3, B=4 →
doSomethingElse()
実行
- A=10, B=4 →
2. C1(分岐網羅)
- 定義:すべての分岐を1回以上通ること。
- サンプルコードでのテスト内容: if文のtrue側(
doSomething
)とfalse側(doSomethingElse
)の両方が実行されれば達成。 - 具体例:
- A=10, B=4 → true側
- A=3, B=4 → false側
3. C2(条件網羅)
- 定義: 条件式内の各要素(例: A > 5、B < 3)のtrue/falseを1回ずつ通ること。
- サンプルコードでのテスト内容: A > 5とB < 3がそれぞれtrue/falseを1回以上取るようなパターンで実行されれば達成。
- 具体例:
- A=10, B=4 → A > 5 = true
- A=3, B=1 → B < 3 = true
- A=3, B=5 → A > 5 = false, B < 3 = false
C0/C1/C2をシンプルに覚えよう!
C0、C1、C2の違いを簡単な表や例で復習しました。で、正直一番忘れるのはC0が命令網羅、C1が分岐網羅、C2が条件網羅という、日本語の部分ではないでしょうか?なので今日は語呂合わせを作りました。
是非覚えてみてください、いきますよ
「カバのメイちゃん、髪ブン回してキャバ嬢に」
メイ=命令、ブン=分岐、嬢=条件で、C0,1,2の順番になっています!
ちなみにカバはカバレッジです。もう一度繰り返しますねw
「カバのメイちゃん、髪ブン回してキャバ嬢に」
このカバのメイちゃんがまさか、カバレッジのC0、C1、C2の語呂合わせの画像とは誰も思わないでしょう😂
おぼえてねん★
ぜ、ぜひ、この記事を参考にしてください。
今回は以上とします、ありがとうございました🐬
コメント