テスト範囲に関する真実

Mary-Kate Olsen
リリース: 2024-09-28 16:23:01
オリジナル
506 人が閲覧しました

The truth about test coverage

力強い真実。

次のシンプルでわかりやすいコードを見てください:

function sum(a, b) {
  return a + b;
}
ログイン後にコピー

それでは、いくつかのテストを書いてみましょう:

test('sum', () => {
  expect(sum(1, 2)).toBe(3);
  expect(sum(2, 3)).toBe(5);
  expect(sum(3, 4)).toBe(7);
  expect(sum(4, 5)).toBe(9);
});
ログイン後にコピー

カバー率は 100% ですよね?実際、すべてのコードが 4 回完全にテストされているため、400% のカバレッジを達成していると言えますが、本当にそうなるでしょうか?

真実は、そうではありません。限られた入力セットを使用して関数をテストしていますが、エッジケースは考慮しておらず、無効な入力を使用して関数をテストしていません。

次の点を考慮してください:

sum(1, '2');
sum(1, null);
sum(1, undefined);
ログイン後にコピー

そのようなシナリオでは何が起こるでしょうか?関数はエラーをスローしますか?値を返すのでしょうか?アプリケーションが壊れてしまいますか?

テストカバレッジの罠に注意してください。

テスト カバレッジは強力なツールですが、究極の解決策ではありません。これは、コードのどの程度がテストされているかを理解するのに役立つ指標ですが、テストがどの程度適切に行われているかを示すものではありません。

テスト範囲は量に関しては役に立ちますが、質に関してはほとんど役に立ちません。適切なテストを作成し、エッジケースを考慮し、無効な入力でコードをテストし、テストが意味のある価値のあるものであることを確認するのはあなた次第です。

結論

これはかなり短い記事だったことは認めますが、それでも、良いテストを書くことの重要性を思い出させるものとして役に立てば幸いです。テストカバレッジはツールであり、目標ではないことに注意してください。それを最大限に活用するかどうかはあなた次第です。

チャオ

マイケル。

以上がテスト範囲に関する真実の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート