DigitalNext TechRetail

Todo lo que necesitas saber de TDD en 3 minutos

3 Mins de lectura

Cada cosa tiene su momento. Es por esto que en el mundo del desarrollo software existen diferentes metodologías de trabajo para definir la estrategia y el método a seguir para llevar a cabo un proyecto.

Existen diversas metodologías de desarrollo, cada una de ellas define una serie de prácticas con las cueles fortalecer ciertos aspectos en el proyecto. Existen prácticas que se pueden aplicar de forma combinada, al igual que hay algunas que simplemente no se puedan aplicar dada la naturaleza de un proyecto.

Para saber cuál (o cuáles) aplicar en un proyecto, es necesario conocer al menos las más habituales, en este artículo vas a leer sobre una de ellas, el Test Driven Development (TDD).

¿Qué es el TDD o Test Driven Development? 

El Test Driven Development (TDD) o “Desarrollo guiado por pruebas” se basa en traducir los requisitos del software en casos de prueba, para poder primero escribir sus test, luego realizar la implementación necesaria para que estos test pasen, y finalmente refactorizar el código escrito.

De esta forma, se crea un ciclo llamado red, green refactor.

 

En la fase red (roja), se escriben los test que cubren los casos de prueba (provenientes de un requisito). Estos test por norma general van fallar, ya que no existe todavía la implementación necesaria. Cuando un test falla, este se ve de color rojo, de allí de esta fase.

En la fase green (verde), se escribe código con el único objetivo de pasar los test (pasar del color rojo del test fallido, al verde del test aprobado). Durante esta fase no se van a tener en cuenta las buenas prácticas a la hora de desarrollar código, lo importante (por ahora) en es pasar los test.

En la fase de refactor, se va a revisar el código escrito para que cumpla con las buenas prácticas del código. Se podría decir que es pasar a limpio el código realizado en la fase anterior. En esta fase se juega con la ventaja de que con cualquier modificación que se realice al código, se puede comprobar si se siguen pasando los test o no.

Evita malas prácticas 

Aplicar TDD implica un cambio de filosofía. De forma habitual los test se escriben una vez realizada la implementación con el objetivo de encontrar bugs. Sin embargo, con TDD los test se escriben antes, por lo que los test se escriben para prevenir bugs.

Cuando se escriben primero los test, posteriormente en la etapa de la implementación, el desarrollador tiene una mejor visión del problema, ya que tiene en mente los escenarios en los que se va a probar su código.

Antes de aplicar TDD 

Para poder aplicar TDD, se deben describir correctamente las historias de usuario. Los requisitos deben quedar claros, y a partir de estos formar los casos de prueba que espera el cliente. Si no se realiza correctamente la traducción de requisito a caso de prueba, aplicar TDD va a ser un desastre.

Un punto importante y extensible a cualquier proyecto y metodología, es que los requisitos los debe definir el cliente. Es el cliente quien decide el comportamiento de su producto. Si corremos el riesgo de asumir requisitos, es muy probable que estos no estén en sintonía con los del cliente.

¿Por qué TDD? 

  1. Todo queda probado. Haciendo los test primero, se evita que se dejen para el final, se olviden casos de prueba, o se recorten por falta de tiempo.
  2. Cliente satisfecho. Los test a cumplir se basan en los casos de uso, extraídos de los requisitos acordados con el cliente.
  3. Mejor código. Tener definida una etapa de refactorización obliga a que el código escrito sea revisado y mejorado siempre.
  4. Evita desarrollo innecesario. El código que se escribe se hace con el objetivo de pasar un test, y este test ha sido escrito para comprobar un caso de uso, basado en un requisito del cliente. Por lo que siempre es necesario.

 

1 posts

Sobre el autor
Desarrollador de backend experto en microservicios.
Artículos

DESARROLLAMOS PROYECTOS EN LAS TECNOLOGÍAS MÁS AVANZADAS

Hoy en día el ritmo de avance tecnológico no tiene precedentes y la innovación tecnológica puede ser un valor diferencial a cualquier negocio.
La especialización forma parte de nuestro ADN y nos permite conocer la tecnología más innovadora y eficaz del mercado para dar el mejor servicio a nuestros clientes.

¿Te ayudamos?

Artículos relacionados
ActualidadIndustriaNext Tech

Las tendencias actuales y prospectiva futura en el QA software

4 Mins de lectura
Los últimos informes en torno al QA software incluyen conceptos habituales como la automatización, el Testing, Agile y Devops, pero también hacen…
Next TechSector Público

Caso de Éxito Volveremos App, +3.718 transacciones por hora de ayuda al comercio

5 Mins de lectura
Tras el éxito cosechado con ‘Volveremos’, el Ayuntamiento de Zaragoza vuelve a lanzar la campaña en 2022 con el objetivo de incentivar…
Digital

El marketing automation en cada fase del funnel

3 Mins de lectura
Cuando ponemos en marcha acciones de marketing automation estamos utilizando un software para que esas acciones se activen de forma automatizada. Gracias…

Deja una respuesta

Tu dirección de correo electrónico no será publicada.