Rozwój oparty na zachowaniu - narzędzia

Zespoły programistyczne często mają błędne przekonanie, że BDD jest strukturą narzędziową. W rzeczywistości BDD jest podejściem programistycznym, a nie ramą narzędziową. Jednak, podobnie jak w przypadku innych podejść rozwojowych, istnieją również narzędzia dla BDD.

Kilka narzędzi BDD jest używanych dla różnych platform i języków programowania. Oni są -

  • Cucumber (framework Ruby)

  • SpecFlow (platforma .NET)

  • Behave (Python framework)

  • JBehave (platforma Java)

  • JBehave Web (framework Java z integracją Selenium)

  • Sałata (framework Pythona)

  • Concordion (framework Java)

  • Behat (framework PHP)

  • Kahlan (framework PHP)

  • DaSpec (framework JavaScript)

  • Jasmine (framework JavaScript)

  • Cucumber-js (framework JavaScript)

  • Squish GUI Tester (narzędzie do testowania GUI BDD dla JavaScript, Python, Perl, Ruby i Tcl)

  • Spock (Groovy framework)

  • Yadda (obsługa języka Gherkin dla frameworków takich jak Jasmine (framework JavaScript))

Ogórek

Cucumber to bezpłatne narzędzie do specyfikacji plików wykonywalnych używane na całym świecie. Cucumber pozwala zespołom programistycznym opisywać, jak oprogramowanie powinno zachowywać się zwykłym tekstem. Tekst jest napisany w czytelnym dla biznesu języku specyficznym dla domeny i służy jako dokumentacja, testy automatyczne i pomoc w rozwoju, a wszystko to w jednym formacie. Z ogórkiem możesz używać ponad czterdziestu różnych języków (angielski, chiński itp.).

Ogórek - kluczowe cechy

Kluczowe cechy ogórka są następujące -

  • Ogórek może być używany do specyfikacji wykonywalnych, automatyzacji testów i żywej dokumentacji.

  • Cucumber współpracuje z Ruby, Java, NET, Flex lub aplikacjami internetowymi napisanymi w dowolnym języku.

  • Ogórek obsługuje bardziej zwięzłe testy w tabelach - podobnie do tego, co robi FIT.

  • Cucumber zrewolucjonizował cykl życia oprogramowania poprzez połączenie wymagań, zautomatyzowanych testów i dokumentacji w jedną spójną: specyfikacje plików wykonywalnych w postaci zwykłego tekstu, które weryfikują oprogramowanie.

SpecFlow

SpecFlow to narzędzie BDD dla platformy .NET. SpecFlow to projekt typu open source. Kod źródłowy jest hostowany na GitHub.

SpecFlow używa składni Gherkin dla funkcji. Format Gherkin został wprowadzony przez Cucumber i jest również używany przez inne narzędzia. Język Gherkin jest utrzymywany jako projekt na GitHub -https://github.com/cucumber/gherkin

Zachowywać się

Zachowanie jest używane we frameworku Pythona.

  • Zachowanie działa z trzema typami plików przechowywanych w katalogu o nazwie „funkcje” -

    • pliki funkcji z twoimi scenariuszami zachowania.

    • Katalog „steps” z implementacjami kroków Pythona dla scenariuszy.

    • Opcjonalnie niektóre kontrole środowiskowe (kod uruchamiany przed i po krokach, scenariusze, funkcje lub cały mecz strzelecki).

  • Funkcje zachowania są napisane przy użyciu Gherkina (z pewnymi modyfikacjami) i noszą nazwę „nazwa.funkcja”.

  • Tagi dołączone do funkcji i scenariusza są dostępne w funkcjach środowiska za pośrednictwem przekazanego do nich obiektu „feature” lub „scenario”. Na tych obiektach znajduje się atrybut o nazwie „tagi”, który jest listą dołączonych nazw tagów, w kolejności, w jakiej znajdują się w pliku właściwości.

  • Modyfikacje standardu Gherkin -

    • Behave może analizować standardowe pliki Gherkin i rozszerza Gherkin, aby zezwolić na słowa kluczowe składające się z małych liter, ponieważ czasami pozwalają one na bardziej czytelne specyfikacje funkcji

Sałata

Sałata to bardzo proste narzędzie BDD oparte na ogórku. Może wykonywać opisy funkcjonalne w postaci zwykłego tekstu jako testy automatyczne dla projektów w języku Python. Sałata ma na celu wykonanie najczęstszych zadań na BDD.

Concordion

Concordion to narzędzie typu open source do automatyzacji specyfikacji na podstawie przykładów dla środowiska Java.

Chociaż podstawowe funkcje są proste, potężny interfejs API platformy rozszerzeń umożliwia dodawanie funkcji, takich jak używanie arkuszy kalkulacyjnych programu Excel jako specyfikacji, dodawanie zrzutów ekranu do danych wyjściowych, wyświetlanie informacji o rejestrowaniu itp.

Concordion umożliwia pisanie specyfikacji w normalnym języku przy użyciu akapitów, tabel i właściwej interpunkcji, a ustrukturyzowany język przy użyciu opcji Given / When / Then nie jest konieczne.

Concordion został przeniesiony do innych języków, w tym -

  • C # (Concordion.NET)

  • Python (PyConcordion)

  • Ruby (Ruby-Concordion)