カバレッジってなんなのさ?

復習用記事です。実務で経験した不明点などをここでまとめます。完全に自分用です。

カバレッジって何なのさ?

今日の面談練習で「Rspecを書くときはカバレッジ何%目指してやられているんですか?」的な質問された。

カバレッジ????ってなったので、調べてまとめてみる。

カバレッジとは

いろいろな業界で使われる言葉らしいが、今回はITに限る。

日本語にすると網羅率と訳されて、ソフトウェアのテストがどの程度の割合終了したのかを評価する言葉

IT業界あるあるでその時の話の文脈で同じ言葉でもいろいろな意味で解釈される。

面談練習での聞かれ方も上で調べたような意味としては聞かれてなかった。

他にもカバレッジは大きく分けて4パターンあるらしい

こちらのURL参考

1. テストカバレッジ・・・テストがどれくらい終わったかの割合

2. コードカバレッジ・・・プログラムコードテストがどれくらい終わったかの割合

1と2での違いは、1はソフトウェア全体のテストの割合を求めるのに対して、2はコードベースで割合を求める

3. エリアカバレッジ・・・電波を送受信できるエリアのこと。今回とは関係なし

4. 機能カバレッジ・・・仕様書(要件)をテストする項目の割合について

質問から解釈するに2のコードカバレッジが近そう

コードカバレッジにもC0とC1がある

ナニソレオイシイノ状態ですね。

C0(ステートメントカバレッジ)・・・テストにおける命令網羅率。全部の命令処理をちゃんと通ってテストしましょうね。参考URL
C1(ブランチカバレッジ)・・・分岐網羅率。条件が分岐している箇所もしっかりテスト作りましょうね。参考URL(こちらのサイトはよく参考にさせていただいてます)

Railsに携わっているので、それで例えると

CRUD処理のメソッド一つ一つテストしたか?コントローラーやモデルで独自に作ったメソッドもテスト通したか?各メソッドで if 文とかで条件分岐した先の結果とかもテストしたか?例外処理は?

こんなところだろうか。

質問の内容にお答えするならば

「目指してますか?」という文脈からステートメントカバレッジとブランチカバレッジをちゃんと網羅してテスト作ってんのかオラっていうような質問かなと思うので、「100%目指してやってます」ってな感じで良いよと直属の上司よりお話ありました。

まとめたことでテスト観点にするべき視野がまた広くなった。今後も勉強した内容まとめよう。

この記事が気に入ったらサポートをしてみませんか?