データはすべてのソフトウェアアプリケーションの中心であり、データベースも同様です。 そのデータを格納します。ただし、データのサイズが大きくなると、データベースの複雑さも増し、データの処理が困難になります。したがって、データの検証が非常に必要になります。これは、データベーステストが便利であり、アプリケーションがデータベースに取得または保存しているデータの品質、セキュリティ、および正確性をチェックするのに役立ちます。この記事の媒体を通して、私はあなたにそれへの完全な洞察を与えます。
このチュートリアルで取り上げるトピックは次のとおりです:
- データベーステストとは何ですか?
- データベーステストが必要な理由
- データベーステストの種類
- 構造テスト
- 機能テスト
- 非機能テスト
- データベーステスト段階
- データベーステストツール
では、始めましょう。
データベーステストとは何ですか?
データベーステストとは何かについて説明する前に、まずデータベースについて簡単に説明します。データベースは、データストレージを提供し、データ操作を支援する体系的なデータのコレクションに他なりません。データベースは、データを格納するためのテーブル、データ表現の表示、関数、データ操作のトリガーなどのデータを管理するためのオブジェクトを使用するため、これらのデータベースを使用するとデータ管理が非常に簡単になります。
現在、データベーステストとは、データを制御するオブジェクトとその周囲のさまざまな機能を検証することにより、データベースに格納されているデータを検証するプロセスを指します。一般に、データの有効性のチェック、データの整合性のテスト、パフォーマンスチェックの関連、データベース内のさまざまな手順、トリガー、および機能のテストなどのアクティビティは、データベースのテスト中にカバーされます。
ただし、データベーステストを実行するには、SQLに関する十分な知識があることが非常に重要です。必要な専門知識がなくても心配しないでください。SQLの基本に関するこの記事を参照してください。 始めるために。
データベーステストを行う理由
ご存知のように、データベースはデータのダンプであり、データは膨大な量で収集され、構造化された形式で保存されます。 DBMS (データベース管理システム)は、このデータを管理、取得、保存するための体系的な方法を提供します。データが冗長になったり、重複したりする場合があります。そのような場合、データベースのテストが画像の検証に役立ちます。以下に、データベースの検証が必要なさまざまな側面を示します。
- データマッピング
データマッピングは、アプリケーションとバックエンドデータベースの間を行き来するデータの検証に焦点を当てたデータベーステストの不可欠な側面です。 - ACIDプロパティの検証
ACID Aの略です トミシティ、 C 一貫性、私 ソレーション、および D 耐久性。これは、各データベーストランザクションに対して確認する必要があるもう1つの重要な側面です。- アトミシティ :これは、すべてのデータベーストランザクションがアトミックであることを意味します。つまり、トランザクションは成功または失敗のいずれかになります。 オールオアナッシングとも呼ばれます 。
- 一貫性 :これは、トランザクションが完了した後もデータベースの状態が有効なままであることを意味します。
- 分離 :これは、相互に影響を与えたり、データベースの状態を変更したりすることなく、複数のトランザクションを一度に実行できることを意味します。
- 耐久性 :これは、トランザクションがコミットされると、外部要因の影響に関係なく、変更を確実に保持することを意味します。
- データの整合性
データベースのデータ整合性のテストとは、データベースへのアクセス、管理、更新に使用されるあらゆる種類のプロセス、操作、メソッドを評価するプロセスのことで、 CRUD とも呼ばれます。 オペレーション。これは、データベースに保存されているデータの正確性と一貫性をテストすることにのみ焦点を当てており、期待される結果または望ましい結果を得ることができます。
- ビジネスルールの適合性
データベースの複雑さが増すにつれて、リレーショナル制約、トリガー、ストアドプロシージャなどのさまざまなコンポーネントも複雑になり始めます。これを回避するために、テスターは複雑なオブジェクトを検証するのに十分適切なSQLクエリをいくつか提供します。
データベーステストの種類
以下にリストしたデータベーステストには3つのタイプがあります:
- 構造テスト
- 機能テスト
- 非機能テスト
では、これらの各タイプとそのサブタイプを1つずつ見ていきましょう。
構造テスト
構造データベースのテストは、データリポジトリ内に存在し、主にデータストレージに使用されるすべての要素を検証するプロセスです。これらの要素は、エンドユーザーが直接操作することはできません。データベースサーバーの検証は最も重要な考慮事項の1つであり、このフェーズを正常に完了することができたテスターは、SQLクエリの習得に成功します。
さまざまな種類の構造テストは次のとおりです。
-
スキーマテスト
このタイプのテストはマッピングテストとも呼ばれ、フロントエンドとバックエンドのスキーママッピングが同期していることを確認するために実行されます。このテストの重要なチェックポイントのいくつかは次のとおりです。
-
- データベースに関連付けられているさまざまなタイプのスキーマ形式を検証します。
- マップされていないテーブル/ビュー/列には確認が必要です。
- アプリケーションマッピング全体と環境内の異種データベースの整合性を確保するには、検証も必要です。
- データベーススキーマ検証用のさまざまなツールを提供します。
-
データベーステーブルと列のテスト
このテストの重要なチェックポイントのいくつかは次のとおりです。
-
- バックエンドとフロントエンドでのデータベースフィールドと列マッピングの互換性。
- 要件に応じて、データベースのフィールドと列の長さと命名規則を検証します。
- 未使用/マップされていないデータベーステーブル/列の検出と検証。
- バックエンドデータベース列のデータ型とフィールド長とアプリケーションのフロントエンドとの互換性を検証します。
- ビジネス要件仕様書で指定されているデータベースフィールドを使用して、ユーザーが必要な入力を提供できることを検証します。
-
キーとインデックスのテスト
このテストの重要なチェックポイントのいくつかは次のとおりです。
-
- 必要な主キーと外部キーの制約が必要なテーブルにすでに存在することを確認してください。
- 外部キーの参照を検証します。
- 2つのテーブルで、主キーと対応する外部キーのデータ型が同じであることを確認してください。
- 命名規則に基づいて、すべてのキーとインデックスの名前を検証します。
- 必須フィールドとインデックスのサイズと長さを確認してください。
- ビジネス要件に従って、必要なテーブルにクラスター化インデックスと非クラスター化インデックスが作成されていることを確認します。
-
ストアドプロシージャのテスト
このテストの重要なチェックポイントのいくつかは次のとおりです。
-
- テスト中のアプリケーションのすべてのモジュールで、開発チームがすべてのストアドプロシージャに必要なコーディング標準規則、例外およびエラー処理を採用していることを検証します。
- テスト中のアプリケーションに必要な入力データを適用して、開発チームがすべての条件/ループをカバーしていることを確認します。
- 指定されたデータベーステーブルからデータがフェッチされるたびに、開発チームがTRIM操作を適切に適用したかどうかを確認します。
- ストアドプロシージャを手動で実行して、必要な出力が生成されるようにします。
- ストアドプロシージャを手動で実行して、テスト対象のアプリケーションで指定されたとおりにテーブルフィールドが更新されていることを確認します。
- ストアドプロシージャを実行して、必要なトリガーが暗黙的に呼び出されるようにします。
- 未使用のストアドプロシージャを検出して検証します。
- データベースレベルでのNull条件の検証。
- すべてのストアドプロシージャと関数が実行され、テスト中の空のデータベースでテストされていることを確認してください。
- テスト対象のアプリケーションの要件で指定されているように、ストアドプロシージャモジュールの全体的な統合を検証します。
-
トリガーテスト
このテストの重要なチェックポイントのいくつかは次のとおりです。
-
- トリガーのコーディングフェーズで、必要なコーディング規則に従っていることを検証します。
- 実行されたトリガーがそれぞれのDMLトランザクションに必要な条件を満たすことを確認します。
- トリガーが実行されたら、データが正しく更新されているかどうかを確認します。
- 更新、挿入、削除などの機能を検証して、テスト対象のアプリケーションの機能をトリガーします。
-
データベースサーバーの検証
このテストの重要なチェックポイントのいくつかは次のとおりです。
-
- ビジネス要件で指定されているデータベースサーバー構成を検証します。
- 必要なユーザーが、テスト対象のアプリケーションに必要なレベルのアクションのみを実行するようにします。
- データベースサーバーが、ビジネス要件仕様で許可されている最大数のユーザートランザクションのニーズに対応できることを確認します。
機能テスト
機能データベースのテストは、エンドユーザーによって実行されるトランザクションと操作がビジネス仕様を満たしていることを確認するプロセスです。
さまざまなタイプの機能テストは次のとおりです。
- ブラックボックステスト
ブラックボックステストとは、データベースの統合を検証することによってさまざまな機能をチェックするプロセスを指します。この場合、テストケースは通常単純であり、関数からの着信データと発信データを検証するために使用されます。データベースの機能をテストするために、原因と結果のグラフ化手法、境界値分析、等価分割などのさまざまな手法が使用されます。これは通常、開発の初期段階で実行され、他の機能テストと比較するとコストが低くなります。ただし、一部のエラーを検出できない、プログラムのテスト量に関する仕様がないなど、いくつかの欠点があります。
- ホワイトボックステスト
ホワイトボックステストはデータベースの内部構造に関係しており、ユーザーは仕様の詳細に気づいていません。このテストには、データベーストリガーとデータベースリファクタリングをサポートする論理ビューテストが必要です。さらに、データベース関数、トリガー、ビュー、SQLクエリなどもこれでテストされます。ホワイトボックステストは、データベーステーブル、データモデル、データベーススキーマなどを検証するために使用されます。これは、参照整合性のルールに準拠し、デフォルトのテーブル値を選択してデータベースの整合性を検証します。ホワイトボックステストの実行には、条件カバレッジ、決定カバレッジ、ステートメントカバレッジなどの手法がよく使用されます。ブラックボックステストとは異なり、コーディングエラーを簡単に検出して、データベースに存在する内部バグを排除できます。このタイプのテストの唯一の欠点は、SQLステートメントをカバーしていないことです。
非機能テスト
非機能テストは、負荷テスト、ストレステスト、ビジネス仕様を満たすために必要な最小システム要件のチェック、リスクの検出、データベースのパフォーマンスの最適化を実行するプロセスです。
非機能テストの主なタイプは次のとおりです。
- 負荷テスト
負荷テストを実行する主な機能は、データベースで実行されているほとんどのトランザクションのパフォーマンスへの影響を検証することです。このテストでは、テスターは次の条件を確認する必要があります-
-
- リモートにいる複数のユーザーのトランザクションを実行するために必要な応答時間はどれくらいですか?
- データベースが特定のレコードをフェッチするのにかかる時間はどれくらいですか?
- ストレステスト
ストレステストは、システムのブレークポイントを特定するために実行されるテストプロセスです。したがって、このテストでは、システムに障害が発生するまでアプリケーションがロードされます。このポイントは、ブレークポイントと呼ばれます。 データベースシステムの。一般的に使用されるストレステストツールはLoadRunnerです およびWinRunner 。
データベースのテストに含まれるさまざまな段階を見てみましょう。
データベースのテスト段階
DBテストは面倒なプロセスではなく、テストプロセスに従ってデータベーステストライフサイクルのさまざまな段階が含まれます。
データベーステストの主要な段階は次のとおりです。
- テストの前提条件を設定する
- テストを実行する
- テストステータスの確認
- 結果を検証する
- レポートの統合と公開
データベーステストとは何か、およびその実行方法を理解したところで、データベーステストに主に使用されるさまざまなツールに光を当てましょう。
データベーステストツール
市場には、テストデータを生成し、それを管理し、最終的に負荷テストや回帰テストなどのデータベーステストを実行するために使用されるツールが多数あります。最も好ましいツールのいくつか:
カテゴリ | ツール |
データセキュリティツール |
|
負荷テストツール |
|
テストデータジェネレータツール |
|
テストデータ管理ツール |
|
ユニットテストツール |
|
これで、データベースのテストがすべてでした。以上で、この記事を締めくくりたいと思います。この記事があなたの知識に付加価値を与えるのに役立つことを願っています。 SQLまたはデータベースの詳細については、こちらの包括的な資料リストを参照してください:データベースEdureka 。
MySQLの構造化されたトレーニングを受講したい場合は、MySQLDBA認定トレーニングを確認してください。 インストラクター主導のライブトレーニングと実際のプロジェクトの経験が付属しています。このトレーニングは、MySQLを深く理解し、主題をマスターするのに役立ちます。
質問がありますか? ”データベーステストのコメントセクションでそれについて言及してください 」と返信します。