¿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.
**un ejemplo simple con cucumber:*
[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

después: agregamos el comportamiento que tiene nuestro escenario

![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

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/

irvin chavalier

irvin chavalier

soy una persona apasionada por la programación con un interés en las tecnologías web. Actualmente soy universitario de la universidad mayor de san simón UMSS y miembro de la SCESI. irvin373@gmail

Read More