TDD (Test Driven Development) es una de las principales metodologías de "Programación extrema". Kent Beck es fundador de Extreme Programming. La Programación Extrema (también conocida como XP) ha sido exitosa ya que enfatiza más en la Satisfacción del Cliente. XP alienta a mantener el diseño muy simple y directo. XP cambia significativamente la forma en que codificamos, se desvía del estilo tradicional de codificación. XP es más adecuado cuando los requisitos cambian dinámicamente. Es posible que tengamos un sistema cuya funcionalidad cambia cada pocos meses. Algunas veces los requisitos cambian cuando el cliente no tiene muy claro lo que quiere. Por último, la productividad del desarrollador aumenta con XP.
Test Driven Development se conoce como "Test First". TDD pone más estrés en las pruebas unitarias. Es una práctica habitual escribir y ejecutar casos de prueba después de completar la codificación. El objetivo de TDD es escribir un código limpio. Pero en TDD, primero escribimos casos de prueba, escribimos el código y ejecutamos casos de prueba. Esa es la razón por la que se llama "Prueba primero". Requiere una mentalidad diferente de los desarrolladores.
En la práctica del software tradicional, seguimos los siguientes pasos.
Crear el documento de diseño técnico.
Escribe el código.
Crear casos de prueba de unidad.
Probar el código en función de los casos de prueba de unidad
Cree la compilación y páselo al equipo de prueba.
Caídas del sistema existente.
o La mayoría de los errores (que por supuesto son pesadillas de la comunidad de desarrolladores) se descubren durante los ciclos de prueba, en lugar de en la fase de prueba de la unidad.
o La identificación de la causa raíz de los errores se vuelve muy difícil. o El código se vuelve difícil de administrar. o Nunca podemos estar seguros de que cada línea de nuestro código sea probada.
Implementando TDD.
TDD adopta un enfoque diferente en comparación con el desarrollo de software tradicional. Aquí se escribe un caso de prueba para una funcionalidad específica en lugar de código. El código funcional está escrito solo para pasar esos casos de prueba, una buena cosa es que se evita la duplicación de código.
Las reglas de TDD son
o La prueba es lo primero.
o Escriba un código funcional solo si falla un caso de prueba.
o Asegúrese de que su código esté probando al 100%.
o Siempre es mejor usar herramientas de cobertura de código.
Inicialmente, adoptar TDD puede ser difícil para la comunidad de desarrolladores. La tendencia natural de los desarrolladores es escribir primero el código y luego probarlo. Más aún, sienten que es demasiado escribir casos de prueba en lugar de codificar. Los desarrolladores no están acostumbrados a escribir y ejecutar grandes no. de casos de prueba. Para implementar TDD hay dos requisitos que son obligatorios.
o Un cumplidor más rápido.
o Una herramienta automatizada para ejecutar los casos de prueba.
o Utilice siempre los datos de producción para sus pruebas unitarias.
o En caso de que no tenga datos de producción a tiempo, dedique un tiempo a crear datos de prueba similares a los datos de producción.
La herramienta automatizada es imprescindible para TDD. Sin lo cual, ejecutar un caso de prueba unitaria será muy difícil y requerirá más tiempo. He enumerado las herramientas disponibles para diferentes idiomas en la siguiente sección.
Beneficios de TDD
o El mayor beneficio es la verificación. Podemos tener un conjunto exhaustivo de casos de pruebas unitarias automatizadas que pueden proteger nuestro sistema contra defectos.
o Se adapta mejor a los sistemas donde los requisitos son muy dinámicos.
o Podemos obtener un diseño simple y claro.
o El código se acopla libremente y es mucho más fácil de administrar.
o El código de prueba proporciona una documentación completa.
o Asegura que el sistema esté libre de defectos.
o Evita la duplicación de código.
o El tiempo de control de calidad se ahorra tantos defectos como muchos errores se resuelven por adelantado.
o Sytem, lo que desarrollamos necesita hacer y no más.
o Las pruebas unitarias de alta calidad pueden aumentar significativamente la calidad del código y pueden generar una gran cantidad de confianza en la integridad del código probado.
Comentarios