7

典型的なWebアプリケーションスタックがあります。アプリケーションに対して実行される120のセレン(Webドライバー)テストがあります。これには約1時間かかります。ビルドチェーン「コンパイル>ユニットテスト>統合テスト>GUIテスト」の一部として実行します。GUIテストには多くの時間がかかり、それらをより適切に構成する方法を考えています。現在、それらは「幸せなケースと不幸な」ケーステストです。それらは非常に安定しています。つまり、プログラマーのエラーが原因で失敗することはありません。

ビルド時間を短縮したいのですが、最大の部分はGUIテストです。これは、「カスタマージャーニー」に基づいて行います。つまり、テストしすぎるのではなく、(ビジネスマンと一緒に)いくつかの典型的なユースケースを指定してテストします(ハッピーパス)。

GUIテストをどのように構成しますか?ここに私の頭に浮かんだいくつかのアイデアがあります

  • ハッピーパステストのみを実行する
  • 「カスタマージャーニーテスト」を実行します。つまり、1つで複数のハッピーパステストを実行します(「ページをクリックして」)。
  • ビジネスで指定された「トップ10」のみを取得する(ミッションクリティカル)
  • トップ10+ナイトリービルドとしての「残りすべて」(1回)

私はあなたのアイデアをいただければ幸いです

ありがとうマルセル

4

4 に答える 4

7

夜間はSeleniumテストに最適な時間です。「電源を切らないでください」と忘れないでください。コンピュータの付箋:)。

また、夜間が短すぎてすべてのテストを実行できない場合は、常にSeleniumGridがあります。グリッドを使用すると、複数のマシンで並行してテストを実行できます。

さまざまな状況に適用できるいくつかのテストスイートがあります。メジャーリリース(テスト、プレライブ、本番)の前に、すべてが実行されます。通常(ラッシュの日には毎日または1時間ごとに)、「アプリケーションを介したユーザーの高速化された通常のパス」スイートのみが実行されます。そして、誰かが大きなバグを「修正」すると、アプリケーションのその部分に関連するテストが実行されます。

于 2012-05-02T09:32:14.847 に答える
4

1時間は私には絶対に問題ないようです。

1つの提案は、どのテストがスモークテストの対象であり、毎晩実行する必要があるかを決定することです。つまり、Webアプリケーションのコア機能を示すテストはそのままで機能しています。他のより詳細なテストは、さまざまな時間に実行できます(数日ごとに1回ですか?)。

そうは言っても、約2時間かかります。唯一の問題は、1つのテストが失敗した場合に発生します。それを修正してコミットしますが、CIサーバーで修正されたことを確認するために非常に長い時間を待つ必要があります。

于 2012-05-02T11:50:05.157 に答える
1

TeamCityでは、同じマシン上でビルドを並行して実行できるため、GUIテストをユニットテストおよび統合テストと一緒にビルドチェーンに含めることはできません。UIテストには、開発者や手動テスター、またはその他の利害関係者の時間を無駄にしないように、個別のデータベースと個別のビルドが必要です。TeamCityはすべての統計を収集し、ビルドの失敗などに関する電子メールを送信します。
次のステップは並列化です。Slanecが言ったように、 Mbunit(c#)またはTestNG(java)でGrid(複数のマシンは必要ありません)を使用できます。グリッドを使用すると、テストの実行時間を10分の1に短縮できるため、すべてのテストを実行するのに6(!)分しかかかりません。
また、いくつかのテストをより大きなテストに組み合わせることができます(ただし、これにより、失敗の理由を発見する時間が長くなり、テストの保守が困難になります)。
これらの手順の後、各ソースがコミットした後にGUIテストを実行して、アプリケーションのバグステータスに迅速に対応できます。

于 2012-05-02T23:02:57.993 に答える
0

素晴らしい質問、素晴らしい答え。

追加の考慮事項は、120guiテストに優先順位を付けることができるということです。最も重要なテストまたは失敗する可能性が最も高いテストが最初に実行されるような順序で実行できます。これはビルド時間を短縮するのに役立ちませんが、ビルドから有用なフィードバックをより速く得るのに役立ちます。

この優先順位(上位10)は修正する必要はありませんが、リリース/イテレーション/完了したストーリー/日ごとに変更できます。たとえば、最新のGUIテストを最初に実行することができます。または最近変更されたもの。または、最近変更されたコードのほとんどをカバーしているもの。

私の知る限り、これをすぐにサポートするツールはありませんが、テストケースの優先順位付けの分野でかなりの(学術的な)研究が行われています。

于 2012-05-03T20:38:49.303 に答える