¿Como BDD puede ayudar a validar historias de usuario?

#rails   #BDD   #agile   #Test  

¿Que es BDD?

Behavior-Driven Development o desarrollo dirigido por comportamiento, es una manera diferente de hacer Test a nuestras aplicaciones.

DBB es un refinamiento de las técnicas TDD y ATDD fuente: agile alliance

¿A que nos referimos con test de comportamientos?

al momento de hacer DBB escribimos pruebas de como serian las interacciones con el sistema que sera desarrollado.

*un ejemplo simple con cucumber:
cucumber
ejemplo

característica Sumar
con el fin de evitar errores tontos
yo quiero mostrar la suma de dos números

Escenario: sumar dos números
cuando ingrese 50 en la calculadora
Y ingrese 70 en la calculadora
y pulse sumar
entonces el resultado debe mostrar 120 en pantalla


después: agregamos el comportamiento que tiene nuestro escenario


alt
ejecutamos la herramienta

alt
agregamos el código para que funcione

alt
volvemos a correr codigo

alt
repetimos los pasos 2-6 hasta que pasen las pruebas

alt

se puede notar que describimos unas historias en nuestros escenarios y de esta manera podría ser redactado como una historia de usuario.

un ejemplo mas practico:
tenemos una característica que esta inspirada en una historia de usuario que un supervisor necesita registrar un conductor para el manejo de un bus

Feature: manage driver
In order save the data of drivers
As an supervisor
I want register drivers for buses
Scenario: Create Valid Driver
Given I have no drivers
And I am on the list of drivers
When I click "New Driver"
And I fill in "driver_ci" with "5049563"
And I fill in "driver_name" with "Marshall Erickson"
And I fill in "driver_born_at" with "1980/06/14"
And I press "Create"
Then page should have notice message "Driver was successfully created."
seguimos los pasos anteriormente mencionados y la apariencia de la pagina

alt
ejecutamos la herramienta hasta que sea de color verde como el cucumber o "pepino"

alt

codigo fuente en Ruby on Rails

DBB puede ser usado de una manera mas robusta que estos 2 ejemplos simples. Combinar con algunas técnicas como "5 Why?" para construir los escenarios, bueno me despido este post es con fines de aprendizaje.

Referencias:

cucumber: https://cucumber.io/
DBB: http://guide.agilealliance.org/guide/bdd.html
cucumber para ROR: https://github.com/cucumber/cucumber-rails
ROR: http://guides.rubyonrails.org/


Página oficial