bdd framework
BDD(ビヘイビア駆動開発)フレームワークチュートリアル: Cucumberフレームワークの例を使用してBDDフレームワークの機能と利点を探る
BDDフレームワーク、つまりビヘイビア駆動開発は、テスター/ビジネスアナリストが単純なテキスト言語(英語)でテストケースを作成できるようにするソフトウェア開発アプローチです。
シナリオで使用される単純な言語は、技術者でないチームメンバーでさえ、ソフトウェアプロジェクトで何が起こっているのかを理解するのに役立ちます。これは、技術チームと非技術チーム、マネージャー、および利害関係者間のコミュニケーションを支援および改善します。
学習内容:
BDDビヘイビア駆動開発とは何ですか?
BDDはTDD、つまりテスト駆動開発から発生します。これにより、ユーザーはソフトウェアコードへの介入を最小限に抑えて複数のテストデータを操作できるため、コードの再利用性が向上します。これは、ソフトウェア開発/テスト自動化の時間節約メカニズムです。 。
TDDを継承することにより、BDDはその利点とともにこれらすべての機能も備えています。
- テストシナリオは、機能ファイルという名前の別のファイルに個別に記述されています。
- テストは、素人の言語でユーザーストーリーとシステムの動作に焦点を当てることによって書かれています。
- コードは、ステップ定義ファイル(Java、Pythonなど)で異なる方法で記述される場合があります。
推奨読書=> テスターはTBB / BDDアプローチにどのように関与していますか
なぜBDDフレームワークを使用するのですか?
BDDフレームワークの前は、誰もがTDDを使用していました。 TDDは、利害関係者が使用されているフレームワークに精通しており、技術的な知識が十分であれば、ソフトウェア開発で正常に機能します。ただし、これが常に当てはまるとは限りません。
テストケースは通常、英語などの単純なテキストで記述されているため、BDDは、技術チームと非技術チームの間のギャップを克服するためのブリッジとして機能するパスを提供します。 BDDの主な利点は、専門用語が少なく、理解しやすい明確なアプローチです。
BDDアプローチを実装する方法は?
テストシナリオは、テストの詳細な説明、アプリケーションのテスト方法、およびすべての人が理解できるアプリケーションの動作とともに、わかりやすい言語で作成する必要があります。
このチュートリアルでは、 きゅうり – BDD用のソフトウェアツールであり、その言語、つまりGherkinを使用して実際に実装する方法を学習します。
キュウリ–BDDフレームワークツール
Cucumberは、テストケースを作成するためのBehavior Driven Development(BDD)フレームワークツールです。
与えられた–いつ–その後アプローチ
- 与えられた: いくつかの特定のコンテキスト(前提条件)。
- いつ: いくつかのアクションが実行されます(アクション)。
- 次に: 上記のステップの後の特定の結果/結果(結果)。
サンプル機能ファイル
Feature : BDD implementation using Cucumber Scenario : Login to G-mail using Cucumber plugin Given User is navigating to G-mail Login Page When User need to enter username as 'Username' and password as 'Password' Then User is successfully navigated to the G-mail Mail Box
サンプルステップ定義ファイル
import cucumber.api.java.en.Given; import cucumber.api.java.en.Then; import cucumber.api.java.en.When; public class Sample { @Given('^User is navigating to G-mail Login Page$') public void user_is_navigating_to_G_mail_Login_Page() throws Throwable { // Write code here that turns the phrase above into concrete actions } @When('^User need to enter username as '((^')*)' and password as '((^')*)'$') public void user_need_to_enter_username_as_and_password_as(String arg1, String arg2) throws Throwable { // Write code here that turns the phrase above into concrete actions } @Then('^User is successfully navigated to the G-mail Mail Box$') public void user_is_successfully_navigated_to_the_G_mail_Mail_Box() throws Throwable { // Write code here that turns the phrase above into concrete actions } }
Cucumberは、ビヘイビア駆動開発アプローチの実装を支援するテストプラグインです。
推奨読書=> あなたが知っておくべきトップBDDツール
BDDフレームワークの利点
以下に、BDDのさまざまな利点を示します。
#1)ユーザーストーリーの報道
BDDを使用したハイブリッドフレームワークは、さまざまな機能と組み合わせることを目的としています。ソフトウェア開発フェーズのすべてのリソースは、BDDフレームワークに貢献できます。
機能ファイル形式の素人テキストの概念が簡単なため、技術リソースの利害関係者は、ユーザーストーリーを使用してガーキン言語でシナリオを作成できます。プレーンテキストの互換性は、テストを最大限にカバーするのに役立ちます。
シナリオを含む機能ファイルは次のとおりです。
- ビジネスから定義されたユーザーストーリー。
- 仕様がビジネス要件を満たしているかどうかを開発者が判断するための基準。
- テストチームのテストシナリオ。
- 自動化テスターのシェルカバー。これにより、ステップ定義ファイルにコードを個別に書き込むことができます。
- 利害関係者向けのテストシナリオの説明。
ステップ定義の分類は、自動化テスターがコードに手を加えないようにするのに役立ち、それによってスクリプトの保守に役立ちます。
#2)シナリオの明確さ
Gherkin言語は、BDDを使用してテスト/開発されている製品の結果に焦点を当てたプレーンな素人テキストを使用します。
機能ファイルは、自動化テスター用の異なるステップ定義ファイルで技術的な説明を分離するため、技術者でない人が自動化されたテストを簡単に理解するのに役立ちます。更新は、小さなディスカッションで実装できます。
ガーキンの読みやすさは、各ユーザーにシナリオの明確さを保証し、それが適切な製品の構築に役立ちます。
#3)テストシナリオの自動化
BDDフレームワークでのキュウリの実装により、自動化テスターは適切なアプローチでスクリプトを簡単に開始できます。きゅうりのシナリオの簡単な言葉遣いは、彼らがより良い方法で機能を理解するのに役立ちます。
Cucumberは、多くのプログラミング言語と互換性があるため、言語に依存しないプラグインです。 例えば。 Java 、 Python 、など。
また読む=> BDDツールを使用した自動化テスト
#4)フレームワークでのコードの再利用
与えられた–いつ–その後のアプローチは、自動化テスターの時間を節約するのに徐々に役立つ機能ファイルで必要な回数だけ同じステップを使用する自由をテスターに与えます。
ジェンキンスは経験豊富な人のための質問と回答をインタビューします
例:
シナリオ:シナリオ1
与えられた ユーザーはGoogleホームページに移動します
いつ ユーザーが検索エンジンで「キュウリ」を検索した
次に 検索ボタンをクリックしました
そして ユーザーはウェブブラウザでキュウリの検索結果を見ることができます
シナリオ:シナリオ2
与えられた ユーザーはGoogleホームページに移動します
いつ ユーザーが検索エンジンで「Selenium」を検索した
次に 検索ボタンをクリックしました
そして ユーザーはWebブラウザでSeleniumの検索結果を見ることができます
上記の2つのシナリオでは、次のように結論付けることができます。 与えられた」、 「」 いつ 」と「 次に 」ステップは、2番目のシナリオで再利用できます。
#5)フィーチャファイルのパラメータ化
ユーザーは、機能ファイルのガーキンステップをパラメーター化して、ファイルの再利用性を取得できます。
例えば、 ユーザーが銀行のアプリケーションで作業していて、アプリケーションに何度もログインしている場合。このような種類のステップは、異なるデータセットでパラメーター化でき、テスターの時間を節約できます。
シナリオを作成するとき、ユーザーは、共通の機能を簡単に使用できるように、機能ファイルのステップをそのように定義する必要があります。
#6)継続的インテグレーション–統合が容易
Cucumberは、Jenkinsの操作もサポートしています。 Jenkinsでキュウリのテスト実行を実行し、Jenkinsスレーブマシンにも同じことを実装できます。キュウリレポートプラグインは、テストシナリオを追跡するための拡張ビューもユーザーに提供します。
読む価値がある=> 継続的インテグレーションプロセス
結論
ビヘイビア駆動開発は、 アジャイル手法 。 BDDを使用すると、さまざまなテクノロジーと独立して動作するためのプラットフォームが提供されるため、BDDを使用して開発またはテストを開始することを常にお勧めします。
Cucumberは、ソフトウェアプロジェクトにビヘイビア駆動開発アプローチを実装するのに役立つ最高のツールの1つです。これにより、多くのテクノロジーを使用できるようになります 例えば。 Java、Python、Jythonなど。
キュウリは多くの組織やフリーランサーによって広く使用されており、ユーザーが問題について話し合い、問題の解決策を簡単に見つけることができる多くのコミュニティもあります。
キュウリの言語–単純な平易な英語の単語を使用するGherkin –は、技術チームと利害関係者の間のコミュニケーションのギャップを減らし、同じレベルで協力できるようにします。
この記事がBDDフレームワークの基本を理解するのに役立つことを願っています!!
推奨読書
- テスターがTDD、BDD、ATDD技術にどのように関与しているか
- 8つのベストビヘイビア駆動開発(BDD)ツールとテストフレームワーク
- Cucumber ToolとSeleniumを使用した自動化テスト– Seleniumチュートリアル#30
- アジャイル手法:アジャイル手法とスクラムの初心者向けガイド
- Specflowチュートリアル:BDDツールの究極のガイド
- 継続的インテグレーションプロセス:ソフトウェアの品質を向上させ、リスクを軽減する方法
- Cucumber Seleniumチュートリアル:Cucumber Java SeleniumWebDriverの統合
- 2021年の15のベスト継続的インテグレーションツール(比較)