このツールについて
「カバレッジ」と呼ばれる数値は 3 種類あり、それぞれ異なる問いに答えます。要件カバレッジは、すべての要件にテストがあるかを問います。実行カバレッジは、計画したテストのうち実際にどれだけが実行され合格したかを問います。コードカバレッジは、自動テストの実行中にどのコードが実行されたかを問います。この計算ツールは 3 つすべてを扱い、それぞれの計算式を表示します。コードカバレッジについては、Istanbul、Vitest、Jest、JaCoCo、coverage.py のレポートにある 4 つのパーセンテージと閾値を入力すると、ゲートを満たさない指標を示し、ブランチカバレッジが行カバレッジを大きく下回るといったパターンを指摘します。これは通常、エラー処理や else 分岐がテストされていないことを意味します。カバレッジからはわからないことも説明します。
使い方
- 計算の種類を選びます:要件、実行、コードカバレッジ。
- 件数またはパーセンテージを入力すると、入力に合わせて結果が更新されます。
- コードカバレッジでは、CI が課している閾値を設定し、指摘事項を確認します。
- ステータスレポート用にサマリーをコピーします。
テストカバレッジ計算ツール のよくある質問
コードカバレッジ 100% は良い目標ですか?
ほとんどの場合、そうではありません。最後の数パーセントは通常、到達するのにコストがかかる防御的なコードで、100% のカバレッジでもアサーションに意味があることは証明できません。多くのチームは 70〜90% をゲートにし、カバーされていないコードはプルリクエストでレビューしています。
ブランチカバレッジが行カバレッジより低いのはなぜですか?
if 文のある行は 1 回実行されればカバー済みと数えられますが、ブランチカバレッジには true と false の両方の結果が必要です。差が大きいということは、多くの条件が一方向(多くは正常系)でしかテストされていないことを意味します。
テストが実際に何かを検証しているかを確かめるには?
ミューテーションテスト(JavaScript なら Stryker、Java なら PIT など)は、コードを少しだけ変更し、テストが失敗するかを確認します。生き残ったミュータントは、テスト中に実行はされているものの、実際には検証されていないコードを示しています。