問題の歴史:
テストカバレッジ(test coverage)は、テスト品質の主要な指標の一つです。カバレッジ戦略は、自動化の初期に登場し、テストの数が急激に増加する中で、手動で未カバーのシナリオを追跡することが不可能になりました。それ以来、アプローチは直感的なものから厳密な分析的なものに進化し、要件トレーサビリティ、コードカバレッジツール、テストピラミッド技術の管理が含まれています。
問題:
解決策:
主な特徴:
高いコードカバレッジ率は製品の品質を完全に保証できますか?
いいえ、できません。高いコードカバレッジ(例えば95%)は、特定のコード部分だけがテストされていることを意味することが多く、ビジネスロジックや使用シナリオが正確にチェックされていることを保証するものではありません。
常に100%のコードカバレッジを目指すべきですか?
いいえ。100%のカバレッジを目指すことは、メンテナンスコストを増加させ、時には意味のないまたは到達不能な部分のテストを書く必要が生じます。リスクと利益に基づいて優先事項を選択する方が良いです。
信頼できるカバレッジのためにユニットテストだけを使用するのは十分ですか?
いいえ。ユニットテストは統合シナリオやコンポーネント間の相互作用をカバーしません。テストピラミッドに従って、さまざまなテストタイプを組み合わせる必要があります。
チームは、すべてのプルリクエストに対して90%のテストカバレッジを必須とするパイプラインを導入しました。その結果、「空の」テストが出現し、行はカバーされているがシナリオはカバーされていない状況が生まれました。ビジネスロジックのエラーは見逃されました。
利点:
欠点:
チームは、トレーサビリティマトリックスとリスクベーステストを用いてカバレッジ戦略を構築しました:最も重要な機能はE2Eテストでカバーされ、重要度が低い機能はユニットテストでカバーされます。毎月、シナリオに基づいてカバレッジの監査が実施されます。
利点:
欠点: