Por lo tanto, soy nuevo en Agile, pero no desarrollo dirigido por pruebas . Mis profesores en la universidad tenían que ver con la idea de las pruebas y luego el código y luego las pruebas. No estoy seguro de entender por qué. Desde mi perspectiva, es mucho el costo inicial que probablemente se modificará a medida que su código evolucione.
Así es como me imagino TDD y por qué me confunde. Si tuviera que construir una casa como contratista de TDD.
-
Dame todas tus especificaciones (historias).
-
Obtenga aprobación sobre las especificaciones.
-
Desglosar todas las especificaciones en inspección, creo que las necesitaré (ver en el futuro).
-
Llame a un inspector para ver esos puntos y dígame en este momento que estoy fallando la inspección (gracias).
-
Comienza a construir la casa.
-
Llame al inspector a diario (pasando 2/100).
-
Oh, dispara, hubo un problema con mi entendimiento y ahora necesito agregar 9 inspecciones más y cambiar 27 de ellas.
-
Inspector de llamadas que pasa 1/109.
-
Maldita sea. ¿Por qué no le gusta al inspector este ... oh, actualicé el nombre del método ...
-
Construye un poco más.
-
UGGGGHHHH MÁS CAMBIOS Déjame actualizar al maldito inspector. Oh, estoy fallando no s ** t.
-
¿Ya terminé?
Bien, eso puede ser extravagante, pero simplemente no veo cómo debo conocer todos mis métodos y cómo funcionarán las cosas hasta que mi código esté allí. El 99% del tiempo tengo que regresar y actualizar una prueba de unidad de alguna manera y agregar más a medida que avanzo. Simplemente parece al revés.
Lo que parece más apropiado es el DDT o las pruebas impulsadas por el desarrollo, que es algo que la comunidad casi ha olvidado al respecto.
A mi entender, el DDT para una casa se vería así:
-
Dame todas tus especificaciones (historias).
-
Obtenga aprobación sobre las especificaciones y divídalos.
-
Inicia una unidad (la fundación).
-
Tome notas (comentarios) de alguna lógica complicada.
-
Al final, antes de comenzar la siguiente unidad, haga la inspección (cree una prueba).
-
Corrija cualquier problema encontrado e inspeccione nuevamente.
-
Aprobó esta unidad para pasar a la siguiente.
Si todos somos honestos, ¿no suena más humano y centrado en el desarrollador y el negocio? Parece que los cambios se pueden hacer más rápido y sin la sobrecarga que TDD parece crear.