テストケースが正しいことを確認する方法はありません。ただし、テストケースを作成するときは、要件を理解し、コードを理解し、それらが一致することを確認することに集中します。テストスイートを持っていることのポイントは、あなたが一度だけこれをしなければならないこと、およびテストスイートずに本当にハードに集中しなければならないのに対し、その後からあなただけの、テストを再実行し、それらが通過していることを確認することができます上にあるすべての時間を、つまり、コードベースに何かをするときはいつでも。しかし、そもそもあなたが正しいことをしていることを確認しなければならないという根本的な問題は残っています。コンピューターは単にそのタスクを私たちから解放するほどインテリジェントではありません。
したがって、(1)テストスイートが不完全な場合、それを確認する簡単な方法はありません。コードカバレッジ分析は、コードの一部の行が実行されないこと、つまりスイートが何らかの形で不足していることを証明できますが、その不足がどれほど深刻であるかを証明できません。コードカバレッジが100%であっても、関連するすべての状態を保証するものではありません存在する可能性のある状態の組み合わせ数のために、システムのすべてが実行され、完全な状態カバレッジは現実的なシステムでは達成できません。チェックしたいものをチェックするためにテストケースが少なくとも正しいことを確認するための良いテクニックの1つは、テストを記述し、実際に失敗することを確認し、コードを記述/変更して、それが合格したことを確認することです。したがって、テスト駆動開発に対する熱意:個々のテストが正しいことを確実に行えるようにし、コードベース全体をそのように作成すれば、大規模なシステムでも同様のレベルの信頼を得ることができます。
(2)要件が変わるたびにテストスイートは通常不十分になります-推測する必要はありません。顧客が特定の動作の変更を望んでおり、変更の前後でテストが成功する場合、明らかに特定の入出力関係を実行していません。
テストカバレッジのないレガシーシステム、またはカバレッジが何であるかがわからない場所については、正式な証拠はありませんが、経験から言えば(親の助言:個人的な意見が続きます!)十分ではありません。テストが事後の、オプションの、品質を向上させるが、実際には必要ではないアクティビティと見なされる場合、テストがコードベースに遅れないようにするインセンティブがちょうどないため、不完全で体系的ではない傾向がありますありません。