He estado proponiendo que mi lugar de trabajo implemente el desarrollo impulsado por el comportamiento, al escribir especificaciones de alto nivel en un formato de escenario, y de tal manera que uno pueda imaginar escribir una prueba para ello.BDD/TDD contra JAD?
Sé que trabajar contra las especificaciones comprobables tiende a increase developer productivity. Y ya puedo pensar en varios ejemplos donde este sería el caso en nuestro propio proyecto.
Sin embargo, es difícil demostrar el valor de esto para el negocio.
Esto se debe a que ya tenemos un proceso de desarrollo de aplicaciones conjuntas (JAD) en el que los desarrolladores, la administración, la experiencia del usuario y los evaluadores se reúnen para acordar un conjunto común de requisitos.
Entonces, se preguntan, ¿por qué los desarrolladores deberían trabajar contra los casos de prueba creados por los evaluadores? Estos son para verificación y se basan en las especificaciones de nivel superior creadas por el equipo de UX, que los desarrolladores actualmente trabajan.
Esto, dicen, es suficiente para los desarrolladores y no es necesario cambiar la forma en que se escriben las especificaciones.
Parecen tener un punto.
¿Cuál es el beneficio real de BDD/TDD, si ya tiene un equipo de prueba cuyos casos de prueba son totalmente compatibles con las especificaciones de alto nivel que actualmente se les dan a los desarrolladores?
O podría emplear contexto de estructura de la especificación como MSpec en lugar de TDD. Entra en la mentalidad de BDD y los informes en inglés que produce. Si las personas ven informes de pruebas unitarias y desearían tener informes tan expresivos para sus pruebas de nivel superior, puedes simplemente venderlos BDD de esa manera. – nick
@nick: +1 - o pepino, ajuste o rspec, dependiendo ... –
Sí totalmente de acuerdo. Usé MSpec como un ejemplo de una de esas herramientas con las que estoy familiarizado. Si trabajas con ruby, obtienes mucha ayuda de la comunidad con RSpec en comparación con MSpec en .NEt. – nick