Webアプリケーションは、デジタル領域でターゲットオーディエンスに接続してサービスを提供する高度な方法を求める企業にとって不可欠になっています。最近のビジネス運営におけるWebアプリの重要性を考えると、業界に関係なく、Webアプリを包括的にテストして、ハイエンドのユーザーエクスペリエンスを提供することを確認する必要があります。
自動化テストは、ソフトウェア開発ライフサイクルを加速します。さらに、開発にビヘイビア駆動開発(BDD)アプローチを採用すると、開発者、QA、非技術チームなどのさまざまな利害関係者がプロジェクトで積極的に協力できます。
シナリオは予想される動作に基づいて作成されます。ソフトウェアのテストを行い、上記のシナリオに一致するかどうかを確認します。
画像ソース
これらのシナリオは、Gherkinなどのドメイン固有言語を使用して文書化されています。各テストシナリオでは、小さな英語のようなフレーズを構成する自然言語の構成要素を使用して、アプリケーションの動作と期待される結果を記述します。これは、Gherkinで記述された自動受け入れテストの実行を可能にするCucumberなどの専用ソフトウェアツールを使用して行われます。
Cucumberとは
Cucumberは、オープンソースのテストフレームワークです。 Webアプリケーションの自動化テストのためのビヘイビア駆動開発をサポートします。テストは最初に、ユーザーの観点からシステムの予想される動作を説明する単純なシナリオ形式で記述されます。
受け入れテストに広く使用されるCucumberはRubyで記述され、テストはGherkinで記述されます。非技術的で人間が読める言語。
キュウリとセレンのテスト:協調的アプローチ
自動化されたセレンテストは開発サイクルに正確さとスピードを追加しますが、キュウリはさらにエッジを追加しますそれに、非技術的な管理の利害関係者のためにそれをより協力的にします。テストシナリオが主に動作によって駆動されるユーザー受け入れテストに広く有益なCucumberは、自動化テストを強化します。
Cucumberフレームワーク
Cucumberフレームワークは、主に3つの主要部分で構成されます。ステップ定義、およびテストランナーファイル。
機能ファイル
プロジェクトのスタンドアロンユニットまたは単一の機能(ログインなど)は、機能と呼ぶことができます。これらの各機能には、Cucumberと統合されたSeleniumを使用してテストする必要があるシナリオがあります。機能、その説明、およびテストするシナリオに関するデータを格納するファイルは、機能ファイルと呼ばれます。
キュウリのテストは、拡張子「.feature」で保存されるこれらの機能ファイルに書き込まれます。 。機能ファイルに説明を付けて、ドキュメントを読みやすくすることができます。
例:
Webサイトのログイン機能
機能ファイル名:userLogin .feature
説明:ユーザーは、正しいユーザー名とパスワードを正しいフィールドに入力するとログインできる必要があります。入力したユーザー名とパスワードが正しい場合、ユーザーはホームページに移動する必要があります。
Cucumberでテストを作成するために使用されるGIVEN、WHEN、THENなどのキーワードは注釈と呼ばれます。
- GIVENユーザーはFirefoxを開いてログインページに移動します
- ユーザーが正しい<ユーザー名>と<パスワード値
- 次にユーザーはtに誘導されますホームページ
ステップ定義
機能が機能ファイルに書き込まれたので、関連するシナリオのコードを実行する必要があります。特定のシナリオで実行する必要のあるコードのバッチを知るために、ステップ定義が登場します。ステップ定義ファイルには、機能ファイルで定義されたシナリオの各ステップと実行されるコードの間のマッピングデータが格納されます。
ステップ定義では、Java関数とSeleniumコマンドの両方を使用して、コードへの機能ファイル。
例:
package StepDefinition;import cucumber.api.java.en.Given;import cucumber.api.java.en.Then;import cucumber.api.java.en.When;public class Steps{@Given("^user navigates to the login page by opening Firefox$")//Code to Open Firefox Browser and launch the login page of application to define the GIVEN step of the feature@When("^user enters correct username and password values$")//take inputs for username and password fields using find element by xpath. Put the correct username and password values
read more