2

Java自動化テストの場合、より良いアプローチは、Cruise Control(java)、JUNIT(javaテストフレームワーク)をWatijと一緒に使用することであることがわかりました。それ以上の提案をお願いします。これらのツールをうまく統合した人と、これにはどのような制限がありますか。

よろしく

4

3 に答える 3

2

私たちは通常、次の 3 つのレベルでアプリケーションをテストしようとします。

  • JUnit を使用した単体テスト。この目的のために、依存性注入パターンに従い、必要に応じてモック オブジェクト (JMock フレームワークに基づく) を使用します。
  • 統合テスト。これらも JUnit に基づいていますが、モック オブジェクトを使用せず、データベースへの書き込みなど、アプリケーションのさまざまなレイヤーをテストします。基本データの目的で、オブジェクト マザーパターンに従います。
  • 受け入れテストでは、この目的のために Selenum を使用します。

テストの自動化と継続的な統合のために、当社のプロジェクトは Maven と Hudson で構築されています。現在検討中の改善点の 1 つは、テストに Java の代わりに Groovy を使用することです。

解決しなければならなかった問題のいくつか: テスト ケース セットアップでの基本データの作成 (オブジェクト マザー パターンに基づく)、すべてのテストの実行には多くの時間がかかる可能性があるため、テスト スイートの編成、テスト コードの重複への対処などMaven と Selenuim をいじる必要はありませんが、長い目で見れば間違いなく価値があります。

于 2009-06-04T13:31:07.870 に答える
1

私の同僚の 1 人は、 Watir に似ていると推測しているWatirの大ファンです。私はSeleniumが好きで、最近Telluriumで遊ぶことを考えています。

いずれにせよ、CruiseControl やHudson (私のお気に入り)などの継続的インテグレーション エンジンとこれらのいずれかを結び付けることは、Web アプリケーションの機能テストを処理する優れた方法です。また、JUnit は単体テストや統合テストにも最適です。

Web アプリケーションの機能テストの制限:

ユーザーに「左側のメニューの最初の項目」をクリックするように指示することはできますが、コンピュータに同じことをさせるのはそれほど簡単ではありません。Web アプリケーションのテスト フレームワークは、画面を見ることができず、ページ上のどの要素がメニューを構成しているかを簡単に見分けることができません。どの要素と対話するかについて、より具体的な情報が必要であり、そのためには、HTML ページがどのように構築されているかについての知識が必要です。ページが変更されると、テストも変更されます。

ページのある部分の小さな変更がページの他の無関係な部分のテストを壊すとき、それらのテストは「脆い」と呼ばれます。テストがより安定していることを確認するには、通常の単体テストと同様に、ある程度の経験が必要です。たとえば、要素の ID または名前を使用して、ページ上の要素を参照します。完全な XPath (長くて読みにくく、脆い可能性があります) やテキスト コンテンツ (変更される可能性がある場合) ではありません。

于 2009-06-04T13:28:40.730 に答える
0

私たちは、Web アプリケーションの機能テストに WATIR を好んで使用しています。Ruby のブラウザ自動化パッケージです。簡単に習得でき、多くのテスト ケースを作成した後も障害に遭遇することはありません。

于 2009-06-04T13:21:20.200 に答える