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