Aprende mas sobre TDD resolviendo una Kata en Laravel

Aprende mas sobre TDD resolviendo una Kata en Laravel

Aprende mediante un ejemplo sencillo como puedes aplicar el uso de TDD en tu desarrollo.

¿Qué es TDD?

TDD (Test Driven Development) es una técnica para construir software que primero requiere que se escriban pruebas y luego el código de producción que que validan las pruebas.

¿Por qué usar TDD?

El uso de TDD tiene varias ventajas, aquí vamos a enumerar solo algunas de ellas:

  • Te ayuda a crear código mas limpio ya que reduce la duplicación de código mediante la refactorización
  • Ayuda a Documentar el desarrollo de tus soluciones
  • Facilita la refactorización
  • Ayuda a tener código que es mas fácil de mantener y extender
  • También ayuda en la detección de defectos en el código

¿Por qué no usar TDD?

Como dicen no todo lo que brilla es oro, así que TDD también tiene sus partes obscuras que es importante tener en cuenta.

  • Hacer que se pierda tiempo escribiendo pruebas
  • Hacer que se pierda tiempo manteniendo pruebas
  • Pueden crear una falsa sensación de seguridad (ya que los test se pueden forzar a que pasen y no por ello significa que nuestro desarrollo cumpla con las expectativas)
  • Requieres cambio de Paradigma al codificar
  • Tiene una curva de aprendizaje considerable

El ciclo de TDD

El ciclo de TDD se puede considerar un proceso ya que requiere una serie de pasos para su aplicación.

  1. Escoger el criterio de aceptación más simple y se traduce en una prueba unitaria.
  2. Comprobar que la prueba falla.
  3. Escribir el código que hace pasar la prueba.
  4. Ejecutar todas las pruebas automatizadas.
  5. Se refactoriza y se limpia el código.
  6. Se vuelven a pasar todas las pruebas automatizadas para comprobar que todo sigue funcionando.

En el siguiente diagrama podemos visualizar de forma mas sencilla los pasos que acabo de enumerar.

Conclusión

TDD es una gran herramienta de desarrollo y diseño que debe de ser considerada como parte fundamental de nuestro trabajo diario.

Si bien esta técnica requiere un tiempo de aprendizaje y que se adquiera experiencia en su uso a largo plazo tiene mas beneficios que contras

ya que el uso de pruebas facilita la creación de software con menos defectos y que es mas sencillo de mantener, ademas reduce el tiempo de desarrollo y de perdida de tiempo que ocasionan hacer pruebas manuales.

Finalmente te dejo esta pregunta si no estas usando pruebas aromatizadas actualmente ¿Qué es lo que te detiene?

Comparte este artículo

Entra en la discusión y deja tu comentario

Veces