2

私たちのチーム (QA) は、次の問題に直面しています。

CoreアプリであるアプリケーションによってのみアクセスされるデータベースがありますWCF services。クライアント アプリケーションは を使用しCoreてデータベースにアクセスしています。

ある時点で、 と の新しいバージョンが提供されましCore applicationDatabase。部門はまたDev、私たちの大部分を変更しているSQLスクリプトを提供してくれましたdatabase Core data. は、システムのロジックを記述するためにcore data使用されるCore Applicationため、そのデータのすべての変更は、クライアント アプリケーションの機能に影響を与える可能性があります。

私の質問は次のとおりです。

  • すべてのアプリケーションをもう一度テストする必要がありますか (既に完全にテストされている場合でも)、または SQL スクリプトをテストするより効率的な方法はありますか?
  • データの整合性/移行テストのためのテスト手法/ツールはありますか?

移行スクリプトを実行した後、データベースの有効性/整合性を簡単にテストしたいと考えています。これにより、アプリケーションを介してテストすることで時間を失うことを防ぐことができます. 有効性/整合性テストが成功した場合は、アプリをテストできます。

4

4 に答える 4

2

T-SQLで利用できる単体テストフレームワークがあります。TSQLUnitプロジェクトは、そのようなフレームワークの1つです。アプリケーションの場合と同じように、これを使用して自動テストを設定できます。

于 2012-05-17T14:45:17.063 に答える
2

@Tim Lentine が既に投稿したように、完全なアプリケーションをテストすることをお勧めします。あなたがコメントしたように、あなたのチームが受け取った新しい sql スクリプトは、あなたの説明によると、構造とデータ自体の両方で、データベース開発の中核に重要な変更を加えました。したがって、すべてが 1 つの部分にあることを確認するために、完全なアプリケーション テストを行うことをお勧めします。ツールまたは手法については、「SQL Test」と呼ばれる SSMS の新しい RedGate (いいえ、私はそれらのために働いていません) アドオンをお勧めします。その目的のために、単体テストのオープン ソース tSQLtを使用します。誰かが最初に tSQLt の操作方法を学ぶ必要があるという欠点だけがありますが、非常に簡単です。

于 2012-05-21T07:23:43.213 に答える
1

あなたが与えた説明から:

コア アプリケーションによってのみアクセスされるデータベースがあります...新しいバージョンのコア アプリケーションとデータベースが提供されました...

データベースを単独でテストするのはあなたのチームの責任ではありませんが、クライアントの観点からコアサービステストして、データベースが正しいと仮定することはできます。

コア アプリケーションデータベースをブラック ボックスとして扱い、単体テストを使用してテストします。これらのテストでは、コア アプリケーションを使用するすべてのアプリケーションが情報が実際にデータベースに格納されていることを知りませんし、気にする必要もないため、データベースをいじる必要はありません。開発チームは、データをクラウドに保存することを 6 か月以内に決定できます。その場合、すべてのデータベース テストが失敗します。

データが正しく保存されていることを確認するためにデータベースを調べる必要がある場合は、コア サービスのインターフェイスに問題があります。app は読み返すことができないデータを保存しますが、アプリのより詳細な説明がなければ、一般化するのは簡単です)。

現実の世界に戻ると、あなたは QA チームの一員であり、データベース開発者が何らかのテストを行っていない限り (そうではありませんか?)、おそらくデータベースの変更を検証する必要があります。

最後に、私が DBA Stack Exchage サイトに投稿した2 つの異なるスキーマ間でのデータ比較の実行に関する質問を読むことに興味があるかもしれません。ネタバレ: 簡単な答えはありません。

于 2012-05-24T20:27:03.420 に答える
1

以下のリンクを表示:

http://www.simple-talk.com/sql/t-sql-programming/sql-server-unit-testing-with-tsqlt/

http://www.red-gate.com/products/sql-development/sql-test/

于 2012-05-21T09:11:32.827 に答える