コードカバレッジを自動的に適用しないでください。
これは、メソッドごとにコードの最大行数を強制するのと似ています。同意します。ほとんどのメソッドは、たとえば20 LOC未満である必要がありますが、メソッドがそれよりも長い場合もあります。
同様に、クラスごとに特定の割合のコードカバレッジをターゲットにすると、望ましくない結果が生じる可能性があります。例えば:
ボイラープレートコードクラスまたはコードジェネレーターによって作成されたクラスは、まったくテストされない場合があります。開発者にそれらをテストするように強いることは何の利点もありません、そしてそれをするのに費やされた時間の面でかなりのコストがかかります。
アプリケーションの重要でない部分を処理する単純なコードは、必ずしもテストする必要はありません。
一部の言語では、一部のコードをテストできません。私は、C#でこのメソッドを使用し、ライブラリの匿名メソッドを使用して、コードカバレッジを100%にしたいと思っていました。これらのケースは、開発者にとって意気消沈する可能性があります。
さらに重要なことに、コードカバレッジはコードの2つの側面に比例する必要があります。
もちろん、測定値としてコードカバレッジを使用することもできます。特に、異なるチームがコードカバレッジを達成する方法を比較するために使用します。テストに関して、規律が厳しくなく、より消極的なチームが存在する場合があります。このような場合は、この指標を、バグの数、バグの解決に費やした時間、コードレビュー中のコメントの数などの他の指標と組み合わせることができます。
あなたはまた、少なくとも強制することがあり、いくつかの個々のプロジェクトで、¹、コードカバレッジを60%と言うことは理にかなって、それが可能に除外として、開発者が特定のクラスをマークするために作る(プロトタイプを除外するように注意してください、などのコード、CRUDを、生成されました)コードカバレッジからも素晴らしい²です。この場合、コードカバレッジが必要な最小値を下回っている場合、ビルドに失敗するチェックの形式でこれを行うことができます。私が考え、構築段階でそれを行う段階をコミットしていないことから、あなたがコミット時にユニットテストを実行することが期待されていません。
code私はコードベースに基づいて60%を妥当な最小値と見なします。コードカバレッジが60%未満のほぼすべてのプロジェクトまたはクラスは、実際にはテストされていません。これは、言語や会社によって大きく異なる場合があります(会社によっては、0%が標準です)。何が正常で何が高すぎるかをチームと話し合うようにしてください。多分彼らは絶えず95%に達していて99%を簡単にターゲットにすることができます、あるいは多分彼らはコードカバレッジを70%から75%に増やすのに苦労しています。
²最終的な悪用はコードレビュー中に検出されるため、開発者にこの可能性を与えることを恐れないでください。これは、リンターまたはスタイルチェッカーによるチェックからコードの一部を除外する可能性に似ています。JSLint、StyleCop、およびコード分析は、除外がサポートされている3つの例であり、乱用を助長することなく実際に役立ちます。