¿Como BDD puede ayudar a validar historias de usuario?
¿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.[cucumber](https://cucumber.io/)
![ejemplo](https://cucumber.io/images/front-page/feature.png)
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
![alt](https://cucumber.io/images/front-page/calculator_steps.png)
ejecutamos la herramienta
![alt](https://cucumber.io/images/front-page/failing.png)
agregamos el código para que funcione
![alt](https://cucumber.io/images/front-page/calculator.png)
volvemos a correr codigo
![alt](https://cucumber.io/images/front-page/pending.png)
repetimos los pasos 2-6 hasta que pasen las pruebas
![alt](https://cucumber.io/images/front-page/passing.png)
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
ejecutamos la herramienta hasta que sea de color verde como el cucumber o "pepino"
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/
Comentarios: