私が現在取り組んでいる会社は、ユニファイドユーザーインターフェイスのテストにSeleniumを使用しています。あなたのWeb UIのユニットテストには何を使用していますか、それをどの程度効果的に見つけることができますか?Web UIのユニットテストには何を使用しますか?
答えて
私は雇用の場所でWatinを使用しています。私たちは.netショップですので、このソリューションはかなり意味があります。実際にWatir(オリジナルのRuby実装)から始まり、後に切り替えました。これまでのところかなり良い解決策でした
私たちはSelenium Coreを使用していますが、徐々にSelenium RCに切り替わりました.Selenium RCは管理しやすくなりました。私たちは、Continuous Integrationサーバー上でテストを実行するためのカスタムコードをたくさん作成しました。それらの一部は、並列スイートで実行する方が高速です。
Seleniumが各テストでブラウザを再起動するように見えることがあります(これを行わないように設定できますが、そのときにメモリの問題が発生しています)。これはFirefoxでは遅くなる可能性がありますが、IEではそれほど悪くはありません(私はBill GatesのOS統合に感謝しています)。
私たちはQuickTestProを使用しています。これまでのところ有効ですが、ブラウザの選択には限界があります。最も良い点は、ブラウザのアクティビティを記録し、スクリプト可能な一連のステップに変換できることです。素晴らしい.Netアドインもあるので、テストのさまざまな段階で必要な検証コードがあれば、アセンブリにメソッドを記述してスクリプトから呼び出すことができます。
あなたのアプリケーションを適切に設計していれば、とにかくUI内にロジックの痕跡が残ることはありません。実際の作業をUIから分離したユニットに分けて、それをテストする方がずっと理にかなっています。
これを行うと、UIの唯一のコードはバックエンドを呼び出すコードになるため、単にバックエンドをテストするだけで十分です。
これまで(自分の仕事で)NUnit ASPを使用していましたが、あなたのUIを単体テストすることを強くお勧めする場合、NUnit ASP以外は何も使用しないことを強くお勧めします。テストの対象が実際に変更されていなくても、ほとんどのマイナーなUIの変更があっても、テストは無効になる(修正が必要)傾向があります。
私たちは単体テストを行うためにしばらくの間、JSunitを使用しています...あなたが話しているのと同じ種類のテストではないかもしれませんが、あなたの期待どおりのJavaScriptの動作を保証するのに最適です。
これをブラウザで実行すると、Antビルドで設定して、多数のプラットフォーム上の多数のブラウザに対してリモートで自動的に実行できるようになります(コードがクロスブラウザであることと、ロジックは正しい)。
私はそれがセレンを置き換えるとは思わないが、それはそれをうまく補う。
私はWATIRを使用しましたが、これはかなり良いです。私はそれがRubyであり、対話性、利用可能な要素、ソースコードの解析をテストできるので好きでした。私はしばらくそれを使用していないが、私はそれが良いと仮定します。
これはおそらくFirefoxとSafariに移植されていると思われますが、それは今のところ起こっています。
チェックアウトCanoo Web Test。オープンソースであり、ANTフレームワーク上に構築されています。
私はSoftware QAの大学院コースでそれに取り組んでいましたが、かなり強力なテストツールであるようです。
Selenium Gridは、私はほとんどあなたがグラフィカルにテストを定義することができますEclipseプラグインである、CubicTestを使用するWebテストプロセスをスピードアップすることができ、並行して複数のマシンに
をあなたのWebテストを実行することができます。これは、ワイアやセレンを含むいくつかのライブラリを通じてテストをエクスポート/実行できます。しかし、ほとんどの人はセレンのランナーを使っています。
完全な開示:私は、開発者の一人ですので、私は
はここを見て近づいてください:)種類の偏っただ:cubictest.openqa.org
-Erlend
セレンが統合テストのためでありますユニットテストではありません。それは微妙だが重要な違いだ。私が通常見るのは、健全性チェックのためのものです。つまり、ログインするテスト、ストーリーを提出する、コメントを付けるなどのテストがあります。
デプロイメント前にシステム全体が連携しているかどうかをテストしていますが、ユーザーにサイトが壊れていることを発見させるのではなく、
私はセレンの巨大なファンです。いくつかのコメントが述べているように、「あなたのウェブUIのユニットテスト」は正確ではありません。しかし、私はSeleniumがUI上でこうした受け入れテストと健全性テストを実行するのに非常に役立つことがわかりました。
開発の一環として、Selenium IDEを使用することをお勧めします。つまり、あなたの開発時間を短縮するためにテストを開発して書くときにIDEを開いておいてください。 (手動でUIを操作して、作業中のものをテストできるようにする代わりに、ボタンを押すだけで、Selenium IDEがそれを処理します。
私の主要なユースケースのシナリオには、それらをバックアップするためのSelenium RCテストがあります。 xUnitフレームワークのラインに沿った単体テストと考えることはできませんが、非常に特殊な機能を対象としたテストです。彼らはすぐに書くことができます(特に、ログインやテストケースの設定のための一般的なメソッドを実装している場合)、すぐに実行し、非常にタイトなフィードバックループを提供します。これらの感覚では、セレンのRCテストは非常にであり、ユニットテストと同様にです。
テストツール(例えば、セレン)を正しく学習するために努力すると、あなたの努力はスペードで報われるでしょう。あなたの会社はすでにSeleniumを使ってUIテストを行っていると言います。これは素晴らしい。それを使って作業してください。 Seleniumが使いにくくなったり混乱したりする場合は、それに固執してください。一度APIを少し学ぶと、学習曲線はそれほど急なものではありません。
私がWebアプリケーションで作業している場合、Selenium RCテストを行わずに相当量のコードを書き込むことはまれです。それがセレンを見つけるのに効果的です。 :)(あなたの質問に答えることを願って)
私たちはVisual Studio 2008 Tester Editionを使用しています。
長所:
はAjaxが
捕捉されたテストできるファイルのデータベース、XMLやCSVへのユーザー入力をマップすることは非常に容易である
を呼び出してキャプチャし、ユーザーとの対話をキャプチャで良い より多くの制御のためにC#に変換する
同じテストを負荷テストとコードカバレッジに使用できます
の短所:
VS2008テスターEditionはあなたが我々は非常にそれを使用しているマイクロソフト;-)
にalergicかもしれ余分なコストに
を意味し、通常のDeveloper Editionから別々のSKUですテストを最新の状態に保つのには多くの労力が必要ですが、画面を変更するたびにテストを再記録する必要があります。
テストを短く、鋭くする傾向があります。 1回のテストで約10分間のクリックを記録する代わりに出て行く。
我々はいくつかの標準的なUIテストの種類があります。
メニューテスト:特定のユーザー(またはユーザータイプ/役割)としてログのに必要なすべてのメニュー項目が
利用可能であることを確認します検証テスト:ページを開き、データを入力せずに[保存]をクリックすると、すべての検証警告が表示されます。必要なフィールドを一度に1つずつ完成させ、警告メッセージが表示されるのを確認します。
検索テスト:あなたのデータベースやデータファイルからのデータを使用して検索し、正しいデータが検索
データ入力のテストで返されることを確認:データファイルから新しいrecrordsを作成し、クリーンアップデータベーステストを複数回実行できるようにする
UIテストはかなり時間がかかりますが、新しいバージョンをリリースする前に数百回のテストが合格したときの快適さは貴重です。
Molybdenumは、Selenium上に構築され、いくつかの追加機能があります。
現在、Web UIをテストするためのJava中心的アプローチのSilk4Jを使用しています。 Flash、Flex、AIR、Silver Light、Win32、HTMLなどのアプリケーションをテストすることができます。
Silk4JはWin32アプリケーションを制御できるため、ブラウザダイアログを直接制御することができます。これはSeleniumが制御できるもので、ダウンロードプロンプトに特に便利です。
- 1. UIユニットテスト用にGoogle Toolboxを使用する方法
- 2. JavaScriptを使用しないWeb UIフレームワーク
- 3. Intellisenseを使用したWeb UI
- 4. Jazzy UIを使用したJava Webフレームワーク
- 5. ユニットテストWeb API(HttpServerまたはHttpSelfHostServerを使用)
- 6. AndroidのUIデザインパターンとは何ですか、HNewsが使用していますか?
- 7. ASP.NET MVC3 UIユニットテスト
- 8. Webブラウザエンジンはhtmlをレンダリングするために何を使用しますか?
- 9. ユニットテストUIルータ
- 10. ユニットテスト偽のHTTPContextを使用したASP.NET Web APIコントローラ
- 11. ユニットテストとiOS用UIテストの比較
- 12. ユニットテストと.NETでのUIテスト
- 13. パスワードハッシュには何を使用しますか? jBCryptを使用しない理由は何ですか?
- 14. ユニットテストWeb?
- 15. ブラウザ間のXML処理には何を使用しますか?
- 16. ワークフロー基盤:WebサービスまたはWCFを使用しますか?私のWFには何が最適ですか?
- 17. コントローラパラメータを使用したユニットテスト
- 18. Pythonのユニットテストでdoctest "result parser"を使用していますか?
- 19. ユニットテストのui-router解決コールバック
- 20. sparrowアプリケーションはどのUIコントロールを使用していますか?
- 21. InstagramはどのUIフレームワークを使用していますか?
- 22. ユニットテストWebサービスリクエストディスパッチャ(Java)に必要ですか?
- 23. Web Adverstimentに使用できる製品とは何ですか?
- 24. このiOS UIエレメントとは何ですか、どのようにしてUIエレメントを作成しますか?
- 25. ユニットテストはどのようにSmartGWTクラスを使用できますか?
- 26. ユニットテストでGoogle App EngineのImagesService.getImagesService()を使用できますか?
- 27. ASP.NetでWebアプリケーションを開発または使用するためにWebサイトを使用していますか?
- 28. WebアプリケーションでEJBを使用する利点は何ですか?
- 29. サーバ上のバックボーンコレクションのフィルタには何を使用しますか?
- 30. WebフォームのUIを保護するために何をすべきですか?