3

私がこの思考プロセスを経た最初の人だとは信じられないので、誰かが私を助けてくれるかどうか疑問に思っています.

現在の状況: 開発者が Web サイトを作成し、運用担当者がそれを展開します。デプロイが完了すると、開発者がスモーク テストを行い、デプロイがスムーズに行われたことを確認します。

私にはこれは間違っているように感じます。本質的には、アプリケーションをデプロイするのに 2 人が必要であることを意味します。私たちの場合、この 2 人は地球の反対側にいて、タイムゾーンが関係して大混乱を引き起こしています。しかし、開発者はテストの最小セットが何であるかを知っており、それは時間の経過とともに変化する可能性があります (特にアプリの Web サービス部分)。操作は、それらに敬意を表して(そして彼ら自身がこれを言うでしょう)、従うべき一連の指示を必要とするボタンプッシャーです.

手動による解決策は、テスト ケースを文書化し、運用が展開するたびにその文書に従うことです。それは苦痛に聞こえますが、異なるバージョンを異なる環境 (具体的には UAT と本番環境) にデプロイしている可能性があり、それぞれに異なる一連の指示が必要になる場合があります。

これに加えて、近い将来の計画の 1 つは、自動化された毎日のデプロイ環境を用意することです。そのため、特定のバージョンのアプリをデプロイする方法をコンピューターに指示する必要があります。アプリをスモーク テストする方法について、その手順に追加したいと思います。

現在、開発者は人間向けよりもコンピューター向けの手順を文書化する方が優れているため、明らかな解決策は nUnit の組み合わせを使用することのようです (これらは単体テストではないことはわかっていますが、目的のために構築されたテストです)。 runner) と、Watin または Selenium API のいずれかを使用して、明らかなブラウザーの手順を実行し、Web サービスを呼び出して、これらの単体テストを実行する方法を運用担当者に説明します。私はそれを行うことができます; 私はすでにほとんどそれをしました。

でも、そのプロセスをもっと簡単にできたらいいと思いませんか?

この時点で、運用担当者とコンピューターは、どのテスト セットがアプリのどのバージョンに関連しているかを把握し、nUnit ランナーにどのベース URL を指す必要があるかを伝える必要があります (たとえば、www.example.com = v3. 2 または test.example.com = v3.3)。

テスト ランナー自体にベース URL を指定し、たとえば zip ファイルをダウンロードさせて、そこにあるテスト フィクスチャを実行する前に、それを解凍し、構成ファイルを自動的に編集する方法があれば、もっといいと思いませんか?

それを行うオープンソースアプリはありますか? 必要ですか?nUnit 以外のもの、おそらく Fitnesse を使用したソリューションはありますか?

記録として、私は最初に .NET ベースのツールを検討しています。開発者のほとんどは主に .NET 開発者ですが、私たちは .NET と結婚していません。他の言語を使用してテストを作成するツールが存在する場合は、Windows で動作するテスト ランナーがある限り、喜んで対応します。

4

7 に答える 7

2

私は過去に Selenium を使用して、Web 展開用のこの種のスモーク テストを行ってきました。一連のテスト スクリプトを記述してから、異なる環境の同じサイトに対して実行できます。

于 2010-04-16T19:23:07.783 に答える
2

私は、asp.net アプリケーションのスモーク テスト ライターで働いていました。QuickTest Proを使用し、テスト実行の自動化はQuality Center (Test Director と呼ばれていました) で行いました。これには、Web アプリケーションと対話する Web ブラウザーを自動化する何百ものテスト スクリプトを作成することが含まれていました。これらのテストは、実稼働サーバーに展開する前にビルドを検証するために使用されます。Quality Center では、テスト マシンの「プール」を定義して、多数のテスト スクリプトのリストをマルチスレッドで実行できます。

より単純なスモーク テストは、アプリケーションが生成するすべてのエラー/例外をログに記録し、システムに対してスパイダーを実行することです。これは非常に「深い」コード カバレッジを取得しませんが、スモーク テストは深いコード カバレッジを意図したものではありません。このエラー ログは、エラーが発生したときに対処するために、運用アプリケーションの一部である必要があります。バグは常に見過ごされ、悲しいことに、最高のテスターはユーザーになります。

于 2010-04-16T19:15:09.877 に答える
1

また、このシーケンスにいくつかの考えを入れ、展開と検証に宣言型のアプローチを取ることを提案しました。私の考えについては、ここを参照してください。

http://jimblogdog.blogspot.co.uk/2010/10/introducingdeclarative-deployment.html

このプロセス全体を自動化するために、オープンソースプロジェクトWolfpackへのプラグインもいくつか作成しました。基本的に、「展開スモークテスト」をNuGetパッケージとしてパッケージ化し、プライベートNuGetフィードに公開します。Wolfpackは、パッケージの新しいバージョンを自動的に検出し、NUnit.Runner NuGetパッケージと一緒にダウンロードして、すべてのファイルを解凍します。次に、NUnitコンソールランナーを使用してテストをサイレントに実行し、結果を解析して、電子メール、唸り声、ヒップチャットなどで受信できるアラートにします。

http://wolfpack.codeplex.com/

http://wolfpackcontrib.codeplex.com/wikipage?title=NUnitDeploymentPublisher

于 2012-08-22T11:32:13.653 に答える
0

どの VCS を使用しているかはわかりませんが、中間サービスを介して VCS からバージョン固有の構成ファイルを取得するソリューションを作成できます。

テスト URL をパラメーターとして渡して、Web サービスまたは Web アプリから構成ファイルをダウンロードする PowerShell スクリプトまたはアプリケーションを作成できます。サーバーまたはアプリは、VCS にアクセスできるマシン上で実行されるため、ファイルの内容を返すことができます。取得すると、スクリプトまたはアプリはテストを開始できます。

于 2010-04-16T20:21:28.947 に答える
0

Telerik には、これにも役立つ可能性のある、誰でも自動化された方法で実行できる無料および非無料の UI テスト ツールがいくつかあります。

于 2010-04-16T19:44:30.870 に答える
-2

より簡単なソリューションを作成しようとして多くの時間を無駄にした後、最終的に運用チームに NUnit の Gui ランナーの使用方法を教えました。これは予想よりも簡単で、うまく機能しています。

于 2010-08-12T11:29:50.010 に答える
-2

通常、nUnit テストは十分であり、それらがすべて合格した場合、コード ベースは正常に動作しているはずです。nUnit テストに合格してコードをデプロイし、Web サイトでエラーが発生した場合は、同じ理由で同様に失敗する追加の nUnit を追加する必要があります。次に、nUnit が渡されるようにコードを修正すると、デプロイされたコードの問題が修正されたことがわかります。このため、ほとんどの自動ビルド システムは、最初にすべての nUnit テストを自動的に実行し、いずれかのテストが失敗した場合にビルドを「失敗」するように構成できます。

于 2010-04-16T19:07:00.013 に答える