質問

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

現在の状況:開発者はWebサイトを書き、Operations Deploy Itを展開します。展開すると、開発者の煙がそれをテストし、展開がスムーズに進んだことを確認します。

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

手動の解決策は、テストケースを文書化し、展開するたびにそのドキュメントに続く操作を文書化することです。それは痛みを伴うように聞こえますが、それらは異なる環境(特にUATと生産)に異なるバージョンを展開している可能性があり、それぞれに異なる一連の指示が必要になる場合があります。

これに加えて、私たちの近距離プランの1つは、自動化された毎日の展開環境を持つことです。そのため、特定のバージョンのアプリを展開する方法についてコンピューターに指示する必要があります。アプリを吸う方法については、その指示に追加したいと思います。

現在、開発者は人よりもコンピューターの指示を文書化するのに優れているため、明らかな解決策はヌニットの組み合わせを使用することです(これらは単体テスト自体ではないことはわかっていますが、それは目的のためのテストですランナー)およびWatinまたはSelenium APIのいずれかが明白なブラウザの手順を実行し、Webサービスに電話をかけ、オペレーションガイにそれらのユニットテストを実行する方法を説明します。私はそれを行うことができます;私はほとんどそれをやっています。

しかし、そのプロセスをさらに簡単にすることができればいいのではないでしょうか?

この時点で、オペレーション担当者とコンピューターは、どのテストのセットがどのバージョンのアプリに関連しているかを知る必要があり、ヌニットランナーにどのベースURLを指すべきかを伝えなければなりません(たとえば、www.example.com = v3。 2またはtest.example.com = v3.3)。

テストランナー自体がベースURLを提供し、zipファイルをダウンロードし、それを解凍して構成ファイルを自動的に編集してから、そこにあるテストフィクスチャを実行する方法を持っていれば、それはもっといいことではないでしょうか?

それを行うオープンソースアプリはありますか?必要なのはありますか?ヌニット以外の何かを使用したソリューション、多分フィットネスはありますか?

記録のために、私は最初に.NETベースのツールを見ています。なぜなら、開発者のほとんどは主に.NET開発者であるからです。このようなツールが他の言語を使用してテストを作成する場合、Windowsで動作するテストランナーがある限り、私たちは喜んで適応します。

役に立ちましたか?

解決 7

より簡単なソリューションを構成しようとして多くの時間を無駄にした後、私たちは最終的にOPSチームにNunitのGUIランナーの使用方法を挙げました。これは予想よりも簡単で、正常に動作しています。

他のヒント

私はASP.NETアプリケーションのためにスモークテストライターで働いていました。使用しました QuickTest Pro, 、テスト実行の自動化は行われました 品質センター (それはテストディレクターと呼ばれていました。)。これには、Webアプリケーションと対話するWebブラウザを自動化する数百のテストスクリプトを作成することが含まれていました。使用したこれらのテストは、ビルドを生産サーバーに展開する前にビルドを検証します。 Quality Centerを使用すると、テストマシンの「プール」を定義して、マルチスレッドの方法でテストスクリプトの大きなリストを実行できるようにします。

より単純な煙検査は、アプリケーションが生成してシステムに対してクモを実行するすべてのエラー/例外を記録することです。これは非常に「深い」コードカバレッジを取得することはありませんが、煙検査はディープコードカバレッジを対象としていません。このエラーロギングは、エラーが発生するときにエラーを処理するために、生産アプリケーションの一部である必要があります。バグは常に滑りますが、悲しいことに、最高のテスターはユーザーになります。

私は過去にセレンを使用して、ウェブ展開のためにこの種の煙検査を行いました。一連のテストスクリプトを作成してから、異なる環境で同じサイトに対して実行できます。

また、このシーケンスにいくつかの考えを入れて、展開と検証に宣言的なアプローチをとることを提案しました。

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

また、このプロセス全体を自動化するために、オープンソースプロジェクトWolfpackにいくつかのプラグインを作成しました。基本的に、「展開スモークテスト」をNugetパッケージとしてパッケージ化し、プライベートNugetフィードに公開します。 Wolfpackは、Nunit.Runner Nugetパッケージとともに、パッケージの新しいバージョンを自動的に検出してダウンロードし、すべてのファイルを開梱します。その後、ヌニットコンソールランナーを使用してテストを静かに実行し、結果をメール、Growl、Hipchatなどで受け取ることができるアラートに解析します。

http://wolfpack.codeplex.com/

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

Telerikには、これにも役立つ人が自動化した方法で実行できる無料の無料のUIテストツールがあります。

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

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

通常、ヌニットテストでは、すべてが通過した場合、コードベースが正常に動作するはずです。ヌニットテストに合格してコードを展開し、ウェブサイトで失敗した場合、同じ理由で同様に失敗する追加のヌニットを追加する必要があります。次に、ヌニットが通過するようにコードを修正すると、展開されたコードが持っている問題を修正したことがわかります。このため、ほとんどの自動ビルドシステムを構成して、最初にすべてのnunitテストを自動的に実行し、テストのいずれかが失敗した場合にビルドを「失敗」するように構成できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top