soa testing tutorial
SOAテストチュートリアル:
この記事では、SOAアーキテクチャーのテスト手法について説明します。
現在のソフトウェアは非常に用途が広く、ユーザーの期待の変化に対応する傾向があるため、スタンドアロンモデルは役に立ちません。
ソリューションとしてSOAがぴったり合うところがあります。
これが、多くの企業が次のような利点のためにSOAアプローチを採用または適応しようとしている理由です。コスト削減、ビジネスの俊敏性、簡単なメンテナンスなど。SOAアーキテクチャーでいっぱいの次の市場では、現代のテスターがSOAテストについて公正なアイデアを得ることが必要になります。
リレーショナルデータベースと非リレーショナルデータベースの長所と短所
この記事では、SOAの基本とその例について説明します。
これにより、読者はSOAに関する基本的な考え方を理解できます。その後に、Webサービスの実装アプローチが続きます。最後に、SOAアーキテクチャーモデルで従うことができるテストプロセスに入ります。
学習内容:
SOAとは何ですか?
SOAまたはSevice-Oriented-Architectureは、特定のビジネスニーズを達成するために、さまざまなアプリケーション/サービスを統合する柔軟で機敏で効率的な方法です。
- 他の複雑なシステムとは異なり、SOAは、ビジネスニーズを満たすために相互に結合された小さなコンポーネント/サービス/マイクロサービスで構成されます。
- サービスはシステム全体を構成する単位であり、変更が必要な場合は、システム全体を変更するのではなく、特定のサービスを変更します。
- サービスは、タスクを実行できるコンポーネントです。
- このアーキテクチャは、エンドユーザーが自分のニーズを満たすために必要なサービスのみを取得するため、レガシーシステムよりも販売可能です。彼はシステム全体を取得する必要はありません。
- サービス/マイクロサービスは疎結合、再利用可能、ステートレスであり、システムをさらに堅牢にします。
- このモデルは、展開、開発、および保守の点で非常にコスト効率が高くなっています。
SOAの例
ビジネスニーズ: ユーザーがログインしてジオロケーションに基づいてレストランを検索できるアプリケーション。検索が完了したら、サーバーからレストランの詳細とメニューをダウンロードし、最後に注文の支払いを行うことができます。
このビジネスニーズは、SOAの実装によって実現できます。
さまざまなタスクを実行するために、次のようなサービス/マイクロサービスがあります。
- ログイン時に使用されるサービスは「認証サービス」です
- レストランの検索は「ジオロケーターサービス」で行われます
- メニューのダウンロードは「メニューダウンローダーサービス」で行う必要があります
- 最後に、支払いは「支払いサービス」によって行われます。
上記の各サービスは、システムを機能させ、本来の機能を提供するために、独自の機能を実行します。これで、顧客がレストランとそのメニューのみを表示する必要があり、Payment Gatewayインターフェースを必要としない場合、最初の3つのサービスのみを購入/展開します。
これにより、開発、展開、販売、保守、そして結局のところ顧客/エンドユーザーの作業が簡単になります。
ウェブサービス
- これらは、異なるソフトウェアプログラム間の相互作用を容易にするAPI [アプリケーションプログラミングインターフェイス]です。
- Web上でサービスをホストするサービスプロバイダーがあります。ホスティングの一部として、WSDLはプロバイダーによってホストされます。
- クライアントがサービスプロバイダーに要求メッセージを送信すると、URL / WSDLを使用して通信が確立されます。
- 以下の例では、Geolocationサーバーは、サービスリクエスターが使用するWebサービスをホストしています。
SOAテストプロセス
すべての製品、モデル、インフラストラクチャは、高品質の製品に関してエンドユーザーを満足させるために、テスト段階に入る必要があります。 SOAテストは、レイヤーのテスト/ Webサービスプロトコルのテストだけに限定されません。これは、アーキテクチャとそのすべての部分の全体的なテストです。
テストアプローチは、通常のテストプロセスのアプローチと同様にすることができます。つまり
- 要件レビュープロセス
- テスト計画
- テスト設計
- 環境設定
- 実行フェーズ
- レポートフェーズ
SOAテストプロセスは、アーキテクチャの3つの層を中心に展開します。
- サービス消費者
- プロセスレイヤー
- サービスレイヤー
上記と同じ例を使用すると、次のようにレイヤーを作成できます。
- サービス消費者の層は、消費者の相互作用に役立ちます。これは、エンドユーザーからの入力を読み取り、受信した要求に対して適切な応答を返すのに役立ちます。言い換えれば、これは基本的にUIインターフェースを備えています。
- これは、実装の最前線に焦点を当てたレイヤーです。この例のこのレイヤーには、認証、ユーザーの作成などの方法があります。
- サービス層は、サービスに関するビジネス機能です。特定のタスクが実行されるときに実際に呼び出されるすべてのサービスは、このレイヤーにあります。
テストは基本的に4つの異なる段階に分けることができます。
Tier#1
1)サービスレベルテスト:
- システムに含まれる各サービスは、要求と応答の方法に基づいて個別にテストされます。
- このテストは必須であり、他のテストプロセスを進めるために非常に重要です。
2)機能テスト:
- テストは、受け取った応答が正しいかどうかを確認するために、ビジネスニーズに関するサービスに対して実施されます。
- ビジネスニーズは最初にテストケースに変換され、要求ステートメントが形成されます。
- 次に、要求ステートメントが処理され、取得された応答が正しいかどうかが確認されます。
- 入力データが無効な場合は、適切なエラーコードをスローするか、適切なエラーメッセージをトリガーする必要があります。
- 応答の形式とネガティブシナリオを実行する必要があります。
3)セキュリティテスト:
- Webサービスに関しては、セキュリティテストがテストプロセスの成功に重要な役割を果たします。
- データを解析するときは、認証ゲートウェイ、支払いゲートウェイなどを暗号化する必要があります。
- XMLに関しては、CSRF、SQLインジェクションなどの脆弱性を検証する必要があります。
4)パフォーマンステスト:
- アーキテクチャで使用されるサービスは、他の多くのアプリケーションがそれを利用できるようにホストされています。パフォーマンステストは、これらのサービスの信頼性を確認します。
- 次の一連の結果を見つけるために、サービスのテストを実行する必要があります。
- サービスの安定性を判断するため。
- サービスのスケーラビリティを検証します。
- ピーク負荷条件下でのサービス動作
- サービス全体の応答時間を見つけるには
ティア2
1)プロセステスト:
- このプロセスには、さまざまなビジネスプロセスのテストが含まれます。
- これは、ビジネス要件をカバーするWebサービスとアプリケーションの統合シナリオで構成する必要があります
- シミュレーターを使用してサンプル入力データを生成し、それぞれの出力に対して検証を行う必要があります。
- システムが統合されたときにシステムがスムーズに機能することを証明するために、さまざまなレイヤーからのデータフローを実行する必要があります。
Tier#3
1)エンドツーエンドテスト:
セレンwebdriverチュートリアルjavaeclipse pdf
- このフェーズは、機能的および非機能的の両方でビジネス要件を検証することを目的としています。
- アプリケーションのUIが検証されます。
- 関連するビジネスプロセスがテストされます。
- このフェーズでは、エンドツーエンドのデータフローが検証されます。
- サービスが相互に統合されている場合のすべてのサービスの操作が検証されます。
Tier#4
1)回帰テスト:
- インクリメンタルビルドリリースでのシステムの安定性は、このテストによって検証されます。
- これは、手動テスト/自動テストのいずれかによって実現できます。
SOAテストの課題
誰かが正しく言った、「メッシュが大きい。大きいほど混乱です!」 SOAは、注意を切望する非常に複雑な子になる可能性があります。
言い換えれば、SOAアーキテクチャーを構成する非常に多くの微細な部分があるため、テストでそれを認定することは非常に困難な作業になります。
- テストプロセスを進めるためにテスト環境をシミュレートするのは難しい。
- モデルに含まれる製品は、同じテクノロジー/ベンダーのものである可能性があります。しかし、それらは異なる場合もあります。その他の問題?
- テストの組み合わせは、関連するサービス/コンポーネントの数を増やします。
- モデルの複雑さ
- 問題の再現/テストは大変な仕事です。
- 他のモデルとは異なり、テストの主な焦点は、サービスとその機能ではなく、ビジネススコープにある必要があります。
SOAテストツール
SOAテストには多数のアプリケーションがあります。 SOAテストツールは、正確な結果と生産性の向上に基づいて選択されます。
- SoapUI: これは、Webサービスのテストを目的とした無料のツールです。 SoapUIは、機能テスト、パフォーマンステスト、および負荷テストを実行できます。
- Apache Jmeter: これは、SOAP呼び出しのパフォーマンスを分析するために使用されるオープンソースユーティリティでもあります。
- JProfiler: これは、メモリリークを停止または検出したり、パフォーマンスのボトルネックを見つけたりするために使用されます。
- HPサービステスト: これはHPQCに統合されています。これは機能テストツールであり、UIと共有サービスのテストもサポートしています。
この記事を通じて、モデルの特異点を理解しました。これはレガシーモデルとは大きく異なり、記事はそれについての良いアイデアを提供します。この記事では、SOAの手順とテストを進める方法についても説明します。
著者について: これはSubhasisによるゲスト投稿です。彼は、フォーチュン500のIT企業で8年以上の企業経験を持つチームリーダーとして働いています。
以下にSOAテスト関連のクエリ/コメントを投稿してください。
ではごきげんよう!