Pregunta

Hace poco oí hablar de BDD y lo encontré muy similar a TDD.

¿Cuál de estos dos usas (si corresponde)?

¿Y cuáles son los pros y los contras de cada uno?

¿Fue útil?

Solución

Soy muy partidario del campamento BDD = TDD hecho correctamente.Si estás haciendo TDD como lo describió originalmente Beck, y como lo practican muchos, entonces esencialmente no hay diferencia.

Lo que BDD aporta son algunas variantes interesantes en el lenguaje utilizado para describir el proceso.Al utilizar terminología alternativa en las descripciones del proceso y las herramientas, la gente de BDD espera fomentar mejores prácticas, un objetivo loable.

He estado haciendo TDD durante tanto tiempo que me resulta difícil juzgar si esto realmente ayuda.Creo (espero :-) que ya he aprendido muchas de las lecciones que fomentan las herramientas/lenguaje BDD, por lo que no parecen proporcionarme mucho valor adicional.Por supuesto, YMMV, y no he realizado ningún proyecto completo del "mundo real" utilizando herramientas BDD, por lo que podría estar llevando mis experimentos personales y extrapolando demasiado lejos.

Identificación adivinar que las herramientas/lenguaje BDD pueden ser más útiles para las personas que se inician en esta forma de abordar el desarrollo, ya que evitan toda la confusión con el uso de "prueba" en el sentido más tradicional.Yo todavía no lo he hecho y me interesaría saber si la gente de aquí ha tenido alguna experiencia similar.

Otros consejos

BDD es similar a TDD pero con una mentalidad diferente.En BDD estás intentando crear especificaciones ejecutables en lugar de pruebas.Esto se logra principalmente mediante el uso de un vocabulario diferente pero con una mecánica similar a la de TDD.

BDD parece ser una reacción a muchos casos en los que las personas afirmaban estar haciendo TDD pero escribían pruebas de integración en lugar de pruebas unitarias.La gente de BDD pensaba que hablar de pruebas era engañoso y por eso las pruebas se convirtieron en especificaciones.Esto parece un poco metafísico pero hay algunas buenas ideas detrás.

BDD se trata de ejecutar los escenarios.Al igual que en TDD, probaremos todos y cada uno de los escenarios como una historia.

La historia será explicada por el cliente.En base a la trama se escribirán los escenarios.Herramientas como CUCUMBER facilitaron la escritura de escenarios.

TDD y BDD son prácticamente iguales.La diferencia es cómo lo explicamos y, por lo tanto, qué tan exitosos terminan siendo los equipos al lograr que funcione para ellos.

BDD se basa en TDD al formalizar los buenos hábitos de los mejores practicantes de TDD.TDD es una herramienta o guía para desarrolladores para escribir buen software y BDD es una buena herramienta para ayudar fuera en el desarrollo con una mayor participación de la empresa, ya que se desarrolla utilizando un lenguaje ubicuo.

Mi experiencia es que BDD ayuda en la colaboración, y el uso de especificaciones ejecutables y legibles para el negocio ayuda a construir un lenguaje compartido cuando todos los miembros del equipo participan en la redacción de documentación que describe lo que debe hacer el sistema.Esto ayuda a todo el equipo a aprender juntos el idioma del dominio.

BDD es lo que se necesita para que TDD tenga éxito.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top