qtp frameworks test automation frameworks keyword driven
=> QTPトレーニングチュートリアルシリーズについては、ここをクリックしてください
C ++インタビューコーディングの質問
テスト自動化フレームワークとは何ですか?QTPフレームワークとは何ですか?
の実装が成功した状況で QTP ソフトウェアテストプロジェクトでは、フレームワークの概念に出くわすことがよくあります。フレームワークは、自動化プロセス中に一貫して従うアプローチ、つまり一連のガイドラインに他なりません。
個人的には、名前を付けて、一方が他方よりもうまく機能すると言うのは好きではありません。特定のフレームワークの選択は、プロジェクトの始まりではありません。本当ののはその逆です。テスト戦略を考案するプロセスでは、テスターの現在の状況に適用できるルールを作成し、その権利にフレームワークがあります。
そうは言っても、以下は私たちが考慮する必要がある重要なポイントのいくつかです:
- 再利用性
- スクリプトの簡単なメンテナンス
- スクリプトの読みやすさ
- すべてのテストアセットに適した実行可能なフォルダー構造
- ハードコーディング値なし
- 失敗のカスケードはありません。 (つまり、1つのテストが失敗した場合でも、他のテストが失敗したり停止したりすることはありません)
これは基本的なリストであり、要件に基づいてさらに追加できます。
上記のポイントの一部またはすべてを取り入れようとするテスト戦略は、テスト自動化フレームワークです。
フレームワークにはさまざまな名前と種類があります。 以下は私によるとフレームワークのリストです:
学習内容:
自動化フレームワークの種類:(QTPフレームワークに適用)
- 線形 –テストを作成する最も簡単な形式。モジュール性のない単一のプログラムを順番に書くだけです
- キーワード駆動 –操作のセットごとに異なるキーワードを作成します。メインスクリプトでは、これらのキーワードを参照するだけです。
- データ駆動型 –別々のファイル(主にExcelシート)に保存されている複数のデータセットに対して同じ操作セットを実行するため。
- ハイブリッド –部分的にデータ駆動型と部分的にキーワード駆動型の組み合わせフレームワーク
- BPT –これは、プログラムがビジネスコンポーネントに分割され、上記のタイプのフレームワークのいずれかで使用されることを意味します。
線形フレームワーク
説明したように、このアプローチでは、記録して続行しながらコードを記述するだけです。
例えば、 確認する必要のある操作がGmailでの新しいアカウントの作成である場合、次の手順が実行されます。
- gmail.comを開く
- (アカウントを作成)をクリックします
- 詳細を入力してください
- 詳細を確認する
- アカウントを作成する
'Open GMail SystemUtil.Run 'iexplore.exe', 'http://www.gmail.com' 'Page Sync Browser('Gmail').Page('Gmail').Sync ‘Click on create account Browser('Gmail').Page('Gmail').WebLink(“Create Account”).Click ‘Enter the details Browser('Gmail').Page('Google Accounts').WebEdit(“First Name”).Set “Swati” Browser('Gmail').Page('Google Accounts').WebEdit(“Last Name”).Set “test” ‘Fill in several other details ‘Submit Browser('Gmail').Page('Google Accounts').WebButton(“Next Step”).click
上記は、線形法を使用するプログラムがどのように見えるかの例です。この時点で、この方法の長所と短所が何であるかは明らかです。
利点:
- シンプルさ。初心者プログラマーにとって、この方法は適切です
- 時間–テストの作成にそれほど時間はかかりません
- 計画はほとんど必要ありません
短所:
- 再利用性はまったくありません
- 「Googleアカウント」ページの特定の側面を確認する別のスクリプトがある場合は、コードを書き直してgmail.comページも起動する必要があります。たくさんの繰り返し。
- すべてのデータはコードに直接埋め込まれています。ハードコーディングでは、コードを他のデータセットに使用することはできません。
- エラーが発生しやすく、メンテナンスが難しい
短所は長所を上回りますが、この方法は、検証なしでタスクを実行することが厳密な目的である場合に使用できます。
この種のフレームワークのテストアセットのコンポーネントは次のとおりです。
- テストスクリプト
- オブジェクトリポジトリ(これは、必要に応じて記述プログラミングを使用することで回避できます)
キーワード駆動型フレームワーク
上記の線形フレームワークテストをどのように改善できますか?どうすれば短所を克服できますか?
PythonMac用の最高のテキストエディタ
明らかに、再利用性、モジュール性、および読みやすさが必要です。これらの機能を組み込んで最適なソリューションに到達しようとすることは、新しい、より改善されたフレームワークを作成する試みに他なりません。
再利用可能なコンポーネントとは何ですか?
- Gmailを起動し、「Googleアカウント」ページにアクセスします。このページを検証することは最初にここに到達することを意味するので、これは与えられたものです。 「GoToGoogleアカウント」–何度も呼び出すことができる別の関数にすることができます。
- 詳細を入力して検証する–これをさらに正と負のブロックに分割して、より高いレベルのモジュール性を含めることができます
- アカウントの作成–検証の最終レベルと目前のタスクの達成
ここに到着したら、何度も呼び出すことができるコンポーネントを特定しただけでなく、線形計画法をモジュールに分割しました。
機能:
これまでのシリーズでは、関数については扱っていません。 関数は、特定の操作を実行するコードの一部にすぎません。それを呼び出すプログラムから入力パラメータを受け取り、それに値を返します。
一般的な方法として、すべての再利用可能なコードは、すべての再利用可能な関数を含むファイルにグループ化されます。このファイルは、QTPテストのリソースに関連付けられています。通常、関数ライブラリは、.vbs、.txt、または.qflのタイプのファイルにすることができます。
例に戻る–これは、関数ライブラリファイルの方法です。
Function gotoGoogleAccount() 'Open Gmail SystemUtil.Run 'iexplore.exe', 'http://www.gmail.com' 'Page Sync Browser('Gmail').Page('Gmail').Sync ‘Click on create account Browser('Gmail').Page('Gmail').WebLink(“Create Account”).Click ‘Enter the details End Function Function EnterDetails() Browser('Gmail').Page('Google Accounts').WebEdit(“First Name”).Set “Swati” Browser('Gmail').Page('Google Accounts').WebEdit(“Last Name”).Set “test” ‘Fill in several other details End Function Function SubmitToCreate() ‘Submit Browser('Gmail').Page('Google Accounts').WebButton(“Next Step”).click End Function
これで、実際のスクリプトは次のようになります。
'Open GMail gotoGoogleAccount() ‘Enter the details EnterDetails() ‘Submit SubmitToCreate()
以上のプログラムから、読みやすさ、モジュール性を実現し、他のプログラムでログイン機能を利用したい場合でも確実に再利用できることがわかりました。関数ライブラリをその新しいテストに関連付けるだけで、準備は完了です。
スクリプトでは、関数名がまるで機能しているかのように機能していることもわかります。 VBScriptの キーワード、したがってこのフレームワークの名前。
この種のフレームワークのテストアセットのコンポーネントは次のとおりです。
- テストスクリプト
- 共有または
- 共有関数ライブラリ
さて、他に何がこのプログラムをさらに良くするでしょうか? EnterDetails()関数を作成して、さまざまなデータセットを取得し、さまざまなアカウントを作成でき、プログラムにハードコーディングしたデータに限定されない場合。それがまさに次のステップです。テストを推進するデータと、これを行うアプローチは、データ主導のフレームワークです。
私たちは議論する予定です データ駆動型およびハイブリッドフレームワーク 詳細については、次のチュートリアルで説明します。
swfファイルを再生する方法
=> QTPトレーニングチュートリアルシリーズについては、こちらをご覧ください
これらの記事でカバーされていない、直面しているQTPフレームワーク関連の問題がある場合は、お知らせください。私たちは間違いなくあなたの質問に答えようとします。
推奨読書
- それぞれの長所と短所を備えた最も人気のあるテスト自動化フレームワーク– Seleniumチュートリアル#20
- テスト自動化–それは専門的なキャリアですか?通常のテスターは自動化も行うことができますか?
- テスト自動化のためのフレームワークが必要なのはなぜですか?
- QTPチュートリアル#18 –QTPの例で説明されたデータ駆動型およびハイブリッドフレームワーク
- 手動プロジェクトと自動化プロジェクトでは、テスト計画はどのように異なりますか?
- データ駆動型テストのしくみ(QTPとSeleniumの例)
- 最適な自動化テストツールの選択方法(完全ガイド)
- ApachePOIを使用したSeleniumWebDriverのデータ駆動型フレームワーク