[vc_row][vc_column][vc_column_text]El desarrollo orientado a pruebas o TDD (Test Driven Development), es muy simple, el proceso consta de tres pasos:
1.- Rojo: El primer paso es escribir un caso de prueba sencillo. Debido a que tenemos la prueba y no tenemos la implementación, la prueba fallara.
2.- Verde: Luego, implementamos el código que cumpla la funcionalidad. En este punto, no pensamos en el mejor diseño o el código más elegante. Escribimos algo simple que pase la prueba.
3.- Refactor: Una vez que la prueba funciono, regresamos al código y vemos que se puede mejorar. Esto puede comprender el diseño, hacerlo más fácil de leer o fácil de actualizar. Podemos ejecutar nuevamente la prueba a fin de asegurarnos de que todo esta correctamente.
El ciclo continua cuando procedamos a escribir la siguiente prueba y desarrollemos el siguiente bloque de código.
[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][vc_column_text]
TDD vs Pruebas Unitarias vs Pruebas de Integración
Pruebas Unitarias: Son las pruebas que se realizan a unidades de código, en forma aislada de otras porciones de código con la cual será luego integrado. Tradicionalmente, las pruebas unitarias es código son realizadas por los ingenieros de pruebas. Estos ingenieros toman el código de los desarrolladores y ejecutan estos a través de un conjunto de pruebas para verificar que el código funciona.
Pruebas de Integración: Es una prueba que involucra a más de una parte del sistema. El objetivo es validar que las unidades de código fueron integradas correctamente. Una prueba típica de integración puede ser el ir a una página web, llenar un formulario y revisar que los mensajes que se muestran son los correctos. Para que la prueba pase, el formulario se debe mostrar en forma correcta, las entradas capturadas en forma correcta, las entradas deben ejecutar la lógica correctamente. Este proceso incluye la lectura y escritura en base de datos. Si una de estas partes falla, la prueba de integración falla.
Si no se escriben Pruebas Unitarias, y sólo se escriben Pruebas Integrales, si el código falla, se tendría que revisar en todo el proceso y verificar en que parte del proceso fallo. Al escribir Pruebas Unitarias, si una parte de las Pruebas Integrales falla, tendríamos el punto exacto en donde esta prueba fallo.
Al escribir las Pruebas Unitarias, estas por lo general se escriben luego de que se escribió la lógica de negocio. Con TDD lleva a los desarrolladores un paso más allá, en donde escriben la prueba antes de escribir la lógica.
Como se puede observar al hablar de pruebas unitarias, hablamos de un termino general, mientras TDD es una forma específica de desarrollar pruebas.
TDD es una técnica de programación relacionado a las metodologías ágiles de desarrollo y el simple hecho de realizar primero la prueba es un cambio significativo, el código resultante es dirigido por las pruebas, generalmente más simple y elegante, y es más fácil de mantener y leer.
Este artículo se encuentra en base al libro Test-Driven Python Develoment[/vc_column_text][/vc_column][/vc_row]