5

すべてのテスト自動化の専門家へ:-)!次のシナリオについてのご意見をお聞かせください。

テストする必要のあるWebアプリケーションがあります。サーバーでバックエンドテストを実行し、クライアントでフロントエンドテストを実行する必要があります。また、バックエンドとフロントエンドの両方を含むエンドツーエンドのテストを実行する必要があります。

サーバーはWebサービス(SOAP)を公開し、フロントエンドクライアントはこれらのサービスからのデータを消費します。Webサービスからのデータを消費するサードパーティのクライアントもあります。テストシナリオでは、エンドツーエンドのテストを行う必要がある場合があります。つまり、フロントエンドGUIでいくつかの変更を加えてから、バックエンドでWebサービスを使用して、変更が成功したかどうかを確認します。

私はFitNesseが好きです-私の意見では、WHATとWHYをHOWから分離することは、優れたテストを設計するために不可欠です。SeleniumテストをFitNessewikiページと統合することを可能にするSelenesseモジュールがあります。これにより、テストの方法(シナリオテーブルとスクリプトテーブル)から、何か(wikiテキスト)をテストする必要がある理由とその理由を簡単に説明できます。

FitNesseの問題は、SOAPWebサービスをテストするのがやや面倒なことです。専用のSOAPクライアントJavaフィクスチャを開発するか、FIT用に記述されたServiceFixtureクラスを拡張するJavaフィクスチャを作成する必要があります。いずれにせよ、 soapUIでこれらのテストを実装する場合よりも、開発作業は大幅に大きくなります。

私の意見では、soapUIの欠点は、テストの内容と理由を簡単に説明する方法がないことです(少なくとも直感的な方法ではありません)。

したがって、エンドツーエンドのテストのための合理的な開発努力が必要であると仮定して、FitNesse /SelenesseでGUIテストを作成し、soapUIでバックエンドテストを作成するアプローチに落ち着きました。FitNesseからsoapUIテストを実行するか、そこですべてのテストを管理するか、soapUIからFitNesseテストを実行するかを選択できます...

このアプローチのテスト管理(1つのビューでテスト結果を確認するのはそれほど簡単ではありません)と保守性(異なる言語の2つのツール)に関していくつかの懸念があります。これに関するベスト/グッドプラクティスについて何かアイデアはありますか?他の2つを管理するための3番目のツールを提案しますか?

4

2 に答える 2

1

ハドソン、バンブーなどの継続的インテグレーションツールを使用していますか?

コミット/ビルドのたびにアプリケーションを自動的にテストできるように、継続的インテグレーションのアプローチをお勧めするため、この質問をしています。

つまり、ハドソンまたはバンブーを使用する場合、開発者が何かをコミットした後にテストを実行する機会があります。さらに、スケジュールに従ってテストを実行できます。

もう1つの利点は、これらのツール(hudson / bamboo)がテストスクリプトをログに記録し、失敗/成功(選択)の場合に電子メールを送信できることです。したがって、テストを簡単に監視できます。

また、seleniumとsoapUIを並行してまたは連続して実行する機会があります。


また、soapUIテストについていくつか提案があります。

テストケースが多ければ多いほど、それらを開発、実行、および保守するために必要な時間が長くなります。重要な点は、テストを設計する際に保守性を考慮することです。

アプリケーションで複数のWebサービスを利用できる場合、WSDLは変更される可能性があり、SoapUIで更新する必要があります。1つのsoapUIプロジェクトにすべてが含まれている場合、複数のプロジェクトではなく、1か所でWSDLを更新するだけで済みます。したがって、1つのアプリケーションに対して1つのsoapUIプロジェクトのみを作成します。

次に、テストスイートとテストケースを作成する必要があります。

すべてのサービスのメインフロー(成功シナリオ)を1つの回帰テストスイートに含めます。Webサービスの要求は、論理的なビジネスフローに従って順序付けする必要があります。たとえば、オンラインストアのWebサービスをテストする場合は、最初にアイテムを検索してから購入する必要があります。この論理的なビジネスオーダーをsoapUIテスト内に保持すると、テストステップごとに単一のグローバル変数を簡単に設定できます。つまり、最初のステップでアイテムXを検索してから同じアイテムを購入できます。これにより、アイテムXのグローバル変数を設定できます。このようなsoapUIプロジェクトの保守または拡張が簡単になります。データソースを作成して変数(オンラインストアの例ではさまざまなアイテム)を収集し、それらのアイテムのケースをループで拡張する機会があります。

于 2012-11-02T08:23:58.877 に答える
0

soapuiを使用してテストスイートを作成し、jenkinsを使用してテスト結果を報告することをお勧めします。

jenkinsとgenratexmlテスト結果ファイルを使用してsoapuiテストとfitnesseテストを実行できます。この設定は、end2endテストを構築するときに非常に役立ちます。テストセットまたはテストスイートをJenkinsと非常にうまく結び付けることができ、テスト結果を表示および保存するための優れた方法が必要です。

動作中のコンポーネントに焦点を当てる場合、スプリントまたは完全なアプリで作業を行うことは、end2endテストの動作に多大な労力を費やすほど安定していません。代わりに、soapuiテストの動作に個別に集中する必要があると思います。

于 2013-03-19T19:49:35.450 に答える