Behavior Driven Development - Инструменты

Команды разработчиков часто ошибочно полагают, что BDD - это инструментальная структура. На самом деле, BDD - это подход к разработке, а не инструментальная структура. Однако, как и в случае других подходов к разработке, существуют также инструменты для BDD.

Несколько инструментов BDD используются для разных платформ и языков программирования. Они -

  • Cucumber (Рубиновый каркас)

  • SpecFlow (.NET Framework)

  • Вести себя (Python Framework)

  • JBehave (фреймворк Java)

  • JBehave Web (фреймворк Java с интеграцией Selenium )

  • Салат (Python Framework)

  • Concordion (фреймворк Java)

  • Behat (фреймворк PHP)

  • Kahlan (фреймворк PHP)

  • DaSpec (фреймворк JavaScript)

  • Жасмин (фреймворк JavaScript)

  • Cucumber -js (фреймворк JavaScript)

  • Squish GUI Tester (инструмент тестирования BDD GUI для JavaScript, Python, Perl, Ruby и Tcl)

  • Спок (Groovy рамки)

  • Yadda (поддержка языка Gherkin для таких платформ, как Jasmine (фреймворк JavaScript))

Cucumber

Cucumber - это бесплатный инструмент для исполняемых спецификаций, используемый во всем мире. Cucumber позволяет командам разработчиков программного обеспечения описывать, как программное обеспечение должно вести себя в виде простого текста. Текст написан на понятном для бизнеса, предметно-ориентированном языке и служит в качестве документации, автоматизированных тестов и помощи в разработке, все в одном формате. Вы можете использовать более сорока различных разговорных языков (английский, китайский и т. Д.) С Cucumber .

Cucumber - Основные характеристики

Ключевые особенности Cucumber следующие:

  • Cucumber может использоваться для Исполняемых спецификаций, Автоматизации испытаний и Живая документация.

  • Cucumber работает с Ruby, Java, NET, Flex или веб-приложениями, написанными на любом языке.

  • Cucumber поддерживает более сжатые тесты в таблицах - аналогично тому, что делает FIT.

  • Cucumber произвел революцию в жизненном цикле разработки программного обеспечения, объединив требования, автоматизированное тестирование и документацию в единое целое: исполняемые спецификации в виде простого текста, которые подтверждают правильность программного обеспечения.

SpecFlow

SpecFlow - это инструмент BDD для платформы .NET. SpecFlow - проект с открытым исходным кодом. Исходный код размещен на GitHub.

SpecFlow использует синтаксис Gherkin для функций. Огурец формат был представлен Cucumber и также используется другими инструментами. Язык Gherkin поддерживается как проект на GitHub - https://github.com/cucumber/gherkin

Вести себя

Поведение используется для платформы Python.

  • Behave работает с тремя типами файлов, которые хранятся в каталоге, называемом «функции» -

    • файлы функций с вашими сценариями поведения в нем.

    • Каталог «steps» с реализациями шагов Python для сценариев.

    • По желанию, некоторые элементы управления средой (код для запуска до и после шагов, сценарии, функции или весь матч съемки).

  • Функции поведения написаны с использованием Gherkin (с некоторыми изменениями) и называются «name.feature».

  • Теги, прикрепленные к объекту и сценарию, доступны в функциях среды через переданный им объект «объект» или «сценарий». На этих объектах есть атрибут, называемый «тегами», который представляет собой список прикрепленных имен тегов в том порядке, в котором они находятся в файле функций.

  • Изменения к стандарту корнишон -

    • Behave может анализировать стандартные файлы Gherkin и расширяет Gherkin, позволяя вводить ключевые слова в нижнем регистре, поскольку иногда они позволяют получить более удобочитаемые спецификации функций

Салат

Салат - очень простой инструмент BDD на основе Cucumber . Он может выполнять текстовые функциональные описания в виде автоматических тестов для проектов Python. Салат направлен на наиболее распространенные задачи на BDD.

Concordion

Concordion - это инструмент с открытым исходным кодом для автоматизации спецификации на примере для Java Framework.

Хотя основные функции просты, API-интерфейс инфраструктуры Powerful позволяет добавлять функциональные возможности, такие как использование электронных таблиц Excel в качестве спецификаций, добавление снимков экрана к выводу, отображение информации журналов и т. Д.

Concordion позволяет вам писать спецификации на обычном языке с использованием абзацев, таблиц и правильной пунктуации, а структурированный язык с использованием Given / When / Then не является необходимым.

Concordion был портирован на другие языки, включая -

  • C # ( Concordion .NET)

  • Python (Py Concordion )

  • Рубин (Руби-Конкордеон)