Behavior-driven-development-tools
行動駆動開発-ツール
開発チームは、多くの場合、BDDはツールフレームワークであると誤解しています。 実際には、BDDはツールフレームワークではなく開発アプローチです。 ただし、他の開発アプローチの場合と同様に、BDD用のツールもあります。
さまざまなプラットフォームおよびプログラミング言語でいくつかのBDDツールが使用されています。 彼らは-
- キュウリ(Rubyフレームワーク)
- SpecFlow(.NETフレームワーク)
- 動作(Pythonフレームワーク)
- JBehave(Javaフレームワーク)
- JBehave Web(Seleniumと統合されたJavaフレームワーク)
- レタス(Pythonフレームワーク)
- 一致(Javaフレームワーク)
- Behat(PHPフレームワーク)
- Kahlan(PHPフレームワーク)
- DaSpec(JavaScriptフレームワーク)
- ジャスミン(JavaScriptフレームワーク)
- Cucumber-js(JavaScriptフレームワーク)
- Squish GUIテスター(JavaScript、Python、Perl、Ruby、Tcl用のBDD GUIテストツール)
- Spock(Groovyフレームワーク)
- ヤダ(ジャスミン(JavaScriptフレームワーク)などのフレームワークのガーキン言語サポート)
きゅうり
Cucumberは、世界中で使用される実行可能な仕様のための無料のツールです。 Cucumberを使用すると、ソフトウェア開発チームはソフトウェアの動作をプレーンテキストで説明できます。 テキストは、ビジネスで読み取り可能なドメイン固有の言語で記述されており、ドキュメント、自動テスト、および開発支援として機能し、すべて1つの形式にまとめられています。 Cucumberでは、40以上の異なる言語(英語、中国語など)を使用できます。
キュウリ–主な機能
キュウリの主な機能は次のとおりです-
- キュウリは、実行可能仕様、テスト自動化、およびリビングドキュメントに使用できます。
- Cucumberは、Ruby、Java、NET、Flex、または任意の言語で書かれたWebアプリケーションで動作します。
- Cucumberは、FITが行うことと同様に、テーブルでより簡潔なテストをサポートします。
- Cucumberは、要件、自動化されたテスト、ドキュメントを結合して、ソフトウェアを検証するプレーンテキストの実行可能仕様にすることで、ソフトウェア開発ライフサイクルに革命をもたらしました。
SpecFlow
SpecFlowは、.NETプラットフォーム用のBDDツールです。 SpecFlowはオープンソースプロジェクトです。 ソースコードはGitHubでホストされています。
SpecFlowはGherkin Syntax for Featuresを使用します。 Gherkin形式はCucumberによって導入され、他のツールでも使用されています。 Gherkin言語はGitHubのプロジェクトとして維持されています-https://github.com/cucumber/gherkin
振る舞う
BehaveはPythonフレームワークに使用されます。
- 動作は、「機能」と呼ばれるディレクトリに格納されている3種類のファイルで動作します-
- 動作シナリオを含む機能ファイル。
- シナリオのPythonステップ実装を含む「steps」ディレクトリ。
- オプションで、一部の環境制御(ステップ、シナリオ、機能、または射撃の全体の前後に実行するコード)。
- 振る舞い機能は、Gherkinを使用して(いくつかの変更を加えて)作成され、「name.feature」という名前が付けられます。
- 機能およびシナリオに添付されたタグは、それらに渡された「機能」または「シナリオ」オブジェクトを介して環境機能で使用できます。 これらのオブジェクトには、「タグ」と呼ばれる属性があります。これは、機能ファイルで見つかった順序で添付されたタグ名のリストです。
- ガーキン標準の修正-
- Behaveは、標準のGherkinファイルを解析し、Gherkinを拡張して小文字のステップキーワードを許可します。これらは、より読みやすい機能仕様を許可する場合があるためです。
レタス
レタスは、キュウリに基づいた非常にシンプルなBDDツールです。 Pythonプロジェクトの自動テストとしてプレーンテキストの機能記述を実行できます。 レタスは、BDDで最も一般的なタスクを目指しています。
一致
Concordionは、Java Frameworkの例による仕様を自動化するためのオープンソースツールです。
コア機能はシンプルですが、link:/concordion/index [強力な拡張フレームワークAPI]を使用すると、Excelスプレッドシートを仕様として使用したり、スクリーンショットを出力に追加したり、ログ情報を表示したりするなどの機能を追加できます。
Concordionでは、段落、表、適切な句読点を使用して通常の言語で仕様を記述し、Given/When/Thenを使用する構造化言語は不要です。
コンコードは、他の言語に移植されています-
- C#(Concordion.NET)
- Python(PyConcordion)
- Ruby(Ruby-Concordion)