Antipatrones de TDD: Serie completa

Si en vez de leer prefieres escuchar, dale al play.

Antipatrones de TDD: Serie completa
6:18

Matheus Marabesi, software craftsperson en Codurance, analiza en profundidad la lista de los 22 antipatrones de TDD recopilada por James Carr. A través de workshops, katas y blogs, Matheus divide la lista en una serie de 6 capítulos para aprender a identificarlos y evitar caer en la trampa de ciertos tests que generan bases de código muy grandes y conducen a procesos de feedback lentos. 

¿Qué es el Desarrollo Guiado por Pruebas (TDD)?

El Desarrollo Guiado por Pruebas (TDD, por sus siglas en inglés) es una práctica de programación algo controvertida que prioriza escribir pruebas automatizadas antes de desarrollar el código. Esta técnica garantiza que cada nueva funcionalidad se valide mediante pruebas antes de su implementación.

El TDD es crucial porque ayuda a mejorar la calidad del software al asegurar que el código se comporta correctamente desde el inicio. Facilita la detección temprana de errores y mejora la mantenibilidad del código a largo plazo.

Si eres nuevo en el Desarrollo Guiado por Pruebas (TDD) o quieres mejorar tus habilidades, te recomendamos leer nuestra guía completa de TDD.

¿Qué es un antipatrón de TDD?

Al desarrollar software y comprender la metodología del Desarrollo Guiado por Pruebas (TDD), es probable cometer errores comunes o malas prácticas que relentizan procesos, sin aportar valor o incluso empeorando la calidad del código. A estos malos hábitos los llamamos 'antipatrones'.

De tal manera, un 'antipatrón de TDD' es una práctica incorrecta o contraproducente dentro del proceso de TDD. 

A continuación te presentamos una serie de 6 capítulos para aprender a identificarlos:

Capítulo 1 - Liar, Excessive setup, Giant y Slow poke 

Iniciamos esta serie con los 4 primeros antipatrones descritos por James Carr: Liar, Excessive setup, Giant y Slow poke. Cada antipatrón tiene un ejemplo de cómo se vería en el código, aprovecha estos ejemplos para identificar si puedes estar cayendo en la trampa. Lee el blog en el que repasamos los primeros 4 antipatrones.

En este primer taller, Cameron Raw, software craftsperson, se une a Matheus Marabesi, para dar una introducción a los antipatrones y hacer un recorrido por los 4 primeros del listado. Echa un vistazo al primer episodio.

Capítulo 2 - Mockery, Inspector, Generous leftovers y Local hero

En esta segunda entrega nos centramos en otros cuatro antipatrones, denominados Mockery, Inspector, Generous leftovers y Local hero. Cada uno de ellos se centra en un aspecto específico del código que dificulta los tests y son una de las razones potenciales por las que las empresas argumentan que no tienen tiempo para construir soluciones basadas en tests. Lee el blog del segundo capítulo.

En el segundo episodio, Javier Martínez Alcántara, craftsman, y Giulio Perrone, software engineer, exploran los 4 antipatrones siguientes de la lista y comparten ideas y experiencias con Matheus. Ver segundo workshop.

Capítulo 3 - Nitpicker, Secret catcher, Dodger y Loudmouth

En este capítulo nos enfocamos en: Nitpicker, Secret catcher, Dodger y Loudmouth. Estos 4 antipatrones se ven a menudo en desarrolladores que tienen poca experiencia escribiendo aplicaciones dirigidas por tests. Así que si estás empezando en TDD ten cuidado con estas 4 trampas.

Juan Pablo Blanco, Head of Engineering en Scentmate by dsm-firmenich, uno de nuestros clientes, nos acompaña en esta tercera sesión en la que analiza, junto a Javier Martínez Alcántara y Matheus, como lucen cada uno de estos antipatrones en el código. Ver el tercer capítulo.

Capítulo 4 - Greedy catcher, Sequencer, Hidden dependency y Enumerator 

Continuando con la serie de antipatrones analizamos 4 más: Greedy catcher, Sequencer, Hidden dependency y Enumerator. Cada uno de ellos se centra en un aspecto específico del código que dificulta las pruebas. A veces se deben a una mala práctica de TDD o a la falta de conocimientos sobre el diseño del código. Encuentra ejemplos de código de estas trampas en el siguiente blog.

En este cuarto episodio Matheus se centra en mostrar cómo estos nuevos 4 antipatrones pueden ocultar información útil que dificulta la codificación limpia o se relacionan con el estilo de escritura de pruebas. Ir al workshop del capítulo 4.

Capítulo 5 - Stranger, Operating system evangelist, Success against all odds y Free ride

En el penúltimo episodio analizamos 4 antipatrones más: Stranger, Operating system evangelist, Success against all odds y Free ride. Recuerda que la intención es aprender a identificar estas trampas en las que podemos caer al aplicar TDD y que entorpecen nuestro código. Lee el blog del quinto capítulo.

Sofia Carballo, software craftsperson, y nuevamente Juan Pablo Blanco, acompañan a Matheus en este quinto episodio. Anímate a practicar con los ejemplos reales que te proponemos. Ver el quinto episodio.

Capítulo 6 - Flash y Jumper

Llegamos al final de esta serie con los dos últimos antipatrones de la lista de James Carr: Flash y Jumper. Ambos se centran en la práctica de probar el código más que en cómo está escrito el propio código. Los revisaremos a través de casos que podemos experimentar en nuestros proyectos de desarrollo. Leer el blog del capítulo 6.

En el último episodio contamos como invitado especial con Pablo Díaz, senior software engineer, de Scentmate by dsm-firmenich e Ignacio Saporitti, software craftsperson. Estos dos últimos antipatrones son una mezcla de algunos ya tratados, te mostramos cómo funcionan y qué hacer para evitarlos. Ver último episodio.

Descarga el eBook de Antipatrones de TDD

ebook Test Driven Development (TDD)

Si te interesa la guía completa sobre antipatrones descarga el eBook en el que Matheus describe cada antipatrón en términos sencillos y con ejemplos de código. Si te preguntas porqué deberías leer este libro, la respuesta más sencilla: te ayudará con tu práctica de TDD y a escribir código de calidad.

Y si te interesa participar en un grupo de estudio en el que colaboraremos para generar la próxima versión del eBook, déjanos tu correo aquí.

Descargar eBook TDD