📚 DE LIBRE ACCESO · SIN LOGIN

Respuestas modelo

Consulta aquí las respuestas correctas y explicaciones de las autoevaluaciones y los tests del manual. Ideal para repasar antes de un test o aclarar dudas.

111
🎯 autoevaluación
355
📝 test · opción múltiple
111 / 111
✍️ test · abiertas con respuesta
37
temas cubiertos
✕ Limpiar

4.08 · Testing Unitario y Documentación

16 preguntas con respuesta en este tema.

🎯 Autoevaluación (3)

1
🎯 AE

¿Qué es un test unitario?

  • A. Un test de todo el sistema
  • B. Un test que verifica una unidad específica de código (función, clase) en aislamiento ✓ CORRECTA
  • C. Un test del compilador
  • D. Un test manual
💡 Por qué es correcta:

Test unitario: prueba una unidad pequeña (función, método) de forma aislada. Base de la pirámide de tests.

2
🎯 AE

¿Qué framework de testing se usa commonly en C++?

  • A. JUnit
  • B. Google Test (gtest) / Catch2 ✓ CORRECTA
  • C. Selenium
  • D. Mocha
💡 Por qué es correcta:

Google Test (gtest) y Catch2 son populares en C++. Permiten escribir TEST() y EXPECT_EQ(), ASSERT_TRUE(), etc.

3
🎯 AE

¿Por qué es importante documentar el código?

  • A. No es importante
  • B. Para que otros (y tu yo futuro) entiendan la intención, uso y decisiones de diseño ✓ CORRECTA
  • C. Solo para libros
  • D. Para hacerlo más largo
💡 Por qué es correcta:

Documentación clara: reduce tiempo de onboarding, previene mal uso, mantiene el conocimiento en el equipo.

📝 Test · Sección A · Opción múltiple (10)

1
📝 MC

¿Qué es un test unitario?

  • A. Test del sistema
  • B. Test de una unidad (función, clase) en aislamiento ✓ CORRECTA
  • C. Test de integración
  • D. Test manual
💡 Por qué es correcta:

Unit test: una unidad pequeña. Base de la pirámide de tests.

2
📝 MC

¿Qué es Google Test (gtest)?

  • A. Un compilador
  • B. Framework de testing para C++ ✓ CORRECTA
  • C. Un IDE
  • D. Un sistema operativo
💡 Por qué es correcta:

gtest: framework popular de Google para C++. TEST(), EXPECT_EQ, ASSERT_TRUE, etc.

3
📝 MC

¿Qué es un mock en testing?

  • A. Test real
  • B. Objeto simulado que reemplaza dependencias reales ✓ CORRECTA
  • C. Test de integración
  • D. Un bug
💡 Por qué es correcta:

Mock: simula el comportamiento de objetos reales para testear unidades aisladas.

4
📝 MC

¿Qué cobertura de código es razonable?

  • A. 100% siempre
  • B. 70-80% suele ser buena. 100% no garantiza ausencia de bugs ✓ CORRECTA
  • C. 50%
  • D. 0%
💡 Por qué es correcta:

Cobertura: métrica útil pero no suficiente. Apuntar a 70-80% en código crítico.

5
📝 MC

¿Qué es TDD (Test-Driven Development)?

  • A. Test al final
  • B. Escribir el test ANTES del código ✓ CORRECTA
  • C. No escribir tests
  • D. Solo documentar
💡 Por qué es correcta:

TDD: rojo (test falla) → verde (código mínimo que pasa) → refactor.

6
📝 MC

¿Para qué sirve la documentación del código?

  • A. Decoración
  • B. Para entender intención, uso y decisiones de diseño ✓ CORRECTA
  • C. Compilar más rápido
  • D. No es importante
💡 Por qué es correcta:

Documentación: reduce tiempo de onboarding, previene mal uso.

7
📝 MC

¿Qué es Doxygen?

  • A. Compilador
  • B. Herramienta para generar documentación desde comentarios ✓ CORRECTA
  • C. IDE
  • D. Sistema operativo
💡 Por qué es correcta:

Doxygen: genera docs HTML/PDF desde comentarios /** ... */ en el código.

8
📝 MC

Buenas prácticas de naming:

  • A. Variables de 1 letra
  • B. Nombres descriptivos: calcularPromedio, no cp ✓ CORRECTA
  • C. Abreviaciones
  • D. Números al final
💡 Por qué es correcta:

Nombres claros: el código se lee más de lo que se escribe.

9
📝 MC

¿Qué es el principio DRY?

  • A. Documentar
  • B. Don't Repeat Yourself: evitar duplicación ✓ CORRECTA
  • C. Solo en C++
  • D. Compilar
💡 Por qué es correcta:

DRY: cada conocimiento debe tener una representación única. Evitar código duplicado.

10
📝 MC

¿Por qué son importantes los tests de regresión?

  • A. Reemplazan tests
  • B. Detectan que código nuevo no rompa funcionalidades existentes ✓ CORRECTA
  • C. Compilan
  • D. Son lentos
💡 Por qué es correcta:

Regresión: ejecutan tests anteriores después de cambios para asegurar que nada se rompió.

✍️ Test · Sección B · Preguntas abiertas (3)

11
✍️ AB

Diseña un test unitario para una función que valida un email.

💡 Por qué es correcta:

test_email_valido("user@example.com") == true. test_email_sin_arroba("userexample.com") == false. test_email_sin_dominio("user@") == false. test_email_vacio("") == false. test_email_con_espacios("user @example.com") == false. Casos límite: null, vacío, sin @, sin dominio, con espacios, con caracteres especiales.

12
✍️ AB

¿Qué es la cobertura de ramas (branch coverage)? ¿Por qué es más estricta que la de líneas?

💡 Por qué es correcta:

Cobertura de ramas: cada if/else debe ejecutarse tanto en el then como en el else. Líneas: cada línea ejecutada. Ramas es más estricta: 100% líneas puede tener 0% ramas si hay ifs no probados en una rama.

13
✍️ AB

¿Por qué es importante la documentación de APIs? Da un ejemplo de buena y mala documentación.

💡 Por qué es correcta:

Documentación: usuarios entienden cómo usar la API sin leer el código. Buena: descripción, parámetros con tipos, valor de retorno, excepciones, ejemplo de uso. Mala: solo el nombre de la función, sin descripción ni ejemplos.

📝 ¿Listo para evaluarte?

Regístrate o inicia sesión para tomar la autoevaluación o el test de este tema y registrar tu puntaje.