Desarrollo impulsado por el comportamiento: herramientas
Los equipos de desarrollo a menudo tienen la idea errónea de que BDD es un marco de herramientas. En realidad, BDD es un enfoque de desarrollo más que un marco de herramientas. Sin embargo, como en el caso de otros enfoques de desarrollo, también existen herramientas para BDD.
Varias herramientas BDD están en uso para diferentes plataformas y lenguajes de programación. Ellos son -
Pepino (marco rubí)
SpecFlow (marco .NET)
Behave (marco de Python)
JBehave (marco de Java)
JBehave Web (marco Java con integración de Selenium)
Lechuga (marco de Python)
Concordion (marco de Java)
Behat (marco PHP)
Kahlan (marco PHP)
DaSpec (marco de JavaScript)
Jasmine (marco de JavaScript)
Cucumber-js (marco de JavaScript)
Squish GUI Tester (herramienta de prueba BDD GUI para JavaScript, Python, Perl, Ruby y Tcl)
Spock (marco Groovy)
Yadda (compatibilidad con el lenguaje Gherkin para marcos como Jasmine (marco JavaScript))
Pepino
Cucumber es una herramienta gratuita para especificaciones ejecutables que se utilizan a nivel mundial. Cucumber permite que los equipos de desarrollo de software describan cómo debe comportarse el software en texto plano. El texto está escrito en un lenguaje específico de dominio legible para empresas y sirve como documentación, pruebas automatizadas y ayuda para el desarrollo, todo en un formato. Puede utilizar más de cuarenta idiomas hablados diferentes (inglés, chino, etc.) con Cucumber.
Pepino - Características principales
Las características clave de Pepino son las siguientes:
El pepino se puede utilizar para especificaciones ejecutables, automatización de pruebas y documentación viva.
Cucumber funciona con Ruby, Java, NET, Flex o aplicaciones web escritas en cualquier idioma.
El pepino admite pruebas más concisas en tablas, similar a lo que hace FIT.
Cucumber ha revolucionado el ciclo de vida del desarrollo de software al fusionar los requisitos, las pruebas automatizadas y la documentación en uno coherente: especificaciones ejecutables de texto sin formato que validan el software.
SpecFlow
SpecFlow es una herramienta BDD para la plataforma .NET. SpecFlow es un proyecto de código abierto. El código fuente está alojado en GitHub.
SpecFlow utiliza la sintaxis Gherkin para las funciones. El formato Gherkin fue introducido por Cucumber y también lo utilizan otras herramientas. El lenguaje Gherkin se mantiene como un proyecto en GitHub -https://github.com/cucumber/gherkin
Comportarse
Behave se utiliza para el marco de Python.
Behave funciona con tres tipos de archivos almacenados en un directorio llamado "características":
archivos de características con sus escenarios de comportamiento en él.
Directorio de "pasos" con implementaciones de pasos de Python para los escenarios.
Opcionalmente, algunos controles ambientales (código para ejecutar antes y después de los pasos, escenarios, funciones o todo el partido de disparo)
Las características de Behave están escritas usando Gherkin (con algunas modificaciones) y se denominan "name.feature".
Las etiquetas adjuntas a una característica y un escenario están disponibles en las funciones del entorno a través del objeto "característica" o "escenario" que se les pasa. En esos objetos hay un atributo llamado "etiquetas" que es una lista de los nombres de las etiquetas adjuntas, en el orden en que se encuentran en el archivo de características.
Modificaciones al estándar de pepinillo -
Behave puede analizar archivos Gherkin estándar y extiende Gherkin para permitir palabras clave de paso en minúsculas porque a veces pueden permitir especificaciones de características más legibles
Lechuga
La lechuga es una herramienta BDD muy simple basada en Pepino. Puede ejecutar descripciones funcionales de texto sin formato como pruebas automatizadas para proyectos de Python. Lechuga tiene como objetivo las tareas más habituales en BDD.
Concordion
Concordion es una herramienta de código abierto para automatizar la especificación por ejemplo para Java Framework.
Si bien las características principales son simples, la API del marco de extensión de gran alcance le permite agregar funcionalidad, como usar hojas de cálculo de Excel como especificaciones, agregar capturas de pantalla a la salida, mostrar información de registro, etc.
Concordion le permite escribir las especificaciones en lenguaje normal usando párrafos, tablas y la puntuación adecuada y el lenguaje estructurado usando Given / When / Then no es necesario.
Concordion se ha portado a otros idiomas, incluidos:
C # (Concordion.NET)
Python (PyConcordion)
Ruby (Ruby-Concordion)