using json interface testing
インターフェイステストにJSONを使用する:
インターフェイステストは、2つの異なるシステム間の通信を検証します。これは、テスト対象のアプリケーションで実行され、2つのネットワーク間の通信が正しく実行されているかどうかを確認します。
インターフェイスは基本的に2つのソフトウェアシステム間の接続であり、データ転送のためにその接続をテストすることをインターフェイステストと呼びます。このインターフェースは、実世界の幅広いサービスをカバーしており、WebサービスやAPIなどを参照するために使用できます。
インターフェイスには、2つのシステム間の通信を容易にする一連のルール、メッセージ、コマンドなどが含まれています。
このテストは、主に2つの主要なセグメントのテストに重点を置いています。
- データベースとアプリケーションサーバーの通信
- Webおよびアプリケーションサーバー通信
インターフェーステストは、上記のシナリオを評価して、コンポーネントが制御とデータを相互に正しく受け渡しているかどうかを検証するために実行されます。また、異なるモジュール間の相互作用も検証します。
学習内容:
- インターフェイステストが実行されるのはなぜですか?
- それはどのように実行されますか?
- インターフェイステストと統合テストの違い
- ビジネスシナリオ
- テスト環境のセットアップ
- テストの開始
- 結論
- 推奨読書
インターフェイステストが実行されるのはなぜですか?
これは、次のことを確認するために実行されます。
- IIfシステム間の通信が正しく実行されている。
- システムで使用されているすべてのソフトウェアとハードウェアは正常に動作しています。
- 通信にリンクされているすべてのドキュメントは、すべての統合プラットフォームで利用できます。
- セキュリティと暗号化の要件は、システム間の通信に準拠しています。
- 統合されたコンポーネントは、ネットワーク障害と通信損失を処理できます。
見つかった欠陥の種類
ユーザーインターフェイスのテストで見つかった欠陥のほとんどは、システム間のデータの誤ったマッピングが原因です。したがって、ほとんどのバグは基本的に次のカテゴリに分類できます。
- 2つのシステム間で一貫性のないデータ送信。
- システムの1つが、別のシステムからのデータ送信を誤って解釈します。
- 2つのシステム間の伝送チャネルまたはインターフェイスに障害が発生すると、システム間のデータ転送が制限され、インターフェイス全体に障害が発生します。
それはどのように実行されますか?
これは主に次のフェーズに分類できます。
- インターフェイスは、中に個別にテストできます システムテスト 。このタイプのテストは、主にスタブまたはダミーシステムを使用して実行されます。ダミーのシステムまたはスタブは、システム全体の相互作用の動作を偽装します。
- インターフェイステストが実行されるもう1つの例は、2つのシステムが相互に通信しているジャンクションです。
- したがって、あるシステムから送信されたデータが正しくマッピングされ、別のシステムに挿入されているかどうかをテストします。データの挿入以外に、データの整合性もチェックします。つまり、データが別のシステムに挿入されたときに、操作または変更されていないなどです。
- システムが別のアプリケーションデータベースにデータを送信するときにも、テストを実行できます。ここでは、マッピングに基づいて、1つのシステムからのデータが特定のテーブルの特定の列に正しく挿入されているかどうかをテストします。また、ソースシステムに関してデータの整合性とデータの整合性をテストします。
これらすべてのテストシナリオでは、インターフェイステストはビジネス要件とビジネスフロールールに基づいて実行されます。
インターフェイステストと統合テストの違い
相互に接続されたコンポーネントのエンドツーエンド機能の検証と妥当性確認は、 統合テスト またはより一般的にはシステム統合テストとして。統合テストは主に、統合された2つ以上のシステムが問題なく連携しているかどうかを検証します。
テスト インターフェース 一方、基本的には2つのシステム間の接続チャネルに集中します。 2つ以上のシステム間の接続チャネルはインターフェースと呼ばれます。この接続チャネルのテストは、インターフェイステストと呼ばれます。ほとんどのインターフェースは、APIまたはWebサービスのいずれかです。 UIはありませんが、入力を受け取り、ユーザーに出力を提示します。
例えば
上記の例では、Webサイトとデータベースは、ログイン情報(ユーザー名とパスワード)を送信するためのインターフェースを共有しています。
インターフェイスはWebサービスを使用してログイン情報をデータベースに送信します。データベースは受信メッセージ(ユーザー名とパスワード)の信頼性を検証し、ユーザー名とパスワードの両方がデータベースに存在するレコードと一致する場合、または値をtrueとして返します。それらのいずれか、またはユーザー名とパスワードの両方が内部に存在するデータと一致しない場合はfalse。
インターフェイステストの例について説明しましょう。
さまざまなデータベースが相互作用するアプリケーションがあるとします。
これで 例 、インターフェイスチャネルを介した2つのデータベースの相互作用を検討します。
データベースAとBの2つのデータベースまたはアプリケーションがあるとします。「A」は一部のデータを「B」に転送し、Bはこのデータを使用して何らかの操作を実行します。着信データに対して特定の操作を実行した後、Bはそのデータをデータベースに挿入し、更新されたデータのリストで確認するための出力JSONを作成し、それをAに送り返します。
AとBはどちらも、それらの間の通信にインターフェイスチャネルを使用します。
ビジネスシナリオ
「A」には、財務部門に属するすべての従業員の従業員データが含まれています。
データは「B」に移植する必要があります 「」 日常的に。 「B」には、一般的な従業員の詳細に関するデータが含まれています。 「A」からのすべてのデータは、「B」の特定のテーブルと列に転送する必要があります。入力データ以外に、「B」もデータを並べ替えて整理する必要があります。また、データが正しい従業員に対して入力されているかどうかを確認する必要があります。
データがシステムに入力されると、「B」は出力JSONを送信して、データがデータベースに挿入されているかどうかを確認する必要があります。
JSONスキーマに不一致がある場合、またはデータが欠落している場合、「B」はデータを処理せず、拒否の理由を含む拒否JSONメッセージを送信します。
テスト環境のセットアップ
このようなシナリオをテストするには、データベース「A」を模倣するテストスタブが必要です。開発者は、テストJSONまたはモックUIをダンプして、JSONデータを貼り付け、インターフェースを介して処理を呼び出すことができる場所を提供できます。テストの目的で、「B」から確認JSONを受信できる出力場所を設定することもできます。
私たちの中で 例 、テストJSONを配置するフォルダーパスを使用します。サービスは常にJSONファイルの場所を突っ込みます。ファイルが存在すると、サービスはファイルを取得し、インターフェースを介して「B」に送信します。ファイルがピックアップされると、ピックアップ場所から削除されます。
テストの開始
テスト環境がセットアップされたら、次のステップはテストデータを作成することです。
テストデータを作成するとき(テストJSONを読み取る)、いくつかの点に注意する必要があります。
- ビジネスルールに従ってください。
- 必須フィールドが存在することを確認してください。
- 各テストのビジネスルールに従って、フィールドの値を変更します。
- JSONスキーマが正しい形式であることを確認してください。
- JSONファイル名の命名法が守られていることを確認してください。
テストに使用するサンプルテストJSONを見てみましょう。
{ 'employeeID ': 2569875, 'LastName': “Jackson”, 'baseSalary': 2569, 'DesignationCode':'P102', “Expenditure”:{ 'Month':“Feb”, 'Year': 2017, 'Official':560, 'Others”:0, } }
テストを開始します
テストJSONファイルを作成したら、それをピックアップ場所にドロップします。サービスはこれを取得してデータベースBに投稿します。
テストするシナリオ:
この例では、次のようなテストが必要なシナリオがいくつかあります。
- Webサービスと連携してデータを送受信します。
- 入力データのデータ整合性。これは、テストJSONを介して入力されたデータについてデータベースBのテーブルと列をクエリすることで検証できます。
- ネガティブなシナリオ。
最初に、テストJSONファイルがその場所から取得されたかどうか、またはその場所に存在しないかどうかを確認します。これにより、サービスの動作が検証されます。次に、出力フォルダーに移動して、出力JSONを表示します。出力JSONの存在は、入力データがデータベースBに送信され、その確認応答が受信されたかどうかを検証します。
テストの次の部分は、データベースに入力されたデータの検証で構成されます。
上記のテストでは、テストJSONを介して送信されたデータがデータベースに正しく入力されているかどうかを検証します。データの整合性、データの整合性、データの挿入を検証します。データがテーブルに正しく挿入されているかどうかを検証するには、特定のテーブルの特定の列についてデータベースBにクエリを実行する必要があります。
データを挿入する必要のあるEmpDetailsテーブルがあるとします。したがって、クエリを実行してデータを検証します。
クエリは次のようになります。
SELECT employeeID, LastName, baseSalary, DesignationCode, Month, Year, Official, Others FROM EmpDetails Where employeeID = 2569875;
ここでは、EmpDetailsテーブルのデータをクエリするための主キーとしてemployeeIDを使用します。データが挿入されているすべての列名を使用してクエリを実行します。次に、列名のデータをJSONを介して送信されたデータで検証できます。
上記の場合、JSONからのデータはデータベース内の複数のテーブルに格納されているため、SQLJOINSを使用して必要なすべてのデータをフェッチできます。
テストの3番目のステップは、ネガティブなシナリオをテストすることです。
テストできるネガティブなシナリオのいくつかは次のとおりです。
- 誤ったデータがJSONを介して供給された場合のシステムの動作。
- JSONのスキーマまたは構造が間違っている場合。
- 処理されたJSONに主キーまたは必須フィールドがない場合。
- JSONファイルの命名法が無効です。
これらすべての場合において、システムはこれらのシナリオを処理できる必要があり、ビジネスルールに従ってデータがシステムに挿入されないようにする必要があります。
結論
データが送信される2つのシステム間の接続チャネルはインターフェイスと呼ばれ、インターフェイステストは主にこれらの接続のテストを回避します。ほとんどのインターフェースは、WebサービスまたはAPIを利用します。常にUIがあるとは限りませんが、入力を受け入れて出力を提供します。
働くのに最適なゲームスタジオ
最も広く使用されているデータ転送形式の1つであるため、JSONはインターフェイスデータ転送に使用できます。
テスターは、テストデータ(JSON形式)を作成し、システムから出力データを読み取るために、基本的なJSON構造の知識を持っている必要があります。テスターは、JSONキーとデータベースのテーブル列の間のマッピングにも精通している必要があります。
インターフェイステストに取り組みたいテスターは、ビジネスガイドラインとアプリケーションのルールについて明確な知識を持っている必要があります。テスターは、データベースに関する十分な知識があり、簡単なSQLクエリを記述できる必要があります。
ご質問やご不明な点がございましたら、コメントセクションでお問い合わせください。
チュートリアル#5: JSONインタビューの質問