database crud testing through ui with sample test cases
CRUD操作とは何ですか?UIを介してCRUDテストを実行する方法:
人間は数十年前から情報を保存し始めました!そして当時、フラットファイルデータベースは、すべてのデータがファイルに保存されていたコンピューティング履歴で使用されていました。
その後、1970年代初頭、IBMは最初のリレーショナルデータベースモデルを開発しました。これは、データを簡単にフェッチするための「インデックス」を導入したものです。
学習内容:
CRUD操作の概要
現在、最も一般的なデータストレージシステムは データベース ソフトウェアがクエリを介してデータを作成、読み取り、更新、および削除する場所。コンピュータソフトウェアは、適切に設計されたデータベースとクエリを通じて、より迅速かつ効果的な方法でユーザーの要件に対応できます。
これは、データベースのテストと検証が非常に重要な要素であることを意味します。
エラーメッセージ、成功メッセージなどのグラフィカルユーザーインターフェイス(GUI)応答は、ほとんどすべてのテストマネージャーによって非常に重要であると見なされています。これは、GUIがアプリケーションの目に見える部分であり、ユーザーが見ることができるためです。ただし、データベーステストも同様に重要です。
私の経験から、これを退屈な仕事と見なす多くの手動テスターを見てきましたが、実際にはそうではありません。
このチュートリアルでは、簡単な例を使用して、ユーザーインターフェイスとMySQLクエリを使用したブラックボックスデータベースの機能テストについて簡単に説明します。
データベーステストが重要なのはなぜですか?
以下のポイントは、データベーステストの重要性を非常に簡単に説明します。
- データは重要な資産であり、保存して保護する必要があります。
- データベースは、新しいテクノロジーやプラットフォームで複雑になっています。したがって、バグの可能性が高くなります。
- データベースに格納されている値に関連する重要な機能が存在する可能性があります。
- データベースまたはクエリの問題は、主要な機能の問題につながる可能性があります。
- データが適切にマッピングされているかどうかを確認するため。
データベーステストは単体テストとして実行できますが、 ブラックボックステスト 、 ホワイトボックステスト 灰色のボックステキスト。
4つの基本的なデータベース機能
データベースベースのソフトウェアには、一般に4つの主要な機能があり、以下の例から明らかです。
例1:
Facebook、最も有名なソーシャルネットワーキングウェブサイト。
- 新しいアカウントを作成できます
- アカウントの詳細を表示する
- アカウントの詳細を編集する
- アカウントを削除します
- コメントを作成できます
- それらを見る
- それらを編集する
- それらを削除します
例2:
LinkedIn、有名な求人検索ウェブサイト:
例を含む要件トレーサビリティマトリックステンプレート
- あなたはあなたのプロフィールを作成することができます
- 見る
- 編集する
- 消して
- 投稿を追加できます
- それらを見る
- それらを編集する
- それらを削除します
ここで一連の一般的な活動に気づきましたか?
はい!あなたが正しいです。
ほとんどのソフトウェアは、用語の作成、表示、編集、削除のこれらの機能をサポートしています。 クルーエル 来る。
CRUDの定義
コンピュータプログラミングでは、 クルーエル Create、Read、Update、Deleteの略です。これらは、永続ストレージの4つの主要で基本的な機能です。これらは多くの場合、フォームを介してソフトウェアアプリケーションで実行されます。
- 作成する –データベースにエントリを挿入します。
- 読んだ または取得–データベースからエントリを選択して表示します。
- 更新 –エントリを完全にまたは部分的に更新します。
- 削除 または破棄–エントリを削除/削除します。
ソフトウェア要件に基づいて、CRUDサイクルは異なる場合があります。
例えば: 営業担当者がアカウントを作成し、ユーザーがそれを表示する場合があります。ユーザーには、編集または削除する権限がない可能性があります。一方、要件は次のようになります。ユーザーが自分のアカウントを作成し、営業担当者がそれを確認して承認します。これらのサイクルは、テスターの観点から非常に重要です。
上記の機能については、対応するクエリがデータベースで実行されています。
以下に、各アクションのMYSQLクエリの例を示します。
アクション | サンプルクエリ |
---|---|
CREATE | INSERT INTO table_name(column1、column2、column3、...) VALUES(value1、value2、value3、...); |
読んだ | SELECT *テーブルから; |
更新 | table_nameを更新します SET column1 = value11、column2 = value22 WHERE条件; |
削除 | DELETE FROM TABLE table_name where column1 = ‘value11’; |
CRUDの3つのバリエーションは次のとおりです。 パン (参照、読み取り、編集、追加、削除)、 デイブ (削除、追加、表示、編集)および くだらない (作成、複製、追加、処理)。
CRUDテスト
CRUDテストは、データベース機能のブラックボックステストです。
ご存知のように、ブラックボックステストはテストソフトウェアシステムを「ブラックボックス」と見なし、テストはUIを介して実行されます。
アカウント登録、個人情報の編集、詳細の表示、アカウントの削除などのすべてのフロントエンドアクションには、データベースに対応するCRUDアクションがあることを理解しました。 CRUDテストは、これらのアクションがデータベースに適切に反映されているかどうかを確認するために実行されます。
CRUDテストは、ユーザー登録後に「アカウントが正常に作成されました」などの成功メッセージをチェックする一般的なブラックボックスフロントエンドテストとは異なります。ここでは、アカウントの詳細が実際にデータベースに入力されているかどうかを確認する必要があります。
手動テスターがこれを行うには、2つの方法があります。
#1)自分でクエリを実行する- SQL言語とソフトウェア要件をよく理解しているテスターは、独自のクエリを実行してデータベースをテストできます。このようにして、考えられるすべてのケースを適切なクエリで検証できます。
#2)開発者の助けを借りてクエリを実行する- テスターは、アプリケーションのユーザーインターフェイスの確認から始めて、開発者からクエリを取得できます。
CRUD操作のテストケースを作成する際には、次の質問を考慮する必要があります。
- テストアプリケーションでは、どのような種類のCRUDアクションが有効で何が無効ですか?
- CRUDアクションは互いにどのような関係がある/すべきですか?
- CRUDアクションはいつ実行されますか?
- CRUD機能にアクセスしているのは誰ですか?システムはユーザーごとに異なる特権を設定しますか?
の一般的なテストプロセス DBテスト 通常の手動ブラックボックスGUIテストと大差ありません。
お気に入り、
ステップ1: テスト環境を準備します。
ステップ2: テストステップを実行します。
ステップ3: テスト結果を確認してください。
ステップ4: 期待される結果に従って実際の結果を検証します。
ステップ5: バグやその他の調査結果を報告します。
配列javaへの要素の追加
テスト結果を確認するために、GUI応答とクエリ結果が使用されます。 CRUDブラックボックステストの場合、必要なのはSELECTというクエリだけです。
ご存知のとおり、データベースにはデータが保存されています。データを取得する必要がある場合は、SELECTクエリが使用されます。ブラックボックステストでは、このクエリを使用して、UIを介したアクションがデータベースに適切に反映されているかどうかを確認する必要があります。
「SELECT」は次の方法で使用できます。
#1) テスターがすべてのデータをチェックおよび検証する場合は、SELECTクエリで開始記号(*)を使用できます。これは、SELECTクエリの最も単純な形式です。
SELECT * FROM table_name;
上記のステートメントは、table_nameテーブルのすべての行からすべてのフィールドを選択します。
#2)場合によっては、最初のクエリ結果が乱雑になることがあります。テスターが一部のフィールドのみに関心がある場合は、次のスクリプトを使用できます。
SELECT ‘field_1’, ‘field_2’, ‘field_3’ FROM table_name;
上記のステートメントは、table_nameテーブルのすべての行からフィールド「field_1」、「field_2」、および「field_3」を選択します。
#3) テスターが任意の基準に基づいて結果を確認したい場合は、WHERE句を使用できます。
SELECT ‘field_1’ FROM table_name WHERE field_2 = ‘success’;
上記のステートメントは、table_nameテーブルのすべての行からフィールド「field_1」を選択します。「field2」は「success」です。
ソフトウェアのCRUD機能をテストする方法は?
次のことを考慮してください 例 MySQLデータベースを使用してデータを保存するための特定のユーザー権限を許可するユーザーインターフェイスの。
例 | データベースの詳細 |
---|---|
1.「商品追加」フォームを使用して、商品名、商品説明、商品価格など、すべての詳細を含む商品を作成できます | データベース:Shopping_DB 表:製品 フィールド:product_name、product_details、product_price テーブル「product」に行を作成し、対応するフィールドに詳細を追加します |
2.「製品詳細ページ」で製品名、製品説明、製品価格の詳細を読むことができます。 | データベース:Shopping_DB 表:製品 フィールド:product_name、product_details、product_price すべてのデータを選択するか、「製品」テーブルから特定のデータを選択します |
3.「製品編集」フォームを使用して、製品名、製品の説明、製品の価格を更新できます。 | データベース:Shopping_DB 表:製品 フィールド:product_name、product_details、product_price 表「製品」の特定の行のすべての詳細または特定の詳細を更新します |
4.製品を削除できます | データベース:Shopping_DB 表:製品 フィールド:product_name、product_details、product_price テーブルを削除して「製品」テーブルのすべての詳細を削除するか、テーブルから特定の行を削除します。 |
この場合、CRUD機能を確認する方法を確認しましょう。
注意 :このテストはデータベースに変更を加える可能性があるため、常にデータベースダンプでCRUDテストを実行してください。以下のコマンドを使用して、データベース全体のダンプを取得できます。
$ mysqldump -u (uname) -p (pass) Shopping_DB> Shopping_DB_backup.sql
#1)CREATE機能
新しい製品アイテムを追加するには、次の手順に従います。
- 「商品追加」フォームを読み込みます。
- 製品名を入力し、「テスト名」と言います。
- 製品の説明を入力し、「これはテスト製品の詳細です」と言います。
- 商品の価格を「100」と入力します。
- フォームを送信します。
結果の確認:
- テスターは、製品がソフトウェアアプリケーションのフロントエンドにすべての詳細とともに表示されているかどうかを手動で確認します。
- テスターはMYSQLデータベースサーバーでクエリを実行して、特定の行が存在するかどうかを確認します
クエリ:
Windows10用の無料のビデオコンバーター
SELECT * FROM products WHERE product_name = ‘test name’;
MySQLからのクエリ結果:
対応する詳細を含む行は、次のように表示されます。
mysql> SELECT * FROM products WHERE product_name = ‘test name’; + ------------- + ----------------------------- + ----- ------------ + | product_name | product_details | product_price | + ------------- + ----------------------------- + ----- ------------ + |テスト名|これはテスト製品の詳細です| 100 | |
考慮すべきその他のケース:
- 一部のシステムでは、ユーザーごとに特権が異なります。その場合、テスターは各ユーザーロールの応答を確認する必要があります。
- 重複する製品が許可されていない場合、テスターは同じ詳細の製品をもう一度追加することでそれを確認できます。今回は、データベースに同じ製品に対応する2番目のエントリを含めないでください。
- ソフトウェアで一度に複数の製品を作成できる場合、テスターは、提出されたすべての製品のすべての詳細がデータベースに正しく入力されているかどうかを確認できます。
- さまざまな入力の組み合わせを試してください。
- サーバーのダウンタイム中に何が起こるかを確認します。
#2)READ機能
作成されたエントリが読み取り可能かどうかを確認するには、次の手順に従います。
- CREATE機能を使用して、入力の組み合わせが異なるいくつかの製品を作成します(テスト名1、テスト名2、テスト名3など)。
- 製品を検索してみてください。
結果の確認:
- テスターは、製品の詳細が正しいかどうかを手動で確認します。
- テスターは、詳細をデータベースに保存されているものと比較します。
クエリ:
SELECT * FROM products WHERE product_name = ‘test name 1’OR product_name =‘ test name 12 ’OR product_name =‘ test name 3 ’; |
MySQLからのクエリ結果:
選択した製品の詳細を表示する必要があります。テスターはこれを検証し、UIの結果と比較できます。
mysql> SELECT * FROM products WHERE product_name = ‘test name 1’OR product_name =‘ test name 12 ’OR product_name =‘ test name 3 ’; + ------------- + ----------------------------- + ----- ------------ + | product_name | product_details | product_price | + ------------- + ----------------------------- + ----- ------------ + |テスト名1 |これはテスト製品の詳細です1 | 100 | |テスト名2 |これはテスト製品の詳細です2 | 100 | |テスト名3 |これはテスト製品の詳細です3 | 100 | |
考慮すべきその他のケース:
- アイテムを一度に1つずつ表示します。
- 一度に複数のアイテムを表示します。
- 存在しないアイテムを表示しようとしています。
- さまざまな条件で検索してみてください。
- さまざまなユーザーロールの機能を確認してみてください。
- サーバーのダウンタイム中に何が起こるかを確認します。
#3)UPDATE機能
既存のエントリを編集または更新するには、次の手順に従います。
- CREATE機能を使用して製品を作成します。
- 製品のさまざまなフィールドを編集します。たとえば、「テスト名」を「Vネックトップ」と言います。
- 参加する
結果の確認:
- テスターは、製品の詳細が変更されたことを手動で確認します
- テスターはMYSQLクエリを実行し、詳細を確認します
クエリ:
SELECT * FROM products WHERE product_name = ‘V Neck Top’;
MySQLからのクエリ結果:
対応する詳細を含む行が表示されます。
mysql> SELECT * FROM products WHERE product_name = ‘V Neck Top’; + ------------- + ----------------------------- + ----- ------------ + | product_name | product_details | product_price | + ------------- + ----------------------------- + ----- ------------ + | Vネックトップ|これはテスト製品の詳細です| 100 | + ------------- + ----------------------------- + ----- ------------ + |
古い製品名で検索した場合、データベースは詳細を返さないはずです。
考慮すべきその他のケース:
- 一度に複数のアイテムを更新します。
- すでに存在するキー値に更新します。
- すべての詳細または部分的な詳細を更新します。
- さまざまな入力の組み合わせでフィールドを更新します。
- 更新された機能でさまざまな特権を確認してください。
- サーバーのダウンタイム中に何が起こるかを確認します。
#4)削除機能
削除機能を確認するには、次の手順に従います。
- CREATE機能を備えた製品を作成します。
- 製品を削除します。
結果の確認:
- テスターは、製品がUIから削除されているかどうかを手動でチェックします
- テスターはMySQLデータベースを手動でチェックし、対応する行が削除されたことを確認します。
クエリ :
SELECT * FROM products WHERE product_name = ‘test name’;
MySQLからのクエリ結果:
これにより、次のようなクエリ結果が表示されます。
mysql>SELECT * FROM products WHERE product_name = ‘test name’; Empty set (0.00 sec)
考慮すべきその他のケース:
- 1回のリクエストで複数のアイテムを削除します。
- 更新されたアイテムを削除します。
- 2つのタブを取り、両方のタブから製品の削除リクエストを送信してみてください。
結論
データベーステストは、ソフトウェアアプリケーションのセキュリティと信頼性を確認するため、非常に重要です。ほとんどのソフトウェアアプリケーションは、データベースとの間でデータを作成、読み取り、更新、および削除します。ソフトウェア要件に応じて、CRUDサイクルは異なる場合があります。テスターは、CRUDサイクルに基づいてテストケースを計画する必要があります。
CRUDの機能は手動でテストし、ユーザーインターフェイスとデータベースから検証できます。 SELECTクエリを使用して、各CRUD操作に対応するデータベースの変更を確認できます。
あなたはCRUDテストの専門家ですか? CRUDを初めて使用する読者と共有する興味深い事実はありますか?下記のコメント欄に、お気軽にご意見・ご感想をお寄せください!