Cabecera personalizada

El blog de Mikel Niño
Emprendimiento digital, startups, Big Data Analytics y nuevos modelos de negocio

Críticas al "Test-Driven Development" (TDD) o Desarrollo Dirigido por Pruebas

En el artículo citado David Heinemeier Hansson critica directamente el principio de "desarrollar primero las pruebas", tachándolo de fundamentalista y dogmático, y argumentando que su práctica "a rajatabla" perjudicaba la calidad de sus diseños de software y aumentaba la complejidad de su arquitectura, lo que finalmente le llevó a dejar de emplearlo. En su lugar, propone una aproximación diferente que es la que ha venido llevando a cabo para hacer pruebas de sus aplicaciones en Rails. En particular aporta la referencia de Capybara, una "gema" (nombre que reciben los paquetes de código en el lenguaje Ruby) para hacer tests de aplicaciones web simulando la interacción de un usuario real.

Las reacciones a estas críticas de David Heinemeier Hansson no se hicieron esperar. Martin Fowler recoge en su web las grabaciones de audio y vídeo (así como un resumen escrito de los aspectos principales tratados) de las conversaciones a tres bandas que, pocos días después de la publicación del artículo, mantuvo con David Heinemeier Hansson y con el propio Kent Beck (como ya indicábamos en un anterior post, el ideólogo del "Extreme Programming" y del desarrollo dirigido por pruebas). La revisión de dichas conversaciones nos permite indagar en el detalle de los puntos criticados por David Heinemeier Hansson (por ejemplo el exceso de "objetos simulados" construidos para las pruebas y que llevan a una mayor complejidad del diseño y a no hacer pruebas en condiciones reales de uso). En total se grabaron más de tres horas de conversación entre estos tres grandes expertos, lo que supone una fuente de grandísimo valor para poder encuadrar correctamente las virtudes y limitaciones del TDD.

Otra fuente muy interesante de matices a las críticas de Heinemeier Hansson la tenemos en las aportaciones de Robert Martin en el blog de su compañía 8th Light. En dichas entradas tenemos reflexiones interesantes acerca del potencial del TDD (y en qué casos las propuestas alternativas de Heinemeier Hansson pueden ser igual de válidas) y también acerca de los casos en los que efectivamente el TDD sufre de importantes limitaciones, como en contextos de entrada/salida de datos y de interacción directa con personas u objetos en el mundo real.

No hay comentarios:

Publicar un comentario