
Revisión 1: ¿Qué Hemos Aprendido Hasta Ahora Sobre TDD?

Quiz
•
Other
•
Professional Development
•
Medium
Francisco Catalá
Used 3+ times
FREE Resource
10 questions
Show all answers
1.
MULTIPLE CHOICE QUESTION
5 mins • 1 pt
¿Cuál es la mayor diferencia entre TDD y las pruebas unitarias (unit testing)?
Nada, son lo mismo.
Obtienes una mayor cobertura de pruebas con TDD.
Las pruebas unitarias nos permiten ahorrar tiempo al dejar las pruebas para después de que el código esté terminado. Por lo tanto, podemos omitirlas si nos quedamos sin tiempo.
En TDD diseñamos nuestro código a partir de pruebas, escribiendo primero la prueba y después el código.
Answer explanation
El Desarrollo Dirigido por Pruebas (TDD) se trata específicamente de conducir el proceso de desarrollo a partir de pruebas. Comenzamos escribiendo una prueba primero y luego creamos el código necesario para que la prueba pase. Esto tiene muchos beneficios.
Los equipos que practican TDD tienden a tener una cobertura de pruebas muy alta, pero ese no es su objetivo. Los equipos que escriben pruebas unitarias después de escribir el código también pueden lograr niveles elevados de cobertura, pero esto a menudo conlleva un alto acoplamiento entre las pruebas y el código.
La terminología en torno a TDD y las pruebas unitarias puede resultar confusa. TDD produce pruebas unitarias. "Pruebas Unitarias" puede referirse a pruebas de enfoque estrecho, con las pruebas escritas antes o después del código, pero TDD siempre significa que las pruebas se escriben primero. Por lo tanto, para simplificar, en este curso describimos TDD como SIEMPRE escribir las pruebas primero, y las Pruebas Unitarias como escribir las pruebas después.
2.
MULTIPLE CHOICE QUESTION
5 mins • 1 pt
Las pruebas deben ser "comprensibles". ¿Cómo ayuda TDD a mejorar la "comprensibilidad" de nuestras pruebas?
Las pruebas de TDD son más cortas, por lo que hay menos que leer y entender.
Escribir la prueba antes del código te obliga a pensar en lo que realmente estás tratando de lograr. Entences la prueba expresa ese deseo de comportamiento.
Cuando las pruebas se escriben antes del código, están dirigidas por una implementación específica que tienes en mente, por lo que tienden a ser menos abstractas. Como resultado, a menudo son más fáciles de entender.
Answer explanation
Escribir la prueba primero significa que no tenemos una solución en mente, a menos que estemos haciendo trampa. Esto significa que hay una mejor oportunidad de que nuestras pruebas se centren en los resultados que queremos de nuestro código, en lugar de en los detalles de la implementación.
Esto significa que nuestras pruebas están menos ligadas a detalles de implementación específicos y funcionan como una declaración más precisa de lo que nuestro código debe hacer en lugar de cómo lo hace. Esto las hace mucho más fáciles de entender.
Centrarse en el comportamiento deseado del código nos lleva a pensar más desde la perspectiva de un usuario de nuestro componente, clase o método. Nos lleva a diseñar desde afuera hacia adentro, en lugar de desde adentro hacia afuera. Esto significa que la prueba tiende a ser una descripción más clara del resultado deseado.
3.
MULTIPLE CHOICE QUESTION
5 mins • 1 pt
¿Por qué es importante la modularidad para un código de alta calidad?
Nos permite mantener partes del sistema en archivos y repositorios separados, lo que nos permite trabajar en ellos de forma independiente de otros módulos.
Nos permite descomponer problemas en piezas más pequeñas, cada una más enfocada, más independiente y más componible. A menudo, la modularidad también ayuda a que nuestros sistemas sean más escalables.
Los sistemas modulares aseguran que los desarrolladores puedan comprender cuando algo cambia en otras partes del código.
Los sistemas modulares son más rápidos, más fáciles de deployear y simplifican la escritura de pruebas para ellos.
Answer explanation
La modularidad es una de las cinco propiedades del código de alta calidad: Modularidad, Cohesión, Separación de Responsabilidades (concerns), Abstracción y Acoplamiento Ligero.
Juntas, estas propiedades en el código nos permiten gestionar su complejidad, facilitándonos mantener la capacidad de cambiar el código de manera segura siempre que sea necesario y donde sea necesario.
La modularidad ayuda al descomponer problemas en piezas más pequeñas y comprensibles. Cada pieza se enfoca en resolver una parte particular del problema, lo que a menudo significa que los módulos pueden ser utilizados en otros contextos también. Podemos componer nuevos sistemas y comportamientos a partir de módulos existentes.
Los sistemas modulares también nos permiten construir sistemas que pueden manejar cargas más altas, ejecutando muchas copias de un módulo en paralelo con otros.
4.
MULTIPLE CHOICE QUESTION
5 mins • 1 pt
¿Qué significa el "Rojo" en "Rojo, Verde, Refactor"?
No escribas pruebas hasta que sepas todo lo que necesitarás probar.
No escribas pruebas hasta que el equipo de control de calidad (QA) te indique qué probar.
Tu prueba está rota, busca ayuda.
Tu prueba está fallando, como esperabas. Estás listo para hacer que pase.
Answer explanation
Nuestro objetivo en el paso "Rojo" es centrarnos en el diseño de nuestro sistema desde el exterior. Utilizaremos la creación de una prueba para ayudarnos a adoptar este enfoque "de afuera hacia adentro".
Crearemos una prueba que exprese algún comportamiento nuevo de nuestro sistema. Escribiremos solo la cantidad suficiente de código para que la prueba y el código se compilen, se ejecuten y fallen.
Predicaremos cómo esperamos que la prueba falle y luego la ejecutaremos y confirmaremos que falla de la manera en que esperábamos, para asegurarnos de que la prueba funciona correctamente y está afirmando las cosas correctas.
5.
MULTIPLE CHOICE QUESTION
5 mins • 1 pt
¿En qué debes enfocarte al COMIENZO del paso "Verde" en "Rojo, Verde, Refactor"?
Tu prueba está pasando, así que ahora enfócate en un gran diseño para tu implementación.
Tu prueba está pasando, así que ahora enfócate en romperla para que puedas probar tu prueba.
Tu prueba está fallando en este momento, así que ahora encuentra la ruta más corta y simple para hacer que pase.
Tu prueba está fallando, así que refactoriza la prueba hasta que pase.
Tan pronto como tu prueba pase, puedes pasar a la siguiente prueba.
Answer explanation
Al entrar en el paso "Verde", nuestra prueba está fallando de la manera que habíamos predicho, por lo que sabemos que está probando las cosas correctas.
Ahora nuestro código está en un estado inestable, si hacemos demasiado trabajo en este punto, corremos el riesgo de agravar problemas y no verlos claramente, porque los nuevos problemas pueden estar ocultos por el fallo de la prueba.
Nuestro objetivo entonces es volver a la estabilidad lo más rápido y sencillamente posible.
Este no es el momento adecuado para preocuparse por la solución perfecta, déjalo para el siguiente paso. En su lugar, encuentra la ruta más corta para que la prueba pase.
6.
MULTIPLE CHOICE QUESTION
5 mins • 1 pt
¿Cuándo debes "Refactorizar" en TDD?
Refactoriza en "Verde" cuando tus pruebas estén pasando.
Cuando tu código está roto.
Todo el tiempo.
Cuando tu supervisor lo programe.
Refactoriza cuando aprendas algo nuevo.
Answer explanation
Si respondiste "Todo el tiempo" o "Cuando aprendas algo nuevo", toma algunos puntos de reconocimiento. Son respuestas válidas en general.
En TDD, sin embargo, tenemos un paso específico para la refactorización. Refactorizas solo cuando tus pruebas estén pasando.
Discutiremos la refactorización con más detalle más adelante en el curso, es una herramienta valiosa.
Recomendamos enfáticamente que mientras aprendes y practicas TDD, te obligues a la disciplina de hacer una pausa y pensar en lo que podrías cambiar cada vez que obtengas una prueba que pasa. Incluso si decides, en esta ocasión, que no hay refactorización que hacer.
7.
MULTIPLE CHOICE QUESTION
5 mins • 1 pt
Escribes una prueba, la ejecutas y ves que falla. Luego, mientras empiezas a pensar en cómo hacer que pase, te das cuenta de que sería mejor reestructurar el código primero. ¿Qué debes hacer?
Debes reestructurar el código cuidadosamente y ejecutar todas las pruebas al final para asegurarte de que tu prueba aún falle como esperas.
Debes reestructurar el código cuidadosamente y ejecutar las pruebas regularmente para asegurarte de que no rompas ninguna otra prueba.
Añade la nueva funcionalidad para que la prueba pase y luego refactoriza el código.
Deshabilita la prueba que falla, ejecuta todas las demás pruebas para confirmar que pasan y luego refactoriza el código para prepararlo para la nueva funcionalidad.
Answer explanation
¡Siempre refactoriza en VERDE! Si intentas reestructurar el código mientras tienes una prueba que falla, es fácil enredarse. Puedes romper el código y los errores se verán ocultos por la prueba que falla.
En su lugar, comenta o deshabilita temporalmente tu nueva prueba que falla.
Vuelve a ejecutar todas las demás pruebas para confirmar que siguen pasando.
Ahora refactoriza el código en la nueva estructura que tienes en mente, ejecutando continuamente las pruebas para comprobar que no has roto nada.
Una vez que el código tenga la forma que deseas, vuelve a habilitar la prueba, ejecútala para ver que vuelva a fallar y luego comienza a implementar la nueva funcionalidad.
Create a free account and access millions of resources
Similar Resources on Wayground
15 questions
quizz 2_MA2_UT3_MANT CORRECTIVO

Quiz
•
Professional Development
6 questions
Código de Ética

Quiz
•
Professional Development
11 questions
Inducción ACP

Quiz
•
Professional Development
10 questions
CÓDIGO DE SALUD EN BOLIVIA

Quiz
•
Professional Development
8 questions
Conceptos ATDD

Quiz
•
University - Professi...
10 questions
LENGUA Y LITERATURA

Quiz
•
KG - Professional Dev...
6 questions
Muestras Biológicas

Quiz
•
Professional Development
6 questions
Medición 2. Clase 1

Quiz
•
Professional Development
Popular Resources on Wayground
10 questions
Lab Safety Procedures and Guidelines

Interactive video
•
6th - 10th Grade
10 questions
Nouns, nouns, nouns

Quiz
•
3rd Grade
10 questions
9/11 Experience and Reflections

Interactive video
•
10th - 12th Grade
25 questions
Multiplication Facts

Quiz
•
5th Grade
11 questions
All about me

Quiz
•
Professional Development
22 questions
Adding Integers

Quiz
•
6th Grade
15 questions
Subtracting Integers

Quiz
•
7th Grade
9 questions
Tips & Tricks

Lesson
•
6th - 8th Grade
Discover more resources for Other
11 questions
All about me

Quiz
•
Professional Development
10 questions
How to Email your Teacher

Quiz
•
Professional Development
15 questions
Fun Random Trivia

Quiz
•
Professional Development
22 questions
Anne Bradstreet 1612-1672

Quiz
•
Professional Development
18 questions
Spanish Speaking Countries and Capitals

Quiz
•
KG - Professional Dev...
14 questions
Fall Trivia

Quiz
•
11th Grade - Professi...
15 questions
Disney Characters Quiz

Quiz
•
Professional Development
15 questions
Quiz to Highlight Q types & other great features in Wayground

Quiz
•
Professional Development