Recientemente descubrí cuánto me gusta desarrollar código de la manera TDD: siento que tengo mucho más control sobre la dirección en que se desarrolla el desarrollo. Mientras que antes pasaba mucho tiempo diseñando estructuras de datos y algoritmos por adelantado, ahora empiezo de a poco y "hago crecer" mi código de forma orgánica. Después de cada ciclo rojo/verde/refactor tengo código que hace algo. Siento que mi código es algo vivo y estoy dirigiendo hacia dónde debería crecer. No sé si así es como todos se sienten cuando entran en TDD, pero esta es mi experiencia. Y me sorprende que esto sea tan similar al éxito de los proyectos de software libre en lugar de diseñarlos.¿Cuáles son los límites de TDD?
Sin embargo, ahora que tengo un problema con el desarrollo basado en pruebas, estoy empezando a preguntarme cuáles son sus límites. Parece ser bastante útil para desarrollar código funcional: alimente esta entrada a esa función, y obtendrá este resultado. Pero esto es solo una pequeña parte de lo que trata el desarrollo de software. ¿Qué hay de desarrollo de GUI, redes, desarrollo de bases de datos, aplicaciones web? ¿Cuál es tu experiencia? ¿Alguna vez has probado TDD con cualquiera de estos tipos de desarrollo? ¿Conoces alguna herramienta o marco? ¿Puedes recomendar algún artículo o libro?
La generación automática de pruebas NO es el objetivo de TDD. De hecho, una vez que las pruebas se autogeneran, el punto se pierde. TDD es una herramienta de diseño, no una herramienta de prueba. –
-1 debido a malentendidos del concepto TDD –
TDD es prueba Driven Design, ¿o no? Grails proporciona un entorno que ofrece suites para TDD. Es decir. te hace la vida más fácil. – Luixv