Está en la página 1de 4

Actividad de Investigación del Modelo TDD

Para el inicio del proceso de construcción de un software enfocado en las técnicas


propuestas para el curso es necesario en primera instancia conocer el modelo TDD. Para
esto busque documentación sobre el modelo TDD - Testing Driven Development y
responda las siguientes preguntas:

1. Es TDD un modelo de desarrollo ágil? Explique su respuesta presentando la


descripción general del modelo TDD.

R// TDD Es un proceso de desarrollo que consiste en codificar pruebas, desarrollar y


refactorizar de forma continua el código creado. La idea principal es realizar primero las
pruebas unitarias para el código que tenemos que implementar. O sea que primero
codificamos la prueba y, luego, se desarrolla la lógica del proyecto.

Es un modelo de desarrollo ágil puesto que permite adaptar la forma de trabajar a las
condiciones que propone el proyecto, consiguiendo de esta forma una mayor velocidad y
flexibilidad en el proceso de planeación y desarrollo particular del proyecto.

2. Cuáles son las etapas del modelo TDD? Explique cada etapa y presente un gráfico
donde se vea la interacción de estas etapas.

R//

1- Desarrollar una prueba: En el inicio se inicia con la creación de una prueba de


validación, pero para poder lograr eso es necesario que el desarrollador tenga un
claro conocimiento de los requerimientos, condicionales y diferentes casos
particulares del proyecto.

2- Escribir código: Claramente sin código, las pruebas creadas en la etapa anterior
saldrán negativas o el también llamado “red state”. Lo que quiere decir que el
desarrollo del código debe ser enfocado en la validación de los casos aceptados
por las pruebas.

3- Validar o ejecutar las pruebas: Como su nombre lo indica, en esta etapa


ejecutamos las pruebas creada y si el código desarrollado pasa el control de
validación entonces el software cumple con los requerimientos definidos.

4- Refactoring: Es necesario aclarar que en la etapa 2 no necesariamente el código


debe estar desarrollado de la manera mas optima y precisamente por esa razón
existe este paso, ya que los procesos deben ser agiles. Para evitar que después
surjan necesidades de eliminar ciertos casos, de abstracción o de cualquier otra
mala práctica. Esta etapa ocurre cada cierta cantidad de ciclos realizados.
Gráfico de las etapas de TDD:

Refactorización

Diseñar Escribir Validar


Inicio Refactoring Fin
pruebas código pruebas

Iteración

3. Desde la perspectiva tecnológica qué elementos o herramientas se ven involucradas


en un modelo TDD?

R// Existen algunos elementos involucradas en un modelo TDD, estas son:

 Test de sistema: Prueba el software como si se tratara de un usuario final

 Test del unitarios: Prueba partes pequeñas del código de forma independiente.

 Test de integración: Prueba integrando varios componentes del software.

 SRP: Llamado principio de responsabilidad única, puesto que cada apartado debe
ser independiente.

Realmente no hay alguna herramienta tecnológica que sirva para implementar la


metodología TDD. Sin embargo, dependiendo del lenguaje de programación existen
diferentes herramientas que te permitirán realizar pruebas:

 Java: JUnit - Selenium - Spock

 JavaScript: AVA - Tape – Jasmine

 PHP: PHPUnit - Codeception - PHPSpec

 Python: Unittest - Pytest - Hypothesis


4. Compare los procesos de desarrollo en los que ha participado en sus grupos de
estudio y el modelo de procesos TDD. ¿Cuáles son las diferencias o similitudes que
encuentra? ¿Considera que TDD puede aportarle elementos para mejorar sus
procesos de desarrollo? ¿Porqué?

R// La metodología que he usado es la del modelo en cascada, por lo tanto, la analizaremos
comparándola con el modelo de procesos TDD.
Similitudes:

 Ambas metodologías son rápidas a la hora de entregar el proyecto.

 Ambas funcionan para proyectos de dificultad media o poca, donde los


requerimientos son fáciles de entender.

 Para que puedan funcionar de una manera óptima, necesitan que los requerimientos
sean tomados de una manera correcta.

 Son métodos que se pueden adaptar a diferentes equipos debido a sus etapas de
desarrollo.

Diferencias:
 El modelo en cascada es estructurado y puede llegar a ser bastante rígida, mientras
que para el TDD una de sus características es ser bastante flexible.

 Según el modelo en cascada se debe completar el desarrollo como un solo proyecto


y para ello dividirlo en fases, sin embargo, cada fase ocurre solo una vez durante
todo el proceso. Mientras que en el TDD se pueden realizar varias iteraciones den
las fases, todo ello destinado para mejorar la calidad del software.

 Una de las principales diferencias se encuentra en el enfoque de calidad y pruebas,


puesto que en la metodología cascada la fase de pruebas se realiza al final, mientras
que en el TDD las pruebas se realizan al inicio.
 El modelo en cascada se centra más en la finalización del proyecto, mientras que el
TDD se centra en la calidad de los resultados finales y que se cumplan de la mejor
manera todos los objetivos planteados.

Considero que TDD puede aportar elementos para mejorar los procesos de desarrollo, ya
que en el proceso de implementación y pruebas unitarias permitiría identificar una mayor
cantidad de errores con más eficacia, lo cual se vería reflejado al final del proceso en un
producto de mayor calidad, además que acortaría el tiempo de finalización del proyecto y
por ende podría reducir los costos totales.

También podría gustarte