Desarrollo Ágil
|
|
Título del Test:
![]() Desarrollo Ágil Descripción: Práctica 3: TDD + Jacoco |



| Comentarios |
|---|
NO HAY REGISTROS |
|
¿Cuál es el ciclo fundamental del Test Driven Development (TDD)?. Escribir el código, probarlo y documentarlo. Diseñar la base de datos y luego hacer los tests. Escribir los test al final del proyecto. Rojo (fallar), Vede(pasar), Refactorizar. En TDD, ¿qué significa el estado 'Rojo'?. Que la cobertura del código es inferior al 50%. Que hemos escrito un test para una funcionalidad que aún no existe y, por tanto, falla. Que el servidor de integración continua se ha caído. Que el código tiene un error sintáctico grave. ¿Qué es JaCoCo?. Una herramienta que mide la cobertura de código (Code Coverage). Un framework para escribir tests unitarios. Una librería de Java para generar números aleatorios. Un plugin de Trello para gestionar HUs. En el vídeo, para pasar de 'Rojo' a 'Verde', ¿qué cantidad de código se recomienda escribir?. Solo los comentarios de la función. Un sistema de logs complejo. El código mínimo necesario para que el test pase. Toda funcionalidad completa del módulo. JaCoCo permite ver qué líneas específicas de código han sido ejecutadas por los tests y cuáles no. Verdadero. Falso. ¿Qué es la 'Refactorización' en el contexto de TDD?. Optimizar la base de datos. Mejora la estructura interna del código sin cambiar su comportamiento externo. Borra todos los tests para empezar de cero. Cambiar el comportamiento del código para que haga cosas nuevas. ¿En qué archivo de un proyecto Maven se suele configurar el plugin de JaCoCo?. jacoco.config. pom.xml. settings.json. README.md. TDD garantiza que el código final no tendrá ningún bug. Falso. Verdadero. ¿Qué representa el 'Instruction Coverage' en un informe de JaCoCo?. El porcentaje de instrucciones de bytecode de Java que han sido ejecutadas. El número de clases en el proyecto. El número de comentarios en el código. La velocidad de ejecución de los tests. En el vídeo, ¿qué anotación de JUnit se utiliza para identificar un método como un test?. @Test. @Run. @Check. @TestCase. ¿Qué comando de Maven se suele ejecutar para que JaCoCo genere el informe de cobertura?. mvn clean. mvn deploy. mvn compile. mvn test. Una cobertura del 100% en JaCoCo significa que el código es perfecto. Verdadero. Falso. ¿Qué significa 'Branch Coverage' en JaCoCo?. El porcentaje de caminos tomados en estructuras de control como if/else o switch. El número de ramas de un árbol binario. La cobertura de las ramas en Git. La cantidad de repositorios vinculados. ¿Cuál es la principal ventaja de escribir el test ANTES que el código (TDD)?. Obliga a pensar en el diseño y los requisitos antes de implementar. El código se compila más rapido. Evita tener que usar un IDE. Se tarda menos tiempo en programar la primera versión. En el vídeo, ¿dónde guarda JaCoCo los informes HTML por defecto dentro de la carpeta del proyecto?. scr/main/resources. target/site/jacoco. bin/reports. lib/jacoco. En TDD, si un test pasa a la primera sin haber escrito código nuevo, algo está mal. Verdadero. Falso. ¿Qué método de JUnit se usa frecuentemente para comparar un resultado esperado con uno obtenido?. System.out.println(). verify(obtenido). assertTrue(obtenido). assertEquals(esperado, obtenido). ¿Cómo ayuda JaCoCo a un equipo ágil?. Asigna automáticamente tareas en Trello. Proporciona una métrica objetiva de la calidad de la red de tests. Escribe los tests de integración automáticamente. Sustituye al Product Owner. TDD se considera una técnica de diseño de software, además de una técnica de pruebas. Verdadero. Falso. Si JaCoCo muestra una línea en color amarillo, ¿qué significa?. Que la línea contiene un comentario. Que el código es ineficiente. Que la línea no se ha ejecutado. Que la línea se ha ejecutado pero tiene una cobertura de ramas parcial (ej. un "if" que solo se probó para un true). ¿Cuál es la función del 'JaCoCo Agent' durante la ejecución de los tests?. Traducir el código Java a Python. Subir los resultados a una base de datos en la nube. Instrumentar el bytecode para registrar qué partes del código se ejecutan. Borrar el código que no tiene tests. En el informe de JaCoCo, ¿qué métrica ayuda a identificar métodos que son demasiado complejos y difíciles de testear?. Alphabetical Order. Complexity (Complejidad Ciclomática). Line Count (Conteo de líneas). File Size (Tamaño de archivo). Para usar JaCoCo en Maven, es obligatorio cambiar la estructura de carpetas estándar de src/main/java. Verdadero. Falso. Si una clase aparece con un 0% de cobertura en JaCoCo, ¿cuál es la causa más probable?. La clase está escrita en un lenguaje distinto a Java. El ordenador no tiene suficiente memoria RAM. No existe ningún test que invoque a esa clase durante la fase de pruebas. La clase no tiene ningún método. En TDD, ¿qué se debe hacer inmediatamente después de que un test pase a 'Verde'?. Borrar el test para que no ocupe espacio. Escribir otro test para una funcionalidad distinta. Revisar el código para refactorizar y eliminar duplicidades o mejorar la claridad. Cerrar el IDE y dar la tarea por finalizada. ¿Qué anotación de JUnit se utiliza para ejecutar código ANTES de cada test (por ejemplo, para inicializar objetos)?. @BeforeEach (o @Before en JUnit 4). @AfterAll. @StartNow. @Initialize. JaCoCo puede medir la cobertura de tests de integración, no solo unitarios. Verdadero. Falso. ¿Qué indica el 'Missed Complexity' en el reporte de JaCoCo?. El número de líneas de comentarios faltantes. La complejidad de las áreas de código que NO han sido cubiertas por los tests. La dificultad de entender el informe. La cantidad de bugs encontrados. En TDD, ¿por qué es importante que el test sea 'atómico' e independiente?. Porque Java no permite ejecutar dos tests a la vez. Para que el fallo de un test no afecte a los demás y sea fácil localizar el error. Para que se ejecute más rápido. Para ahorrar líneas de código. Al configurar el plugin de JaCoCo en Maven, ¿cuál es el 'goal' encargado de crear el informe visual HTML?. jacoco:report. jacoco:install. jacoco:help. jacoco:check. En el informe de JaCoCo, el color verde siempre garantiza que el código funciona correctamente según los requisitos del negocio. Verdadero. Falso. ¿Qué ocurre si un test de JUnit tarda demasiado tiempo en ejecutarse?. JaCoCo lo marca en color azul. Se puede usar el parámetro 'timeout' en la anotación para forzar su fallo si excede un tiempo. El código se borra por seguridad. Maven cancela todo el proyecto automáticamente. ¿Para qué sirve el goal 'jacoco:check'?. Para comprobar si internet funciona. Para actualizar la versión de Java. Para hacer que la construcción de Maven falle si no se alcanza un nivel mínimo de cobertura (ej. 80%). Para corregir errores de sintaxis. TDD ayuda a evitar el 'Over-engineering' (sobre-ingeniería). Verdadero. Falso. ¿Cuál es la diferencia entre métrica de líneas y métrica de métodos en JaCoCo?. La de líneas es para CSS y la de métodos para Java. La de métodos solo funciona en interfaces. La de líneas cuenta sentencias ejecutadas; la de métodos cuenta si se ha entrado al menos una vez en el método completo. No hay diferencia. En JUnit, ¿cómo se testea que un método lance una excepción específica?. No se pueden testear excepciones. Usando assertEquals(Exception). Usando assertThrows(Exception.class, ()-> método()). Poniendo un try-catch vacío. Refactorizar implica que los tests que antes estaban en verde podrían pasar temporalmente a rojo. Verdadero. Falso. ¿Qué es un 'Assertion' en el contexto de pruebas?. Una forma de pedir perdón al usuario. Un tipo de variable numérica. El nombre de la base de datos. Una afirmación lógica que comprueba si una condición es verdadera; si no lo es, el test falla. ¿Por qué JaCoCo es útil en la Integración Continua (CI)?. Porque traduce el código a HTML para que el jefe lo lea. Porque permite bloquear el despliegue de código si no cumple con los estándares de cobertura. No es útil en CI. Porque acelera la velocidad de descarga de dependencias. ¿Qué se entiende por 'Baby Steps' en el contexto de TDD?. Escribir tests solo para las funciones más fáciles. Escribir el manual de usuario antes de programar. Pedir ayuda a un programador. Avanzar en pasos muy pequeños, escribiendo la mínima cantidad de código y tests posible en cada ciclo. Si JaCoCo indica que un método tiene una complejidad ciclomática de 10, ¿qué significa esto para el programador?. Que existen al menos 10 caminos diferentes a través del código y se necesitarán mútiples tests para cubrirlo. Que el método tiene 10 lineas de código. Que el método se ejecuta 10 veces por segundo. Que el método es muy eficiente. ¿Es una buena práctica de TDD escribir varios tests a la vez y luego intentar que todos pasen a verde?. Verdadero. Falso. ¿Qué representa el color rojo en el borde de una línea de código dentro del informe HTML de JaCoCo?. Que la línea es demasiado larga. Que la línea tiene un error de sintaxis. Que esa línea de código no fue ejecutada por ninguna de las pruebas unitarias. Que la línea pertenece a una librería externa. En TDD, si durante la fase de 'Refactorización' te das cuenta de que necesitas una nueva funcionalidad, ¿qué debes hacer?. Terminar la refactorización actual y empezar un nuevo ciclo TDD con un test para esa funcionalidad. Añadirla como un comentario para el futuro. Ignorar la funcionalidad. Programarla directamente ya que estás modificando el código. ¿Cuál es el objetivo de la métrica 'Lines Coverage' frente a 'Instruction Coverage'?. Son exactamente iguales. 'Instructions' solo cuenta las llamadas a librerías de Java. 'Lines' se basa en líneas del código fuente, mientras que 'Instructions' se basa en el bytecode generado. 'Lines' solo cuenta los comentarios. ¿Se puede configurar JaCoCo para que excluya ciertas clases (como las de interfaz gráfica) del informe de cobertura?. Verdadero. Falso. ¿Qué comando de Maven elimina la carpeta 'target' y, por tanto, los informes previos de JaCoCo?. mvn clean. mvn reset. mvn purge. mvn delete. En el desarrollo ágil, ¿qué se suele preferir: una cobertura del 100% con tests mediocres o una cobertura del 80% con tests de alta calidad?. 100% siempre, el número es lo más importante. 0% si el equipo es muy rápido programando. No importa la cobertura si el código compila. 80% con tests de alta calidad que prueben casos críticos y de borde. ¿Cómo se llama en JUnit el concepto de agrupar varios tests de diferentes clases para ejecutarlos todos juntos?. Test Collection. Test Pack. Test Group. Test Suite. ¿Es posible que JaCoCo dé un informe de cobertura alto pero que la aplicación falle en producción debido a datos de entrada inesperados?. Verdadero. Falso. |




