2012-01-24 13 views
7

ユニットテスト、統合テスト、コンポーネントテスト、またはUI /機能テスト - 驚きはありません。古いasp.netアプリケーションがあります。C#で自動システムテストを書くには?

自動システムテストを紹介して、機能がテストされ、アプリが壊れたときにすぐに通知を受けるようにしたいと考えています。

たとえば、ユーザー登録フォームで、ユーザーはユーザー名と電子メールアドレスを入力してシス​​テムに登録できます。

ユニットテストを導入するには遅すぎる/高価です(現在の設計はユニットテスト可能ではありません)ので、現在最も重要なことは自動システムテストを作成することです。

たとえば、のC#にテストを書いて、ブラウザを開き、テキストボックスにデータを入力し、[登録]ボタンをクリックして、データがデータベースに挿入されているかどうかをチェックします。確認メールが送信されたかどうか、そして最終的にユーザーに適切なメッセージが表示されているかどうか(もちろん、これは主なシナリオであり、数多くの特別なケースがあります)。基本的に分離されたユニットをテストするのではなく、プロセス全体が動作するかどうかをテストすることです。

このようなテストを作成して自動化するには、どのツールを使用できますか?

どのようなアプローチをお勧めしますか?

私はSeleniumとFitnesseを見ましたが、データベースをテストするためにC#コードを書くことができないようです。私はSoapUI/LoadUIの同じ問題を見ました。おそらくWatiNを使用する可能性があります。どのような思考/推奨事項も非常に高く評価されています。

質問は明らかです。あなたは、Visual Studio Ultimateをお持ちの場合

多くのおかげで、

+0

http://seleniumhq.org/が事実上のツールであるかのリンクを参照することができます別のブラウザ上でスナップショットを取るために、このWebページを参照してください。これを行うには何らかの能力があります。 – Joe

+0

ビジュアルスタジオには「テスト」プログラムが含まれており、ここで説明すると思います。あなたはそれを試してみましたか? – Aristos

+0

@ジョーセレニウムを使用すると、C#コードを書くことができますか?我々はVSのプロフェッショナル版のみを持っています。 –

答えて

8

Seleniumでは、システムテストのためにC#コードを書くことができます。まず、ウェブサイトと対話する方法、データベースが正しいことを確認するもう1つの方法があります。すべてが単一のテストアプリケーション/クラス内にあります。

ウェブのやりとりの場合は、WebDriverSelenium API docから取得)を使用します。 IWebDriverのインターフェースのコード例をいくつか示します。それはGoogleとやりとりしますが、これを変更してあなたのウェブサイトとやりとりすることができます。

次に、LinqToSqlなどのC#データベースAPIを使用して、データベースエントリが正しいことを確認する別の方法を実装するだけです。

+0

ありがとうございます.Seleniumでページ上のユーザーアクティビティも録画/再生できますか? –

+1

私はWatiNを使用したことがないので、その機能についてはコメントできません。記録と再生に関しては、Selenium IDE(Firefox Add-on)を使ってWeb UIをクリックすれば、IDEはあなたの行動をSeleneseに記録します。それをC#コードに簡単にエクスポートすることができます。私はこれを自分でしたことはありませんが、彼らの[docs](http://seleniumhq.org/docs/05_selenium_rc.html#from-selenese-to-a-program)によると簡単です。 – mattypiper

+1

生成されたコードは、必ずしも必要ではないC#でNUnitを使用していることを前提としています。 IWebDriverのやりとりが必要です。それが正式で洗練された方法に依存します。 – mattypiper

2

は、おそらくコード化されたUIテストは、あなたが探しているものでしょうか? http://msdn.microsoft.com/en-us/library/dd286681.aspx

+0

残念なことにVisual Studio Professionalエディションがあります。 –

+0

コード化されたUIテストは、Visual Studio 2010 Premiumでも利用できます。 –

1
+0

私はあなたがここから良いアイデアを得ると思います。http://blog.gfader.com/2010/02/smack-down-watin-vs-selenium-vs-vs2010.html –

1

また、あなたのテストのニーズのためのソリューションとしてTelerik's Test Studioに見ることができます。 (開示:Telerikのテストスタジオエバンジェリストとして働いています)

Test Studioでは、非常にメンテナンス可能な機能テストとパフォーマンステストを簡単に作成できます。

また、C#(またはVB.NET)のステップやテストを簡単に追加して、テストフィクスチャセットアップ/ティアダウンなどの処理や、テストしたようなOracleの状況に対処することもできます。 (レコードを正しく保存するためのデータベースの確認、電子メールの検証のためのnDumbsterのようなもの)

1

Visual Studio Express IDEのC#プロジェクトにSelenium Webdriverをパッケージとして追加してからnUnitパッケージを追加することができますテストケースを書くことができます。以下は、セレンwebdriverを自動化テストケース(VSが発現する)どのようにセットアップIDEで

でキックスタートに役立つことができますいくつかのリンクがあり、NUnitのセレンは、ブラウザを起動する簡単なスクリプトを作成するには How to setup C#,nUnit and selenium client drivers on VSExpress for Automated tests

を参照してください。いくつかの手順は、私がLoで How to invoke locally different types of browser driver using selenium and c#

を参照することをお勧め異なるブラウザの数に同じウェブページをロードする方法 Creating Basic Selenium web driver test case using Nunit and C#

を参照しません多くの仮想マシンで同じWebページを作成するには、通常のwebdriverではなくremote webdriverを使用する必要があります。また、リモートWebドライバを使用すると、さまざまなタイプのブラウザを起動できます。あなたは、Visual Studio Ultimateを持っている場合、私はバージョンと信じ How to invoke/run different type of web driver browser using remote webdriver in C#

はあなたが Capturing screen shots using remote/local webdriver in C#/Selenium webdriver

関連する問題