Dwh-testing
提供:Dev Guides
データウェアハウジング-テスト
テストは、データウェアハウスシステムが正しく効率的に機能するために非常に重要です。 データウェアハウスで実行されるテストには3つの基本レベルがあります-
- 単体テスト
- 統合テスト
- システムテスト
単体テスト
- 単体テストでは、各コンポーネントが個別にテストされます。
- 各モジュール、つまりプロシージャ、プログラム、SQLスクリプト、Unixシェルがテストされます。
- このテストは開発者によって実行されます。
統合テスト
- 統合テストでは、アプリケーションのさまざまなモジュールがまとめられ、入力数に対してテストされます。
- さまざまなコンポーネントが統合後にうまく機能するかどうかをテストするために実行されます。
システムテスト
- システムテストでは、データウェアハウスアプリケーション全体が一緒にテストされます。
- システムテストの目的は、システム全体が正常に機能するかどうかを確認することです。
- システムテストは、テストチームによって実行されます。
- データウェアハウス全体のサイズは非常に大きいため、通常、テスト計画を実施する前に最小限のシステムテストを実行することができます。
テストスケジュール
まず、テスト計画を作成する過程でテストスケジュールが作成されます。 このスケジュールでは、データウェアハウスシステム全体のテストに必要な推定時間を予測します。
テストスケジュールを作成するために利用できるさまざまな方法論がありますが、データウェアハウスは非常に複雑で大規模であるため、いずれも完璧ではありません。 また、データウェアハウスシステムは本質的に進化しています。 テストスケジュールの作成中に次の問題に直面する可能性があります-
- 単純な問題には、完了するまでに1日以上かかる大きなサイズのクエリが含まれる場合があります。つまり、クエリは希望する時間スケールで完了しません。
- ディスクの紛失などのハードウェア障害や、誤ってテーブルを削除したり、大きなテーブルを上書きしたりする人為的なエラーが発生する場合があります。
注意-上記の問題のため、通常はテストに許可する時間を常に2倍にすることをお勧めします。
バックアップリカバリのテスト
バックアップ回復戦略のテストは非常に重要です。 このテストが必要なシナリオのリストはここにあります-
- メディア障害
- 表スペースまたはデータファイルの損失または損傷
- REDOログファイルの損失または損傷
- 制御ファイルの紛失または損傷
- インスタンス障害
- アーカイブファイルの紛失または破損
- テーブルの紛失または損傷
- データ障害中の障害
運用環境のテスト
テストする必要のある多くの側面があります。 これらの側面を以下にリストします。
- セキュリティ-セキュリティテストには個別のセキュリティドキュメントが必要です。 このドキュメントには、許可されていない操作とそれぞれのテストの考案のリストが含まれています。
- Scheduler -データウェアハウスの日常業務を制御するには、スケジューリングソフトウェアが必要です。 システムのテスト中にテストする必要があります。 スケジューリングソフトウェアには、データウェアハウスとのインターフェイスが必要です。データウェアハウスには、夜間の処理と集計の管理を制御するスケジューラが必要です。
- ディスク構成-I/Oボトルネックを識別するために、ディスク構成もテストする必要があります。 テストは、異なる設定で複数回実行する必要があります。
- 管理ツール-システムのテスト中にすべての管理ツールをテストする必要があります。 テストする必要があるツールのリストを次に示します。
- イベントマネージャ
- システム管理者
- データベースマネージャー
- 構成マネージャー
- バックアップリカバリマネージャー
データベースのテスト
データベースは、次の3つの方法でテストされます-
- データベースマネージャーと監視ツールのテスト-データベースマネージャーと監視ツールをテストするには、テストデータベースの作成、実行、管理に使用する必要があります。
- データベース機能のテスト-ここにテストする必要がある機能のリストがあります-
- 並列クエリ
- 並行してインデックスを作成する
- 並行してデータをロード
- データベースパフォーマンスのテスト-クエリの実行は、データウェアハウスのパフォーマンス測定において非常に重要な役割を果たします。 定期的に実行する必要がある固定クエリのセットがあり、テストする必要があります。 アドホッククエリをテストするには、ユーザー要件ドキュメントを確認し、ビジネスを完全に理解する必要があります。 さまざまなインデックスおよび集計戦略に対して、ビジネスで要求される可能性が高い最も厄介なクエリをテストするために時間をかけてください。
アプリケーションのテスト
- すべてのマネージャーを正しく統合し、エンドツーエンドのロード、インデックス、集計、クエリが期待どおりに機能するように機能する必要があります。
- 各マネージャーの各機能は正しく動作するはずです
- また、一定期間にわたってアプリケーションをテストする必要があります。
- 週末と月末のタスクもテストする必要があります。
テストのロジスティック
システムテストの目的は、次のすべての領域をテストすることです-
- スケジューリングソフトウェア
- 日々の運用手順
- バックアップ復旧戦略
- 管理およびスケジューリングツール
- 一晩処理
- クエリのパフォーマンス
注-最も重要な点は、スケーラビリティをテストすることです。 そうしないと、システムの成長時に機能しないシステム設計が残ります。