📚 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

2.08 · Testing: Pruebas de Escritorio y assert

16 preguntas con respuesta en este tema.

🎯 Autoevaluación (3)

1
🎯 AE

¿Qué es una prueba de escritorio?

  • A. Ejecutar el código en la PC
  • B. Simular la ejecución paso a paso con valores concretos en papel ✓ CORRECTA
  • C. Compilar
  • D. Compilar y ejecutar
💡 Por qué es correcta:

Prueba de escritorio: trazar manualmente la ejecución con valores específicos para verificar la lógica antes de codificar.

2
🎯 AE

¿Qué hace la macro `assert` en C++?

  • A. Confirma que el programa compila
  • B. Verifica que una condición sea verdadera; si no, aborta ✓ CORRECTA
  • C. Es un comentario
  • D. Es un bucle
💡 Por qué es correcta:

assert(x > 0) verifica que x > 0. Si es false, el programa aborta con mensaje de error. Útil para depuración.

3
🎯 AE

¿Por qué son importantes los tests?

  • A. Para llenar el código
  • B. Para verificar que el código funciona correctamente y prevenir regresiones ✓ CORRECTA
  • C. Para hacerlo más lento
  • D. No son importantes
💡 Por qué es correcta:

Tests automatizados detectan bugs temprano, permiten refactorizar con confianza, documentan el comportamiento esperado.

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

1
📝 MC

¿Qué es una prueba de escritorio?

  • A. Ejecutar en PC
  • B. Simular manualmente la ejecución con valores concretos ✓ CORRECTA
  • C. Compilar
  • D. Debug
💡 Por qué es correcta:

Prueba de escritorio: trazar paso a paso en papel antes de ejecutar.

2
📝 MC

¿Para qué sirve una prueba de escritorio?

  • A. Compilar
  • B. Verificar la lógica antes de codificar ✓ CORRECTA
  • C. Ejecutar
  • D. Hacer bonito
💡 Por qué es correcta:

Detecta errores lógicos ANTES de ejecutar el código.

3
📝 MC

¿Qué hace assert en C++?

  • A. Confirma compilación
  • B. Verifica condición: si es false, aborta con error ✓ CORRECTA
  • C. Lee input
  • D. Es un bucle
💡 Por qué es correcta:

assert(x > 0) verifica. Si es false, aborta con mensaje.

4
📝 MC

¿En qué header está assert?

  • A. <iostream>
  • B. <cassert> o <assert.h> ✓ CORRECTA
  • C. <vector>
  • D. <string>
💡 Por qué es correcta:

#include <cassert> o <assert.h>. En C++ moderno: <cassert>.

5
📝 MC

assert(false) hace:

  • A. Nada
  • B. Aborta el programa con mensaje de error ✓ CORRECTA
  • C. Compila
  • D. Reinicia
💡 Por qué es correcta:

assert(false) dispara el assert y aborta mostrando el archivo:línea.

6
📝 MC

¿Por qué son importantes los tests automatizados?

  • A. Para llenar código
  • B. Detectan regresiones y validan el comportamiento ✓ CORRECTA
  • C. Para hacerlo más lento
  • D. No son importantes
💡 Por qué es correcta:

Tests automatizados: detectan bugs temprano, permiten refactorizar con confianza.

7
📝 MC

En NDEBUG activo, ¿qué pasa con assert?

  • A. Se ejecuta
  • B. Se desactiva (no hace nada) ✓ CORRECTA
  • C. Compila
  • D. Falla
💡 Por qué es correcta:

#define NDEBUG desactiva assert. Útil en producción.

8
📝 MC

¿Qué es regresión en software?

  • A. Mejora
  • B. Un bug que reaparece o nueva funcionalidad que rompe algo existente ✓ CORRECTA
  • C. Compilar
  • D. Test
💡 Por qué es correcta:

Regresión: código nuevo que rompe funcionalidad que antes funcionaba.

9
📝 MC

Test unitario verifica:

  • A. Todo el sistema
  • B. Una unidad (función, método) en aislamiento ✓ CORRECTA
  • C. La red
  • D. La base de datos
💡 Por qué es correcta:

Test unitario: una unidad pequeña de código. Base de la pirámide de tests.

10
📝 MC

Test de integración verifica:

  • A. Una función
  • B. La interacción entre múltiples componentes ✓ CORRECTA
  • C. El hardware
  • D. La red
💡 Por qué es correcta:

Test de integración: cómo interactúan los módulos entre sí.

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

11
✍️ AB

Diseña un test unitario para una función "esPar(int n)" en pseudocódigo.

💡 Por qué es correcta:

Test 1: input=2, expected=true, assert esPar(2)==true. Test 2: input=3, expected=false, assert esPar(3)==false. Test 3: input=0, expected=true, assert esPar(0)==true. Test 4: input=-4, expected=true, assert esPar(-4)==true. Casos: positivo par, positivo impar, cero, negativo.

12
✍️ AB

¿Qué es la cobertura de código? ¿Por qué 100% no garantiza ausencia de bugs?

💡 Por qué es correcta:

Cobertura: porcentaje de líneas/ramas ejecutadas por los tests. 100% cobertura no garantiza: tests que solo verifican happy path, sin assertions significativas, mocks que no reflejan comportamiento real, errores lógicos. Cobertura es necesaria pero no suficiente.

13
✍️ AB

Explica la diferencia entre tests unitarios, de integración y end-to-end. Da un ejemplo de cada uno.

💡 Por qué es correcta:

Unitario: una función/clase aislada (esPar, sumar). Integración: interacción entre módulos (login + BD). E2E: flujo completo desde UI (registro, login, comprar).

📝 ¿Listo para evaluarte?

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