La Automatización de Pruebas de Software en etapas tempranas del Ciclo de Vida de las Aplicaciones es una de las prácticas que aporta agilidad en el proceso de desarrollo de software y que ha otorgado grandes beneficios en los Equipos de construcción que la han implementado. ¿Conoces sobre TDD?
Una de las principales figuras en automatización de pruebas tempranas es el mecanismo de desarrollo de software conocido como Testing Driven Development (TDD), el cual plantea llevar adelante la codificación a partir de la generación de casos de pruebas que tienen el propósito de validar el código. Los desarrolladores usan estas pruebas como «guías» para la generación de los programas fuentes.
Cuando aplicamos TDD en nuestro proceso de construcción de software estamos ejecutando de manera simultánea e interrelacionada las actividades de Testing (en términos de pruebas unitarias), Codificación y Diseño (en términos de la aplicación de refactoring).
TDD inicia desde la creación de pruebas para pequeñas funcionalidades de la aplicación, orientando al desarrollador a generar código para otorgar funcionalidad que satisfaga dichas pruebas.
El hecho de ejecutar y corregir los resultados de las pruebas generando nuevo código ayuda a evitar duplicación de código.
Crear Pruebas en TDD
Los siguientes pasos corresponden al proceso de creación de pruebas en TDD
- Crea una nueva prueba.
- Ejecuta todas las pruebas y verifica si la nueva prueba falla.
- Escribe código.
- Ejecuta las pruebas y refactoriza.
- Repite.
El proceso de TDD en el contexto del ciclo de vida de desarrollo sería el siguiente:
- Especificar un requerimiento de software.
- Escribir los criterios de aceptación, de la manera más desglosada y simplificada posible.
- Tomar un criterio de aceptación y se la transforma en una prueba unitaria.
- Verificar que la prueba falle.
- Escribir el código para hacer que la prueba pase satisfactoriamente.
- Ejecutar todas las pruebas automatizadas.
- Refactorizar el código.
- Ejecutar nuevamente todas las pruebas para asegurar la funcionalidad del código.
- Tomar un nuevo criterio de aceptación y se reinician los pasos desde el paso 4.
Frameworks que facilitan el trabajo
Desde la perspectiva más técnica, existen algunos Frameworks que pudieran ayudarnos a implementar TDD en nuestros proyectos:
- Junit: utilizado para desarrollos en Java.
- TestNG: es otro framework que se utiliza en el testing de desarrollos sobre Java.
- csUnit y NUnit: ambos frameworks especializados para desarrollos en plataformas .NET
- PyUnit: muy popular en desarrollos basados en Python.
- Rspec: Framework de pruebas para proyectos en Ruby.
El enfoque de TDD también ayuda a mitigar los cuellos de botella críticos que obstruyen la calidad y la entrega del software. Basado en la retroalimentación constante, la corrección de errores y la adición de nuevas funciones, el sistema evoluciona para garantizar que todo funcione según lo previsto.
Espero que los conceptos contenidos en este artículo te ayuden a implementar mejores prácticas de Ingeniería de Software para incrementar el nivel de calidad y satisfacción en los proyectos de desarrollo en los que participas.
Si quieres tener más detalles sobre este tema, permanece atento a nuevas publicaciones. No dudes en contactarnos sin mayores compromisos para conversar en detalle sobre tu necesidad puntual.