2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

テストコードのカバレッジは100%じゃなくてもいい

Posted at

はじめに

今回はこちらのコードカバレッジに関するGoogleのテストブログを読んだので
コードカバレッジの目安についてまとめていきたいと思います。

コードカバレッジとは

コードカバレッジはテストコードの指標として用いられます。対象ソースコードに対して、どれだけ網羅してテストできているかを表します。カバレッジにもいろいろな種類があり、関数単位、ソースの行単位、条件文を網羅できるかなど、様々な観点でカバレッジを出すことができます。
基本的には、テストされたアイテム数、コードで見つかったアイテムに対して、カバレッジ率(コードで見つかったアイテムのうち、テストされたアイテムの割合)を算出します。カバレッジ率が高ければ、高いほど網羅性が高いです。

コードカバレッジが高い ≠ 品質が高い

コードカバレッジが高ければ、より網羅的にテストできていることを表すことができますが、品質がめちゃくちゃ高いかどうかはまた話が変わってきます。網羅的にテストできてることが、テストケースがバグを適切に検出できてるとは言えないです。
カバレッジを数値化している目的は、あくまでどのソースコードの箇所がテストできていないかを分かるようにするためです。本来の目的であるバグを減らすことを考えると、網羅性に加えて、バグをより検出できるテストコードを書くほうに力を入れる必要があります。

コードカバレッジは100%じゃなくていい

コードカバレッジを100%に近づけようとすることに重点を置くと、テストケースの品質が下がり、無駄な作業に時間をかける場合があります。例えば、コードカバレッジを100%にするため、あと1行をカバーするテストコードを書く必要があり、そのコードをどう書くか考えます。最終的に残っている個所は特殊な書き方じゃないとカバーできない箇所だったりすることが多く、これらを考えるのに見合ったリターンがなく、不毛な作業が増えます。体感、コードカバレッジを0%から80,90%までにすることよりも、95%を100%にすることのほうが、時間がかかると思います。
こうした作業に時間をかけるよりも、テストケースが適切なものになっているか見直したほうがより良いテストコードにすることができます。

コードカバレッジの目安

Googleでは、コードカバレッジのパーセンテージの目安が
60%:「許容できる」
75%:「賞賛に値する」
90%:「模範的」
となっています。

こちらの記事も見ると、85~99%の間が推奨されています。
ベストな目安は85%以上と考えられます。

まとめ

コードカバレッジについて調べなおして、改めてコードカバレッジの数字だけが大事ではないことに気づかされました。
これからは、コードカバレッジの数字だけでなく、バグをより少なくできるテストコードを書けてるか意識して書いていきたいです。

2
0
0

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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?