Programación guiada por pruebas (Test Driven Development – TDD)

TDD es un acrónimo muy usado en el mundo de las metodologías de software donde se busca enfatizar la necesidad de realizar las pruebas unitarias antes de programar cualquier algoritmo.

Durante nuestra serie de Algoritmos Mantenibles, mostramos cómo utilizar las pruebas unitarias y aplicar los distintos refactorings.

En esta serie de videos, vamos a programar un algoritmo que retorna una estructura de datos. Iniciaremos desde la lectura de la especificación y sus ejemplos. Luego, iré paso a paso programando una prueba unitaria, luego haciendo el código necesario y finalmente aplicando refactorings para lograr un diseño mantenible.

TDD nos plantea trabajar en este ciclo:

  1. Programe una prueba unitaria que falle.
  2. Programe el código mínimo necesario para lograr una prueba exitosa.
  3. Refactoring (elimine duplicación).

Documentos y código fuente

Este es el repositorio: https://github.com/oscarcenteno/inversiones. Los contenidos en general son:

Programación en vivo

En estos videos, quiero compartir un ejemplo realista de la aplicación de esta práctica.

Explicación inicial y programación como un procedimiento

Playlist en YouTube

Refactoring a Funciones

Playlist en YouTube

Refactoring a Objetos

Playlist en YouTube

Por investigar

  • ¿Cuáles son los beneficios que ofrece una programación estilo TDD?
  • ¿Hay alguna contra indicación a usarla?
  • ¿Cuáles herramientas ayudan a tener una programación de este estilo?
  • ¿Hay alguna posición en contra del uso de esta práctica?

Referencias recomendadas

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s