Pensamiento computacional · Sección 8

Pruebas, invariantes y depuración

Casos de prueba, fronteras, propiedades, trazas y un método sistemático para localizar y corregir fallos.

3
lecciones
3
ejercicios resueltos
CONTENIDO ORIGINAL

Avanza en orden. Cada lección está redactada para Palta es Cool, utiliza ejemplos propios y termina con una actividad cuya respuesta puedes desplegar.

ANTES DE EMPEZAR

Ubícate antes de avanzar

01 / PUNTO DE PARTIDA

Conviene haber comprendido Estructuras de datos y complejidad.

02 / META OBSERVABLE

Al terminar deberías poder relacionar Casos de prueba con Invariantes y resolver un caso nuevo.

03 / TIEMPO SUGERIDO

Reserva entre 75 y 120 minutos o divide el laboratorio en dos sesiones.

04 / PREPARA EL LABORATORIO

Las primeras cuatro secciones no requieren software. Para prototipos usa Tinkercad o Arduino IDE.

Abrir la guía de herramientas →
Diagnóstico rápido: ¿cómo se relacionan Casos de prueba y Invariantes?

No necesitas acertar todavía. Escribe una hipótesis de dos líneas y compárala con tu respuesta al finalizar; si puedes corregirla y justificar el cambio, hubo aprendizaje.

Ruta guiada · 3 lecciones

Aprende el tema paso a paso

Convertirás “parece funcionar” en evidencia: diseñarás pruebas, formularás propiedades que siempre deben cumplirse y depurarás fallos de forma reproducible.

Al terminar podrás
  • Una buena prueba busca diferencias de comportamiento
  • Un invariante debe seguir siendo cierto durante el proceso
  • Reproducir, reducir, observar y comprobar supera adivinar
01
Diseñar casos

Una buena prueba busca diferencias de comportamiento

Se agrupan entradas equivalentes y se elige un representante; se prueban fronteras justo antes, en y después del límite; se incluyen datos vacíos, inválidos y extremos esperados.

01

Caso normal confirma el recorrido principal.

02

Frontera descubre comparaciones mal elegidas.

03

Caso inválido comprueba rechazo y mensaje.

Comprueba lo aprendido · 01

¿Muchas pruebas aleatorias sustituyen casos de frontera elegidos?

Mostrar respuesta

No. Pueden no alcanzar exactamente el límite. Se combinan ejemplos deliberados con generación aleatoria o basada en propiedades.

02
Propiedades e invariantes

Un invariante debe seguir siendo cierto durante el proceso

Una propiedad expresa una regla general: el saldo total se conserva, una lista ordenada no decrece o el contador nunca es negativo. Las aserciones detectan cerca del origen cuándo deja de cumplirse.

01

Formula la regla independiente de la implementación.

02

Comprueba antes y después de la operación relevante.

03

No uses aserciones para sustituir validación de entradas externas.

Comprueba lo aprendido · 02

¿Por qué probar solo el resultado final puede ocultar el origen?

Mostrar respuesta

El estado pudo corromperse antes y compensarse después. Invariantes intermedios señalan el primer punto donde aparece la desviación.

03
Depurar con evidencia

Reproducir, reducir, observar y comprobar supera adivinar

Primero se obtiene un caso repetible; luego se elimina lo irrelevante; se observa el estado cerca del fallo; se formula una hipótesis y se cambia una cosa. Finalmente se agrega una prueba de regresión.

01

Distingue causa del lugar donde aparece el síntoma.

02

Registra entradas, versión y secuencia mínima.

03

Confirma que la corrección no rompe casos vecinos.

Comprueba lo aprendido · 03

¿Por qué añadir impresiones por todas partes puede confundir?

Mostrar respuesta

Produce ruido y puede alterar tiempos. Se observa una hipótesis concreta con registros estructurados, depurador o una prueba mínima.

Resumen de la sección

Tu recorrido en tres ideas

  1. Una buena prueba busca diferencias de comportamiento
  2. Un invariante debe seguir siendo cierto durante el proceso
  3. Reproducir, reducir, observar y comprobar supera adivinar
PROFUNDIZACIÓN / LABORATORIO GUIADO

Encuentra un error que aparece justo en el límite

Integra clases de equivalencia, fronteras, invariantes, trazas, reducción del fallo y regresión.

CASO

Una tarifa funciona casi siempre, pero cobra de más cuando el consumo llega exactamente a 100 unidades.

Procedimiento

  1. Escribe resultados esperados para 99, 100 y 101 antes de cambiar código.
  2. Reduce el fallo, traza condición y acumuladores y formula una hipótesis.
  3. Corrige una causa y conserva los tres casos como regresión.

Evidencia mínima

  • Caso mínimo que falla.
  • Primera línea donde valor real y esperado divergen.
  • Prueba que falla antes y pasa después.
Mostrar razonamiento modelo

Cambiar <= por < solo es válido si la regla confirma quién incluye el límite. La depuración conecta especificación, traza y prueba; no termina cuando el ejemplo visible deja de fallar.

Para ir más lejos

¿Qué propiedad podrías probar para cualquier consumo válido?

CIERRE DE LA SECCIÓN

Comprueba que puedes usarlo

Antes de continuar, revisa estos tropiezos frecuentes y resuelve un caso sin copiar los ejemplos.

ERROR 01

Probar solo el camino feliz.

ERROR 02

Cambiar varias cosas durante la depuración sin una hipótesis.

DESAFÍO INTEGRADOR

Ahora hazlo sin guía

Diseña pruebas y depura un cálculo de tarifa que falla al cruzar el límite mensual.

Mostrar pauta de corrección
Una respuesta sólida:
  • Incluye equivalencias, fronteras e inválidos.
  • Formula al menos un invariante.
  • Deja una prueba de regresión para el fallo mínimo.