EDIT:NCIEのコメンターのおかげで、私はユニットと自動テストの間の差を取得するので、私は、トピック大規模なアプリケーションの自動テストを開始するにはどうすればよいですか?
Environement名前を変更:私はこの記事を読んで2.0 .NET、SQL Server 2005のは、Windows Server 2003
を:
http://www.codeproject.com/KB/tips/convince.aspx
この男は、あなたがすべてをchangngことなく、既存のアプリに自動化されたテストを追加する方法について話しています。
そして、私はこの記事が本当に素晴らしいと言わなければならないと私はそれを試してみてください!
私たちのシステムはほぼ同じです:すべてのデータはWebサービスからアクセスできるため、簡単に(たとえばsoapuiで)これらのWebサービスに対していくつかの自動テストを行うことができます。
しかし、データベースについてはどうですか?自動化されたテストを行うには、自動化されたテストに対応する正しいデータをデータベースに保存する必要があります。
たとえば、クライアントの名前が空の場合にソフトウェアがエラーを発生するかどうかを確認する自動テストを実行する場合は、データベースに空の名前のクライアントを追加する必要があります。ここ
は、私はそれを行うことができますどのように考えるかです:
- それは、このサーバーの日付はそれほど変化したことがないので(IIS、SQL Serverの...)
- が何かを追加する必要があるすべてのものを使用してサーバーを作成します、データベースが10自動テスト後には大きな混乱になります:私は私のデータベースに私は私の自動テスト
PROBLEMを行う必要があるレコードを追加私の自動テスト
このような技術を試したことはありますか?特定のツールを使用しましたか?私の考え方は良いものでしょうか? (または少なくとも良いもの)。
おかげ
EDIT:私はので、私は二度同じ過ちをしない理由を知りたいのですが、このスレッドのために2 -1を得ました。
ユニットテスト(実際のデータベースの代わりにMocksとFakesを使用する)と、環境や実際のデータベースに特定のレコードが重く依存しているため、頻繁に壊れるシステムレベルのテストを減らしたいとします。これは、開発の前にテストを最初に書いていないので、あなたのためにもっと挑戦になるでしょう。 Michael Feathersの本「Working Effectively With Legacy Code」の本は、あなたのシナリオに役立ちます。 –
@remi - 「ユニットテスト」を「自動テスト」に変更することを検討することもできます。ユニットテストは、データベース、ファイルシステム、ネットワークなどの外部リソースから分離されています。 –
@Jeff:ここでは、自分のデータベースではなく、自分のビジネス層(= Webサービス)のみをテストしたいのですが、データベースにテストデータを追加して機能させる必要があります。 @Chris O:オマールが記事で述べたように、ここでは単体テストだけを書くという目標があります。私たちのコードは嘲笑の準備ができていません(そして開発者も)ので、データベースを使用する必要があります。 –