Mar 23 2009
Artículos sobre TDD
Una de las preguntas (o mejor decir peticiónes) que normalmente me hacen cuando doy una presentación o seminario sobre TDD es si hay (y si los puedo mandar) estudios sobre cómo TDD mejora la calidad del software y el rendimiento de los equipos o los programadores.
No hay muchos artículos todavía si lo comparamos con otros métodos o técnicas, eso es cierto, pero sí que hay algunos. Además, cada vez hay más interés por TDD y por tanto más investigadores están trabajando en ello con lo que pronto, esperemos, habrá más estudios disponibles.
Esta es la lista de artículos (en inglés) que doy como referencia:
- “Test-Driven Development as a Defect-Reduction Practice“, Williams L. et al.
- “Test-Driven Development: Concepts, Taxonomy, and Future Direction“, Jansen, D. and Saiedian, H.
- “An Initial Investigation of Test Driven Development in Industry“, George, B. and Williams L.
- “A Longitudinal Study of the Use of a Test-Driven Development Practice in Industry“, Sánchez, J.C. et al.
- “On the Effectiveness of Test-first Approach to Programming“, Erdogmos, H.
- “Realizing Quality Improvement through Test Driven Development: Results and Experiences of Four Industrial Teams“, Nagappan, N. et al.
- “Software Architecture Improvement through Test Driven Development“, Jansen, D.
- “Test Driven Development: Empirical Body of Evidence“, Siniaalto, M.
Si conocéis más, por favor, mandadme el enlace o el artículo en sí. Os lo agradecería mucho.

Marzo 24th, 2009 at 12:13 am
¿Alguno de estos artículos explica que la mejora en la calidad del software desarrollado con TDD estriba en que se mejora el diseño del mismo? ¿Y por qué? Yo diría que porque se piensa “a poquitos” qué es lo que quiero que haga “un objeto”, luego se implementa y finalmente se mejora el conjunto (si ha lugar). Red-Green-Refactor!
Por cierto, también mejora la mantenibilidad del software puesto que lo dota de ejemplos de uso perfectamente documentados (con buenos nombres de métodos de test) y actualizados (o no estarían en verde). ¿Alguien da más?
Marzo 24th, 2009 at 12:28 pm
Lo digo de memoria (hace ya tiempo que los he leído) pero creo recordar que sí se mencionan explicitamente mejoras en el diseño en alguno de ellos (échale un vistado a “Software Architecture…” si tienes tiempo)
Todo lo que dices lo menciono (y lo repito muuuuuchas veces) en los cursos. Incluso hay una transparencia con sólo una frase bien grandota “TDD no es sólo testing, es una metodología de diseño”. Pero de todo esto, con lo que más se quedan (es curioso que da igual que sean programadores o más tirando a managers) es con el esfuerzo que requiere y con la mejora en la calidad y/o rendimiento.
Marzo 24th, 2009 at 1:48 pm
Añadiría sobre la mantenabilidad que los cambios son muchos más fáciles al estar soportados por test unitarios (si la cagas, salta el chivato) y, además, si al hacer un cambio se mete la pata, el error está muy localizado (los test unitarios cubren pocas líneas de código a la vez) con lo que su arreglo es mucho más fácil y menos costoso.