テスト自動化フレームワーク: とは Archi構造と種類
自動テストにおけるフレームワークとは何ですか?
A テスト自動化フレームワーク コーディング標準、テストデータの処理、オブジェクト リポジトリの処理などの一連のガイドラインです。自動化スクリプト作成時にこれに従うと、コードの再利用性の向上、移植性の向上、スクリプトのメンテナンス コストの削減などの有益な結果が生まれます。これらは単なるガイドラインであり、ルールではありません。また、必須ではなく、ガイドラインに従わずにスクリプトを作成することもできます。ただし、フレームワークを使用するメリットは得られません。
なぜフレームワークが必要なのでしょうか?
フレームワークが必要な理由を理解するために例を考えてみましょう。
参加者に以下のガイドラインを遵守するよう求められたセミナー/講義/会議に出席したことがあると思います。
- 参加者は講義開始の5分前までに着席してください。
- メモを取るためのノートとペンをご持参ください。
- 要約を読んで、プレゼンテーションの内容を理解してください。
- 携帯電話はマナーモードに設定してください。
- 講義の途中で退席する必要がある場合は、講演者とは反対側の出口ゲートをご利用ください。
- 質問はセッションの最後に受け付けます。
セミナーを開催できると思いますか WITHOUT これらのガイドラインを遵守してください👍
答えは大 はい! 確かに、上記のガイドラインがなくてもセミナー、講演、会議、デモンストレーションを行うことはできます。実際、ガイドラインが定められているにもかかわらず、私たちの中にはそれに従わない人もいます。
しかし、ガイドラインに従えば、講義中の聴衆の気が散ることが減り、参加者の定着率が高まり、主題の理解が高まるなど、有益な結果がもたらされます。
上記に基づいて、 フレームワークは、従うことで有益な結果を生み出す一連のガイドラインとして定義できます。
テスト自動化フレームワークの種類
以下に、さまざまな種類の自動テスト フレームワークを示します。
- 1) リニアスクリプト
- 2) テストライブラリ Archi構造フレームワーク。
- 3) データドリブン テスト フレームワーク。
- 4) キーワード駆動またはテーブル駆動のテスト フレームワーク。
- 5) ハイブリッド テスト自動化フレームワーク。
それらを詳しく見てみましょう –
1) リニア スクリプト – 記録と再生
これはすべてのテスト自動化フレームワークの中で最も単純であり、としても知られています。 「録音&再生」。この内 自動化テスト フレームワーク、テスターは各ステップ (ナビゲーションとユーザー入力) を手動で記録し、最初のラウンドでチェックポイント (検証ステップ) を挿入します。 その後、記録されたスクリプトを後続のラウンドで再生します。
例: へのログインを検討してください 航空券予約申し込み ログオンが成功したときにアプリケーションが読み込まれたかどうかを確認します。ここで、テスターはステップを記録し、検証ステップを追加するだけです。
SystemUtil.Run "flight4a.exe","","","open" Dialog("Login").WinEdit("Agent Name:").Set "Guru99" Dialog("Login").WinEdit("Password:").Set "Mercury" Dialog("Login").WinButton("OK").Click 'Check Flight Reservation Window has loaded after successful log-on Window("Flight Reservation").Check CheckPoint("Flight Reservation")
Advantages
- スクリプトを生成する最速の方法
- 自動化の専門知識は不要
- テストツールの機能を学ぶ最も簡単な方法
デメリット
- スクリプトの再利用はほとんどない
- テストデータはスクリプトにハードコードされています
- メンテナンスの悪夢
2) テストライブラリ Archi構造フレームワーク
としても知られています 「構造化されたスクリプト」 or 「機能分解」。
この自動テスト フレームワークでは、テスト スクリプトは最初に「録音と再生" 方法。 Laterでは、スクリプト内の一般的なタスクが識別され、関数にグループ化されます。これらの関数は、メイン テスト スクリプトによって呼び出されます。 ドライバ さまざまな方法でテストケースを作成します。
例: 上記と同じ例を使用すると、航空予約にログインするための関数は次のようになります。
Function Login() SystemUtil.Run "flight4a.exe","","","open" Dialog("Login").WinEdit("Agent Name:").Set "Guru99" Dialog("Login").WinEdit("Password:").Set "Mercury" Dialog("Login").WinButton("OK").Click End Function
ここで、次のようにメイン スクリプトでこの関数を呼び出します。
Call Login() --------------------------- Other Function calls / Test Steps. ---------------------------
Advantages
- 「記録と再生」と比較して、構造化スクリプトではより高いレベルのコード再利用が実現されます。
- 自動化スクリプトはコードの再利用が多いため、開発コストが低くなります。
- スクリプトのメンテナンスが簡単に
デメリット
- テスト ライブラリ フレームワークを使用してスクリプトを作成するには、技術的な専門知識が必要です
- テスト スクリプトの計画と準備にはさらに時間が必要です。
- テストデータはスクリプト内でハードコードされています
3) データ駆動型テスト フレームワーク
このフレームワークでは、一方、 テストケース ロジックがテスト スクリプト内に存在する場合、テスト データは分離され、テスト スクリプトの外に保持されます。 テスト データは外部ファイル (Excel ファイル、テキスト ファイル、CSV ファイル、ODBC ソース、DAO オブジェクト、ADO オブジェクト) から読み取られ、テスト スクリプト内の変数にロードされます。 変数は、入力値と検証値の両方に使用されます。 テスト スクリプト自体は、リニア スクリプトまたはテスト ライブラリ フレームワークを使用して準備されます。
例: この方法を使用してフライト予約ログイン スクリプトを開発するには、XNUMX つの手順が必要です。
ステップ1) テスト – データ ファイルを作成します。これには Excel 、 CSV 、またはその他のデータベース ソースを使用できます。
エージェント名 | パスワード |
---|---|
ジミー | Mercury |
ティナ | MERCURY |
Bill | 水星 |
ステップ2) テスト スクリプトを開発し、テスト データ ソースへの参照を作成します。
SystemUtil.Run "flight4a.exe","","","open" Dialog("Login").WinEdit("Agent Name:").Set DataTable("AgentName", dtGlobalSheet) Dialog("Login").WinEdit("Password:").Set DataTable("Password", dtGlobalSheet) Dialog("Login").WinButton("OK").Click 'Check Flight Reservation Window has loaded Window("Flight Reservation").Check CheckPoint("Flight Reservation") **Note "dtGlobalSheet" is the default excel sheet provided by QTP.
Advantages
- テスト スクリプトへの変更はテスト データには影響しません。
- 複数のデータセットを使用してテストケースを実行できます
- 外部データファイルのテストデータを変更するだけで、さまざまなテストシナリオを実行可能
デメリット
- テスト スクリプトとテスト データの両方を計画し、準備するにはさらに時間が必要です
4) キーワード駆動またはテーブル駆動のテスト フレームワーク
キーワード駆動型またはテーブル駆動型の自動化フレームワークの開発には、データテーブルとキーワードが必要です。 の独立 テスト自動化ツール それらを実行するために使用されます。 テストはアプリケーションの有無にかかわらず設計できます。 キーワード駆動テストでは、テスト対象アプリケーションの機能が表と各テストの段階的な手順に文書化されます。
キーワード駆動フレームワークには、キーワード、アプリケーション マップ、コンポーネント機能という 3 つの基本コンポーネントがあります。
キーワードとは何ですか?
キーワードは、GUI コンポーネントで実行できるアクションです。例: GUI コンポーネント テキスト ボックスの場合、キーワード (アクション) には、InputText、VerifyValue、VerifyProperty などがあります。
アプリケーションマップとは何ですか?
アプリケーション マップは、GUI コンポーネントの名前付き参照を提供します。 アプリケーションマップは「」にほかなりません。オブジェクトリポジトリ「
コンポーネント機能とは何ですか?
コンポーネント関数は、GUI コンポーネントをアクティブに操作または問い合わせる関数です。 関数の例としては、すべてのエラー処理を備えた Web ボタンをクリックし、すべてのエラー処理を備えた Web 編集にデータを入力することが挙げられます。 コンポーネントの機能は、アプリケーションに依存することも、独立することもできます。
例: キーワード ビューを理解するために、同じ例を見てみましょう。 2つのステップが必要です
ステップ 1: データテーブルの作成 (Data Driven Framework で作成するテストデータテーブルとは異なります)。このデータ テーブルには、GUI オブジェクトに対して実行されるアクションと、対応する引数 (存在する場合) が含まれています。各行は 1 つのテスト ステップを表します。
オブジェクト | 行動 | |
---|---|---|
(アプリケーションMAP) | (キーワード) | 引数 |
WinEdit(エージェント名) | 作成セッションプロセスで | Guru99 |
WinEdit(パスワード) | 作成セッションプロセスで | Mercury |
Winボタン(OK) | クリック | |
窓口(航空券予約) | 確認します | 存在 |
ステップ 2: コンポーネント関数の形式でコードを記述します。
データ テーブルを作成したら、各ステップを読み取り、[Action] フィールドに含まれるキーワードに基づいてステップを実行し、エラー チェックを実行し、関連情報をログに記録するプログラムまたはスクリプト セットを作成するだけです。 このプログラムまたはスクリプトのセットは、以下の疑似コードのようになります。
Function main() { Call ConnectTable(Name of the Table) { //Calling Function for connecting to the table. while (Call TableParser() != -1) //Calling function for Parsing and extracting values from the table. { Pass values to appropriate COMPONENT functions.Like Set(Object Name, Argument) ex.Set(Agent Name, Guru99). } } Call CloseConnection() //Function for Closing connection after all the operation has been performed. } //End of main
キーワード駆動フレームワークについては以上です。
キーワード駆動フレームワークの利点は、キーワードが再利用可能であることです。これを理解するには、たとえば YAHOO メールなどの Web サイトのログイン操作を検証する場合を考えてみましょう。表は次のようになります。
オブジェクト | 行動 | |
---|---|---|
(アプリケーションマップ) | (キーワード) | 引数 |
WebEdit(ユーザー名) | 作成セッションプロセスで | abc@yahoo.com |
Web編集(パスワード) | 作成セッションプロセスで | xxxxxは |
Webボタン(OK) | クリック | |
窓口(ヤフー) Mail) | 確認します | ロード |
この場合、対応するコンポーネント機能がすでに開発されているキーワード Set 、 Click 、 Verify が同じままであることがわかります。 必要なのは、アプリケーション マッピング (オブジェクト リポジトリ) を以前のフライト予約から Yahoo に変更することだけです。 Mail 、引数の値を変更すると、同じスクリプトが機能します。
Advantages
- コードの高い再利用性を実現
- テストツールに依存しない
- テスト対象のアプリケーションとは関係なく、同じスクリプトが AUT に対しても機能します (いくつかの制限があります)。
- テストは AUT の有無にかかわらず設計可能
デメリット
- 初期投資はかなり高額ですが、この利点は、アプリケーションがかなり大きく、テスト スクリプトが数年間維持される場合にのみ実現できます。
- キーワード駆動フレームワークを作成するには、高度な自動化の専門知識が必要です。
注: Micro Focus UFT は自身を KeyWord Driven Framework として宣伝していますが、HP UFT を使用してテスト ツールとアプリケーションを完全に独立させることはできません。
5) ハイブリッド テスト自動化フレームワーク
名前が示すように、このフレームワークは、上で説明した XNUMX つ以上の自動化フレームワークを組み合わせて、それぞれの強みを生かし、弱点を軽減しようとしています。 ハイブリッド テスト QA 自動化フレームワークは、ほとんどのテスト自動化フレームワークが時間の経過と複数のプロジェクトに進化するものです。 最大の業界では、キーワードフレームワークと関数分解手法を組み合わせて使用しています。
PS: 言及する価値のある他の自動化フレームワークは次のとおりです。
モジュール性フレームワークのテスト
このフレームワークでは、テスト スクリプト内の共通タスクがモジュールとしてグループ化されます。
例: QTP でアクションを使用すると、モジュラー スクリプトを作成できます
ログイン用のサンプルスクリプト
SystemUtil.Run "flight4a.exe","","","open" Dialog("Login").WinEdit("Agent Name:").Set "Guru99" Dialog("Login").WinEdit("Password:").Set "Mercury" Dialog("Login").WinButton("OK").Click 'End of Script
これで、次のようにメイン スクリプトでこのアクションを呼び出すことができます。
RunAction ("Login[Argument]", oneIteration)
ビジネスプロセステスト (BPT)
これらの自動化フレームワークは、大規模なビジネス プロセスをコンポーネントに分割し、同じまたは異なるテスト スクリプトで複数回再利用できます。 たとえば、フライトを予約するビジネス プロセスは、ログイン、フライトの検索、予約、支払いとログアウトなどのコンポーネントに分割されており、同じビジネス プロセスまたは異なるプロセスで再利用できます。 また、BPT は、中小企業とオートメーション エンジニア間の緊密な調整を促進します。
テスト自動化フレームワークの利点 Archi構造
テスト自動化フレームワーク アーキテクチャの利点は次のとおりです。
- テスト自動化フレームワークはリスクとコストの削減に役立ちます
- テストの効率が向上します
- メンテナンスコストの削減に貢献します
- コードの再利用を許可します
- 最大のテストカバレッジを達成することができます
- アプリケーションの機能を最大限に活用します
- テストケースの重複を減らすのに役立ちます
- テスト自動化によりテストの効率とパフォーマンスの向上に役立ちます
まとめ
- フレームワークとは、コーディング標準、テストデータの処理、オブジェクト リポジトリの処理などの一連のガイドラインであり、自動スクリプト作成中にこれに従うと、コードの再利用の増加、移植性の向上、スクリプトのメンテナンス コストの削減などの有益な結果が得られます。
- リニア スクリプティングはすべてのオートメーション フレームワークの中で最も単純であり、「記録と再生」としても知られています。
- テストライブラリ Architecture Framework は、「構造化スクリプト」または「機能分解」とも呼ばれます。
- データ駆動型テスト フレームワークでは、テスト ケースのロジックはテスト スクリプト内に存在し、テスト データは分離されてテスト スクリプトの外部に保持されます。
- キーワード駆動またはテーブル駆動フレームワークでは、データ テーブルとキーワードを、それらの実行に使用されるテスト自動化ツールとは無関係に開発する必要があります。
- ハイブリッド オートメーション フレームワークは、ほとんどのテスト自動化フレームワークが時間の経過と複数のプロジェクトに進化するものです。