Seleniumの目的は、UI駆動型の統合テストを作成することです。
統合テストは、システムのすべてのコンポーネントが一緒に展開されたときに正しく機能することを確認します。統合テストは十分なテスト戦略ではなく、ユニットテストや受け入れテストなど、異なる焦点を持つ他のテスト戦略を補完します。
UI駆動のテストは本質的に脆弱ですが、SeleniumとWatirは、記録と再生ツールの初期の段階からのステップアップです。この問題に対処する方法はいくつかあります-以下は、世界クラスの専門家からのアドバイスをまとめたものです。
このタイプのテストからすべてのテストカバレッジを取得しようとしないでください。Robert C. Martin は、統合テストによるコードカバレッジは約20%になるはずだと主張しています。入力がいくつかのアプリケーション層から離れている場合、実行のすべてのパスをテストすることは単に非現実的です。
単体テストと受け入れテストからほとんどのテストカバレッジを取得します。FinnNkの回答でGojko Adzicの記事へのリンクを探してください。Adzicは、受け入れテストとUIのバイパスによるビジネスロジックのテストについて繰り返し議論しました。
ただし、UI駆動テストの一部を作成する必要があります。ここで、「UIを介してビジネスロジックをテストしないでください」に加えて、実用的なアドバイスが必要になります。出発点として、Patrick Wilson-Welshのブログをお勧めします。