Volver al Módulo 4

COA — Lógica de Programación

Módulo 5: Construir, probar y corregir

Duración obligatoria

2 horas y 30 minutos

Nivel

Principiante absoluto

Conocimientos previos

Módulos 1, 2, 3 y 4 aprobados

Modalidad

Práctica, independiente de cualquier lenguaje

Materiales: Papel, lápiz y calculadora sencilla opcional

Herramientas opcionales: PSeInt o un editor de texto

7 ejercicios2 retos1 mini proyecto1 evaluación
0%

Objetivo del módulo

Construir algoritmos completos a partir de requisitos, comprobarlos con casos de prueba y corregir sus errores mediante un proceso ordenado y basado en evidencia.

Al terminar el módulo, podrá:

  • convertir una situación cotidiana en requisitos claros;
  • separar entradas, reglas, procesos, salidas y casos inválidos;
  • reconocer requisitos incompletos o ambiguos;
  • establecer resultados esperados antes de probar;
  • diseñar casos normales, límite, inválidos y sin datos;
  • comprobar todos los caminos importantes de una decisión;
  • probar cero, una y varias iteraciones;
  • realizar una prueba de escritorio;
  • comparar resultado esperado y resultado obtenido;
  • localizar el primer punto donde ambos se separan;
  • diferenciar síntoma, causa y corrección;
  • reconocer errores de cálculo, condición, límite, actualización y finalización;
  • corregir una causa sin ocultar sus síntomas;
  • repetir las pruebas después de una corrección;
  • documentar qué falló, cómo se corrigió y qué evidencia demuestra el resultado;
  • decidir cuándo un algoritmo está suficientemente comprobado para el alcance del problema.

Este módulo no enseña herramientas de depuración de Python, Java, JavaScript ni otro lenguaje. Enseña el razonamiento necesario para probar y corregir cualquier algoritmo.

Distribución del tiempo

SecciónTiempo
Activación y diagnóstico5 min
Construcción desde requisitos15 min
Diseño de casos de prueba20 min
Prueba de escritorio y rastreo20 min
Diagnóstico y corrección20 min
Ejemplos, actividad y ejercicios25 min
Retos10 min
Mini proyecto30 min
Evaluación y cierre5 min
Total150 min

Mapa del aprendizaje

Pseudocódigo
PROBLEMA
   ↓
REQUISITOS CLAROS
   ↓
RESULTADOS ESPERADOS
   ↓
ALGORITMO
   ↓
CASOS DE PRUEBA
   ↓
PRUEBA DE ESCRITORIO
   ↓
¿ESPERADO = OBTENIDO?
├── Sí → CONSERVAR LA PRUEBA Y CONTINUAR
└── No → LOCALIZAR LA PRIMERA DIFERENCIA
             ↓
          CORREGIR LA CAUSA
             ↓
          REPETIR TODAS LAS PRUEBAS

PARTE 1 — ACTIVACIÓN

Pregunta guía

Si un algoritmo produce la respuesta correcta una vez, ¿eso demuestra que siempre funciona?

Considere esta regla:

Las personas de 65 años o más pagan 2 unidades. Las demás pagan 5.

Algoritmo:

Pseudocódigo
SI edad > 65 ENTONCES
    precio ← 2
SINO
    precio ← 5
FIN SI

Con edad ← 70, el resultado es correcto.

Pero con edad ← 65, el algoritmo cobra 5.

Un caso exitoso demuestra únicamente que el algoritmo funcionó para ese caso. No demuestra que:

  • los límites sean correctos;
  • los datos inválidos estén contemplados;
  • todos los caminos funcionen;
  • una repetición termine;
  • los totales se actualicen correctamente.

Diagnóstico inicial sin calificación

Una tienda aplica estas reglas:

  • compras menores que 50 no reciben descuento;
  • compras desde 50 hasta menos de 100 reciben 5 %;
  • compras de 100 o más reciben 10 %;
  • una compra negativa es inválida.

Responda:

  1. ¿Qué valores utilizaría para probar el límite de 50?
  2. ¿Qué valores utilizaría para probar el límite de 100?
  3. ¿Qué valor comprobaría la entrada inválida?
  4. ¿Bastaría con probar únicamente 75? ¿Por qué?
  5. Para una compra de 100, ¿cuál es el resultado esperado?
  6. Si el algoritmo devuelve 5 % para 100, ¿en qué regla comenzaría a investigar?

Propósito

Probar no consiste en ingresar números al azar. Consiste en elegir datos que permitan confirmar o refutar reglas concretas.

PARTE 2 — CONSTRUIR DESDE REQUISITOS

Antes del pseudocódigo

Un error frecuente es comenzar a escribir instrucciones antes de comprender el problema.

La construcción debe comenzar con preguntas:

Pseudocódigo
¿Qué debe resolver?
¿Qué datos recibe?
¿Qué resultados debe producir?
¿Qué reglas transforman las entradas?
¿Qué datos no son válidos?
¿Qué ocurre en los límites?
¿Cuándo termina?

Analogía: una receta

Antes de cocinar es necesario conocer:

  • qué plato se espera;
  • para cuántas personas;
  • qué ingredientes existen;
  • qué restricciones deben respetarse;
  • cómo reconocer que está terminado.

Un algoritmo puede seguir instrucciones perfectamente y aun así resolver el problema equivocado si la solicitud no se entendió.

Requisito

Un requisito es una condición o comportamiento que la solución debe cumplir.

Ejemplo:

El sistema debe aceptar notas entre 0 y 100, incluidos ambos límites.

De este requisito se obtiene:

Pseudocódigo
dato válido: nota ≥ 0 Y nota ≤ 100
dato inválido: nota < 0 O nota > 100

Y también aparecen pruebas:

Pseudocódigo
-1, 0, 1, 99, 100, 101

Un requisito claro permite:

  • construir;
  • probar;
  • explicar;
  • decidir si el resultado es correcto.

Cinco grupos de información

Antes de escribir el algoritmo, organice el problema.

GrupoPregunta
Entradas¿Qué información recibe?
Reglas¿Qué condiciones y operaciones debe aplicar?
Salidas¿Qué debe mostrar o producir?
Casos inválidos¿Qué información debe rechazarse?
Finalización¿Cuándo termina el proceso?

Ejemplo: registrar donaciones

Regla:

Registrar donaciones positivas hasta ingresar 0. Mostrar cantidad, total y promedio.

Pseudocódigo
ENTRADAS
donación

REGLAS
aceptar valores mayores que 0
0 termina
negativos son inválidos

SALIDAS
cantidad
total
promedio o mensaje sin datos

CASOS INVÁLIDOS
valores negativos

FINALIZACIÓN
cuando la entrada sea 0

Criterios de éxito

Un criterio de éxito describe algo observable que debe cumplirse.

Para las donaciones:

Pseudocódigo
1. Una donación positiva aumenta la cantidad en 1.
2. Una donación positiva se suma al total.
3. Una donación negativa no se suma ni se cuenta.
4. El valor 0 termina y no se procesa.
5. Si no hay donaciones válidas, no se divide entre cero.
6. El promedio utiliza únicamente donaciones válidas.

Estos criterios se convierten después en casos de prueba.

Ambigüedades

Una regla es ambigua cuando permite más de una interpretación razonable.

Ejemplo:

Las personas menores pagan descuento.

Faltan respuestas:

  • ¿menores de qué edad?
  • ¿el límite está incluido?
  • ¿cuánto descuento?
  • ¿qué edades son válidas?
  • ¿qué ocurre si la edad es negativa?

No conviene inventar silenciosamente una regla.

Si no puede preguntar

Cuando un ejercicio no permite consultar a la persona responsable:

  1. escriba la ambigüedad;
  2. declare una suposición;
  3. aplíquela de forma consistente;
  4. incluya una prueba que muestre su efecto.

Ejemplo:

Pseudocódigo
SUPOSICIÓN
"Menor" significa edad < 18.

Método de construcción en seis pasos

Pseudocódigo
1. COMPRENDER
2. ORGANIZAR
3. PROPONER EJEMPLOS
4. DISEÑAR
5. ESCRIBIR
6. REVISAR

Comprender

Explique el problema con sus propias palabras.

Organizar

Separe entradas, reglas, salidas, inválidos y final.

Proponer ejemplos

Calcule manualmente al menos un resultado normal y un límite.

Diseñar

Decida qué partes son:

  • secuenciales;
  • decisiones;
  • repeticiones.

Escribir

Construya el algoritmo y el pseudocódigo.

Revisar

Compruebe que cada requisito aparece y que no agregó reglas inexistentes.

PARTE 3 — DISEÑAR PRUEBAS ÚTILES

¿Qué es un caso de prueba?

Un caso de prueba contiene:

  • una entrada específica;
  • un resultado esperado;
  • la regla que se desea comprobar;
  • el resultado obtenido;
  • la conclusión.

Plantilla

IDObjetivoEntradaResultado esperadoResultado obtenidoEstado
P1

El resultado esperado debe escribirse antes de recorrer el algoritmo. De lo contrario, existe el riesgo de aceptar como correcto cualquier resultado que aparezca.

Resultado esperado y resultado obtenido

Pseudocódigo
RESULTADO ESPERADO
lo que las reglas indican que debe ocurrir

RESULTADO OBTENIDO
lo que el algoritmo realmente produce

Si coinciden, el caso pasa.

Si no coinciden, el caso falla y proporciona evidencia de un defecto.

Pseudocódigo
esperado = 10 % de descuento
obtenido = 5 % de descuento
estado = FALLA

Una falla no dice todavía cuál línea está mal. Dice que existe una diferencia que debe investigarse.

Caso normal

Un caso normal utiliza un valor claramente dentro de una regla.

Para el rango de notas 0 a 100:

Pseudocódigo
nota = 75

Para precio de persona adulta:

Pseudocódigo
edad = 30

Los casos normales son necesarios, pero suelen ser los más fáciles. No deben ser los únicos.

Caso límite

Un límite es un punto donde cambia la regla.

Si:

Pseudocódigo
edad < 12 → precio infantil
edad ≥ 12 → precio general

pruebe:

Pseudocódigo
11 → justo antes
12 → exactamente en el límite
13 → justo después

Regla de tres valores

Para cada límite numérico:

Pseudocódigo
límite - 1
límite
límite + 1

Cuando se usan decimales, elija valores inmediatamente cercanos según la precisión permitida.

Caso inválido

Un caso inválido comprueba que el algoritmo rechace información imposible o prohibida.

Ejemplos:

Pseudocódigo
edad = -3
nota = 120
cantidad = -8
hora = 25
opción = 9 cuando solo existen 1, 2 y 3

No basta con que el algoritmo calcule correctamente para datos válidos. También debe proteger las reglas ante datos que no corresponden.

Caso sin datos

Algunos algoritmos permiten terminar antes de procesar información.

Ejemplo:

Pseudocódigo
0 es centinela
primera entrada = 0

Debe comprobarse:

  • que el ciclo no procese el centinela;
  • que los contadores sigan en cero;
  • que no exista división entre cero;
  • que aparezca un mensaje apropiado.

Casos de repetición

Para una repetición controlada por condición, pruebe:

CasoQué comprueba
Cero iteracionesSalida inmediata
Una iteraciónEntrada y salida en una vuelta
Varias iteracionesActualizaciones sucesivas
Dato inválido dentroRechazo sin dañar el estado
Límite de salidaMomento exacto de terminar

Para un ciclo con máximo tres intentos:

Pseudocódigo
acierto en el primero
acierto en el tercero
tres fallos

Familias de casos

No es necesario probar todos los números posibles. Se agrupan valores que deberían seguir la misma regla.

Ejemplo de edades:

FamiliaComportamiento
Menor que 1Inválida
1 a 11Precio infantil
12 a 64Precio general
65 a 120Precio de persona mayor
Mayor que 120Inválida

Se selecciona al menos:

  • un valor normal de cada familia;
  • los valores alrededor de sus límites.

Este método reduce pruebas repetidas que no aportan nueva información.

Cobertura práctica

Para este curso, una prueba suficiente debe recorrer:

  • cada salida principal;
  • cada categoría;
  • cada mensaje de error;
  • cada límite;
  • cero, una y varias iteraciones cuando existan ciclos;
  • el final normal.

No se utilizarán porcentajes ni herramientas profesionales de cobertura.

La pregunta será:

¿Existe algún camino importante que ninguna prueba haya recorrido?

Video obligatorio sobre prueba de escritorio

🎥 Video obligatorio

Pruebas de escritorio: clave para entender algoritmos — Charly Cimino

Duración: 6 minutos y 16 segundos Tema exacto: Seguimiento de variables y detección de resultados inesperados Antes de continuar: Observe cómo se registra cada cambio. La tabla puede hacerse en papel.

PARTE 4 — PRUEBA DE ESCRITORIO

¿Qué es una prueba de escritorio?

Es la ejecución manual de un algoritmo.

La persona actúa como si fuera la computadora:

  1. lee una instrucción;
  2. evalúa las expresiones;
  3. actualiza las variables;
  4. elige el camino correspondiente;
  5. registra las salidas;
  6. repite hasta finalizar.

No se corrige mientras se rastrea. Primero se registra honestamente lo que el algoritmo hace.

Tabla básica de rastreo

Algoritmo:

Pseudocódigo
LEER cantidad
precio ← 4
subtotal ← cantidad * precio

SI cantidad ≥ 5 ENTONCES
    descuento ← subtotal * 0.10
SINO
    descuento ← 0
FIN SI

total ← subtotal - descuento
MOSTRAR total

Caso:

Pseudocódigo
cantidad = 5
PasoInstrucción o condiciónCantidadSubtotalDescuentoTotalSalida
1Leer cantidad5
2precio ← 45
3Calcular subtotal520
4cantidad ≥ 5520VERDADERO
5Calcular descuento5202
6Calcular total520218
7Mostrar52021818

Resultado esperado:

Pseudocódigo
18

Resultado obtenido:

Pseudocódigo
18

Estado:

Pseudocódigo
PASA

Rastreo de decisiones

En cada condición registre:

  • la expresión completa;
  • el resultado verdadero o falso;
  • el camino elegido.

Ejemplo:

Pseudocódigo
edad ≥ 12 Y edad ≤ 17

Para edad ← 18:

Pseudocódigo
18 ≥ 12 → VERDADERO
18 ≤ 17 → FALSO
VERDADERO Y FALSO → FALSO
camino elegido → SINO

Esto ayuda a detectar si el error está:

  • en los datos;
  • en una comparación;
  • en un operador;
  • en el orden de los caminos.

Rastreo de ciclos

Registre una fila por iteración.

Pseudocódigo
total ← 0

PARA numero DESDE 1 HASTA 3 HACER
    total ← total + numero
FIN PARA
IteraciónNúmeroTotal anteriorOperaciónTotal nuevo
1100 + 11
2211 + 23
3333 + 36

Si el ciclo es MIENTRAS, agregue:

  • resultado de la condición;
  • valor que provoca la salida.

La primera diferencia

La pista más valiosa es el primer momento donde:

Pseudocódigo
valor esperado ≠ valor obtenido

Ejemplo:

Pseudocódigo
total esperado después del segundo dato = 15
total obtenido = 10

Si antes de esa instrucción ambos eran 5, la investigación debe comenzar en la actualización del segundo dato.

No conviene comenzar por la última salida si el estado ya era incorrecto desde varias instrucciones antes.

Rastrear solo lo necesario

Una tabla puede incluir:

  • variables que cambian;
  • condiciones importantes;
  • salida producida.

No necesita repetir información que nunca cambia, salvo que ayude a comprender una fórmula.

El objetivo no es llenar una tabla enorme. Es poder responder:

Pseudocódigo
¿qué valor tenía?
¿qué instrucción lo cambió?
¿qué valor obtuvo?
¿era el esperado?

PARTE 5 — DIAGNOSTICAR Y CORREGIR

Error, síntoma y causa

Síntoma

Lo que se observa.

Pseudocódigo
El total final es demasiado bajo.

Causa

La instrucción o decisión que origina el problema.

Pseudocódigo
El total se reemplaza en vez de acumularse.

Corrección

El cambio que elimina la causa.

Pseudocódigo
total ← total + valor

Cambiar solamente el mensaje final no arreglaría el acumulador.

Error de requisito

El algoritmo resuelve una regla distinta de la solicitada.

Requisito:

Pseudocódigo
65 años o más

Algoritmo:

Pseudocódigo
edad > 65

La lógica ejecuta exactamente lo escrito, pero lo escrito no representa el requisito.

Corrección:

Pseudocódigo
edad ≥ 65

Error de condición

Se utiliza una comparación u operador incorrecto.

Requisito:

Tener inscripción y cupo.

Incorrecto:

Pseudocódigo
inscripcion_confirmada O cupos > 0

Corrección:

Pseudocódigo
inscripcion_confirmada Y cupos > 0

Error de cálculo

La fórmula no representa la operación correcta.

Incorrecto:

Pseudocódigo
descuento ← subtotal * 10

Corrección para 10 %:

Pseudocódigo
descuento ← subtotal * 0.10

Una prueba con números fáciles, como 100, ayuda a reconocer el error.

Error de límite

El algoritmo incluye o excluye accidentalmente un valor extremo.

Pseudocódigo
hora ≥ 8 Y hora ≤ 17

es incorrecto si el servicio cierra exactamente a las 17.

Corrección:

Pseudocódigo
hora ≥ 8 Y hora < 17

Error de estado o actualización

La variable no conserva el valor correcto.

Incorrecto:

Pseudocódigo
total ← valor

si se desea acumular.

Correcto:

Pseudocódigo
total ← total + valor

Otro ejemplo:

Pseudocódigo
contador ← 0

dentro de un ciclo puede borrar todo lo contado.

Error de finalización

El ciclo:

  • no actualiza la variable de control;
  • cambia en dirección contraria;
  • nunca vuelve a leer;
  • utiliza una condición imposible de finalizar;
  • procesa el centinela como dato.

Estos errores pueden provocar:

  • ciclo infinito;
  • una iteración adicional;
  • salida demasiado temprana;
  • datos repetidos.

Método de depuración en siete pasos

Pseudocódigo
1. REPRODUCIR
2. DEFINIR LO ESPERADO
3. REDUCIR
4. RASTREAR
5. FORMULAR UNA CAUSA
6. CORREGIR UNA COSA
7. VOLVER A PROBAR

Reproducir

Conserve una entrada que demuestre la falla.

Definir lo esperado

Calcule manualmente la respuesta correcta.

Reducir

Utilice el caso más pequeño que todavía muestre el problema.

Rastrear

Busque la primera diferencia.

Formular una causa

Explique por qué esa instrucción genera el resultado.

Corregir una cosa

Realice un cambio controlado. Varios cambios simultáneos dificultan saber cuál resolvió o creó un problema.

Volver a probar

Ejecute:

  • el caso que falló;
  • los casos que ya pasaban;
  • los límites relacionados.

Prueba de regresión

Después de una corrección, un caso antiguo podría fallar.

Ejemplo:

  • corregir el precio para edad 65;
  • volver a probar 11, 12, 64, 65 y 66.

La prueba que se repite después de un cambio se utiliza para comprobar que la corrección no dañó comportamientos anteriores.

En este curso llamaremos conjunto de regresión a la lista breve de casos que se vuelve a ejecutar después de cada arreglo.

Registro de errores

IDCaso que fallaSíntomaPrimera diferenciaCausaCorrecciónResultado posterior
E1Edad 65Precio 5Condición de edadSe utilizó >Cambiar a Pasa

Documentar evita:

  • repetir la misma investigación;
  • olvidar qué se cambió;
  • afirmar que algo está arreglado sin evidencia.

Video obligatorio sobre depuración

🎥 Video obligatorio

Debugging (Depuración): definición, uso y práctica — Ingeniela

Duración: 9 minutos y 46 segundos Tema exacto: Proceso ordenado para encontrar y corregir errores Antes de continuar: Relacione sus pasos con reproducir, rastrear, formular una causa y volver a probar.

PARTE 6 — EJEMPLOS RESUELTOS

Ejemplo 1: descuento en el límite

Requisito

  • subtotal menor que 50: sin descuento;
  • subtotal de 50 o más: 10 %;
  • subtotal negativo: inválido.

Algoritmo defectuoso

Pseudocódigo
LEER subtotal

SI subtotal > 50 ENTONCES
    descuento ← subtotal * 0.10
SINO
    descuento ← 0
FIN SI

total ← subtotal - descuento
MOSTRAR total

Casos

EntradaEsperado
-1Subtotal inválido
49Total 49
50Total 45
51Total 45.9

Diagnóstico

  • -1: falta validación.
  • 50: subtotal > 50 es falso; el límite debe incluirse.

Corrección

Pseudocódigo
LEER subtotal

SI subtotal < 0 ENTONCES
    MOSTRAR "Subtotal inválido"
SINO
    SI subtotal ≥ 50 ENTONCES
        descuento ← subtotal * 0.10
    SINO
        descuento ← 0
    FIN SI

    total ← subtotal - descuento
    MOSTRAR total
FIN SI

Después se repiten los cuatro casos.

Ejemplo 2: acumulador que olvida

Requisito

Sumar tres valores.

Algoritmo defectuoso

Pseudocódigo
total ← 0

PARA posicion DESDE 1 HASTA 3 HACER
    LEER valor
    total ← valor
FIN PARA

MOSTRAR total

Caso:

Pseudocódigo
4, 6, 5

Esperado:

Pseudocódigo
15

Rastreo:

IteraciónValorTotal esperadoTotal obtenido
1444
26106
35155

La primera diferencia aparece en la segunda iteración.

Corrección:

Pseudocódigo
total ← total + valor

Ejemplo 3: ciclo que no recibe un dato nuevo

Algoritmo defectuoso

Pseudocódigo
LEER numero

MIENTRAS numero ≠ 0 HACER
    MOSTRAR numero
FIN MIENTRAS

Con numero ← 5, muestra 5 indefinidamente.

La condición depende de numero, pero el cuerpo nunca lo modifica.

Corrección:

Pseudocódigo
LEER numero

MIENTRAS numero ≠ 0 HACER
    MOSTRAR numero
    LEER numero
FIN MIENTRAS

Pruebas:

Pseudocódigo
0
5, 0
5, 8, 0

Ejemplo 4: construir, probar y corregir

Requisito

Leer una nota y mostrar:

  • inválida si está fuera de 0 a 100;
  • excelente desde 90;
  • aprobada desde 70;
  • necesita mejorar en cualquier otro caso válido.

Casos antes del algoritmo

NotaEsperado
-1Inválida
0Necesita mejorar
69Necesita mejorar
70Aprobada
89Aprobada
90Excelente
100Excelente
101Inválida

Diseño

Pseudocódigo
validar
clasificar de la categoría más alta a la más baja
definir caso restante

Pseudocódigo

Pseudocódigo
LEER nota

SI nota < 0 O nota > 100 ENTONCES
    MOSTRAR "Nota inválida"
SINO SI nota ≥ 90 ENTONCES
    MOSTRAR "Excelente"
SINO SI nota ≥ 70 ENTONCES
    MOSTRAR "Aprobada"
SINO
    MOSTRAR "Necesita mejorar"
FIN SI

Los ocho casos recorren todos los caminos y sus límites.

PARTE 7 — ACTIVIDAD SIN COMPUTADORA

Hospital de algoritmos

Roles

  • Persona solicitante: lee los requisitos.
  • Algoritmo: sigue exactamente las instrucciones.
  • Persona probadora: entrega casos y resultados esperados.
  • Observadora: registra el primer punto de diferencia.

Requisitos

Pseudocódigo
Edad válida: 1 a 120.
Menor de 12: precio 3.
De 12 a 64: precio 5.
Desde 65: precio 2.

Algoritmo con error

Pseudocódigo
SI edad < 12 ENTONCES
    precio ← 3
SINO SI edad > 65 ENTONCES
    precio ← 2
SINO
    precio ← 5
FIN SI

Tarjetas de prueba

Pseudocódigo
-1, 1, 11, 12, 64, 65, 66, 120, 121

Instrucciones

  1. La persona probadora escribe el resultado esperado.
  2. El algoritmo recorre las instrucciones sin interpretarlas.
  3. La observadora registra condición, camino y precio.
  4. Se marcan los casos que fallan.
  5. El grupo propone una causa.
  6. Se realiza un solo cambio.
  7. Se repiten todas las tarjetas.

Aprendizaje esperado

El algoritmo no puede “entender la intención”. Ejecuta las reglas expresadas. Las pruebas conectan la intención con el comportamiento real.

PARTE 8 — EJERCICIOS

Los ejercicios son práctica guiada. No se envían uno por uno. Intente resolverlos antes de abrir sus soluciones.

📝 Ejercicio

Ejercicio 1 — El interrogatorio de requisitos

Una biblioteca dice:

Una persona puede llevar libros si es miembro y no tiene demasiados préstamos. Las personas con deuda no pueden retirar.

Antes de construir el algoritmo:

  1. identifique las entradas mencionadas;
  2. identifique las reglas claras;
  3. escriba al menos cinco preguntas necesarias;
  4. explique qué significa “demasiados” y por qué no puede adivinarse;
  5. proponga una versión completa de los requisitos mediante suposiciones explícitas;
  6. separe entradas, reglas, salidas, inválidos y finalización;
  7. escriba cuatro criterios de éxito;
  8. diseñe cinco casos de prueba con su resultado esperado.
📝 Ejercicio

Ejercicio 2 — Fronteras de una entrada

Un museo establece:

  • edades válidas de 1 a 120;
  • de 1 a 11: precio 3;
  • de 12 a 64: precio 5;
  • de 65 a 120: precio 2.

Realice:

  1. tabla con las familias de valores;
  2. selección de un caso normal por familia;
  3. casos justo antes, en y después de los límites 1, 12, 65 y 120;
  4. resultado esperado de cada caso;
  5. conjunto mínimo que recorra todos los precios y los dos inválidos;
  6. explicación de por qué probar únicamente 30 es insuficiente.
📝 Ejercicio

Ejercicio 3 — Localice la primera diferencia

Requisito:

Sumar tres importes.

Algoritmo:

Pseudocódigo
total ← 0

PARA posicion DESDE 1 HASTA 3 HACER
    LEER importe
    total ← importe
FIN PARA

MOSTRAR total

Utilice:

Pseudocódigo
8, 4, 6

Debe:

  1. calcular el resultado esperado;
  2. construir una tabla por iteración;
  3. indicar la primera diferencia;
  4. identificar síntoma y causa;
  5. escribir la corrección;
  6. volver a rastrear;
  7. crear dos casos adicionales para el conjunto de regresión.
📝 Ejercicio

Ejercicio 4 — Todos los caminos del envío

Una tienda utiliza:

  • subtotal negativo: inválido;
  • subtotal menor que 40: envío 5;
  • subtotal desde 40: envío gratuito;
  • si el cliente es miembro y el subtotal es válido, recibe además 10 % de descuento sobre los productos;
  • el costo final es subtotal menos descuento más envío.

Realice:

  1. entradas, reglas, salidas e inválidos;
  2. pseudocódigo;
  3. casos para subtotal = -1, 0, 39, 40 y 41;
  4. para cada subtotal válido, pruebe miembro y no miembro;
  5. calcule los resultados esperados;
  6. indique qué casos prueban simultáneamente el límite del envío y el descuento;
  7. complete una prueba de escritorio para subtotal = 40 y miembro verdadero.
📝 Ejercicio

Ejercicio 5 — Ciclo congelado

Requisito:

Leer donaciones positivas hasta ingresar 0. Rechazar negativas y mostrar el total.

Algoritmo defectuoso:

Pseudocódigo
total ← 0
LEER donacion

MIENTRAS donacion ≠ 0 HACER
    SI donacion > 0 ENTONCES
        total ← donacion
    SINO
        MOSTRAR "Donación inválida"
    FIN SI
FIN MIENTRAS

MOSTRAR total

Realice:

  1. prediga qué ocurre con la primera entrada 10;
  2. encuentre todos los errores;
  3. separe síntoma y causa para cada uno;
  4. corrija el pseudocódigo;
  5. pruebe 0;
  6. pruebe 10, 0;
  7. pruebe 10, -4, 5, 0;
  8. explique por qué el dato negativo no modifica el total.
📝 Ejercicio

Ejercicio 6 — Construya antes de corregir

Un estacionamiento necesita calcular el pago:

  • horas válidas: de 1 a 12;
  • primeras 2 horas: 3 unidades en total;
  • cada hora adicional cuesta 2;
  • una cantidad fuera del rango es inválida.

Ejemplos:

Pseudocódigo
1 hora → 3
2 horas → 3
3 horas → 5
5 horas → 9

Realice:

  1. entradas, reglas, salidas e inválidos;
  2. fórmula de las horas adicionales;
  3. pseudocódigo;
  4. casos para 0, 1, 2, 3, 11, 12 y 13;
  5. resultados esperados;
  6. prueba de escritorio para 3 horas;
  7. revisión que relacione cada requisito con una parte del algoritmo.
📝 Ejercicio

Ejercicio 7 — Regresión después del arreglo

Un algoritmo clasificaba correctamente edades infantiles y generales, pero cobraba precio general a los 65 años.

Corrección:

Pseudocódigo
Cambiar edad > 65 por edad ≥ 65.

Diseñe un conjunto de regresión que incluya:

  • edades inválidas;
  • todos los precios;
  • límites;
  • casos que funcionaban antes;
  • el caso que reveló el error.

Después:

  1. escriba al menos ocho entradas;
  2. indique el resultado esperado;
  3. explique qué prueba demuestra la corrección;
  4. explique cuáles comprueban que no se dañaron las otras categorías;
  5. redacte una fila de registro de error con síntoma, causa, cambio y evidencia.

PARTE 9 — RETOS

🚀 Reto

Reto 1 — Requisito imposible de probar

Una persona solicita:

El sistema debe cobrar una tarifa razonable a las personas jóvenes y una tarifa especial a las mayores.

Realice:

  1. enumere todas las palabras ambiguas;
  2. explique por qué no puede existir todavía un resultado esperado objetivo;
  3. redacte seis preguntas de aclaración;
  4. proponga requisitos completos y medibles;
  5. diseñe casos normales, límites e inválidos;
  6. escriba cómo cambiarían las pruebas si “mayor” significara > 65 en lugar de ≥ 65.
🚀 Reto

Reto 2 — El menor conjunto que revela todos los errores

Requisitos:

  • valores válidos de 1 a 100;
  • menores que 50: categoría "Baja";
  • desde 50: categoría "Alta";
  • procesar datos hasta ingresar 0;
  • contar únicamente datos válidos.

Algoritmo defectuoso:

Pseudocódigo
cantidad ← 0
LEER valor

MIENTRAS valor ≥ 0 HACER
    SI valor > 50 ENTONCES
        MOSTRAR "Alta"
    SINO
        MOSTRAR "Baja"
    FIN SI

    cantidad ← 0
    LEER valor
FIN MIENTRAS

MOSTRAR cantidad

Encuentre el conjunto más pequeño de casos de prueba que, en conjunto, revele:

  • procesamiento incorrecto del centinela;
  • límite incorrecto de 50;
  • aceptación de valores mayores que 100;
  • contador reiniciado;
  • condición de finalización incorrecta para un negativo.

Puede utilizar más de una secuencia si un dato de finalización impide probar los valores posteriores. Debe justificar qué error revela cada entrada. Después escriba la versión corregida y repita los casos.

PARTE 10 — MINI PROYECTO

🎯 Mini proyecto

Clínica de algoritmos: venta de entradas

Situación

Un museo registra visitantes uno por uno. Usted recibirá un algoritmo defectuoso y deberá diagnosticarlo, corregirlo y demostrar su funcionamiento.

Requisitos

  1. Se ingresa la edad de cada visitante.
  2. El valor 0 termina el registro y no representa una edad.
  3. Las edades válidas están entre 1 y 120.
  4. Una edad inválida muestra "Edad inválida" y no se cuenta.
  5. Precios:
  • de 1 a 11 años: 3;
  • de 12 a 64 años: 5;
  • de 65 a 120 años: 2.
  1. Cada visitante válido aumenta la cantidad.
  2. Cada precio válido se suma al total recaudado.
  3. Al finalizar:
  • mostrar cantidad y total;
  • calcular el precio promedio si hubo visitantes;
  • mostrar "No se registraron visitantes" si la primera entrada es 0 o no hubo edades válidas.

Algoritmo defectuoso

Pseudocódigo
cantidad ← 0
total_recaudado ← 0

LEER edad

MIENTRAS edad ≠ 0 HACER
    SI edad < 12 ENTONCES
        precio ← 3
    SINO SI edad > 65 ENTONCES
        precio ← 2
    SINO
        precio ← 5
    FIN SI

    cantidad ← 0
    total_recaudado ← precio
FIN MIENTRAS

promedio ← total_recaudado / cantidad

MOSTRAR cantidad
MOSTRAR total_recaudado
MOSTRAR promedio

No ejecute el algoritmo en una herramienta antes de analizarlo. Comience con requisitos, predicción y rastreo.

🎯 Mini proyecto

Entregables del mini proyecto

Parte 1 — Matriz de requisitos

Complete:

IDRequisitoEntrada relacionadaSalida o efecto esperado
R1

Incluya los ocho requisitos.

Parte 2 — Predicción inicial

Explique qué ocurriría si la primera edad fuera:

Pseudocódigo
10

Indique:

  • qué mostraría repetidamente;
  • qué variables cambiarían;
  • si el ciclo terminaría;
  • cuál sería la primera causa visible.

Parte 3 — Registro de errores

Localice al menos siete defectos.

IDRequisito afectadoSíntomaCausa en el pseudocódigoCorrección
E1

Parte 4 — Pseudocódigo corregido

La solución debe:

  • validar antes de clasificar;
  • utilizar correctamente los límites;
  • leer una nueva edad;
  • contar y acumular;
  • proteger el promedio;
  • mostrar el caso sin visitantes.

Parte 5 — Diagrama de flujo corregido

Debe incluir:

  • lectura inicial;
  • comprobación del centinela;
  • validación;
  • clasificación de precio;
  • actualizaciones;
  • nueva lectura;
  • regreso a la condición;
  • resumen con y sin visitantes;
  • final.

Parte 6 — Plan de pruebas

Complete los resultados esperados:

CasoSecuencia de edadesObjetivoCantidadTotalPromedio o mensaje
A0Sin datos
B10, 30, 70, 0Tres categorías
C-4, 130, 12, 65, 0Inválidos y límites
D11, 12, 64, 65, 0Límites de precios

Parte 7 — Prueba de escritorio

Realice el rastreo completo del caso D.

Incluya:

  • edad;
  • resultado de validación;
  • categoría;
  • precio;
  • cantidad anterior y nueva;
  • total anterior y nuevo;
  • condición del ciclo.

Parte 8 — Comparación antes y después

Para cada defecto:

  • escriba un caso que lo revele;
  • indique qué ocurría antes;
  • indique qué ocurre después;
  • marque CORREGIDO únicamente si el resultado coincide con el esperado.

Parte 9 — Reflexión

Responda en cuatro a seis oraciones:

  1. ¿Cuál defecto impedía observar los demás con facilidad?
  2. ¿Por qué no bastaba con agregar la lectura y detener el ciclo infinito?
  3. ¿Qué caso considera más importante y por qué?
  4. ¿Qué pruebas conservaría si el algoritmo cambiara?

Lista de verificación antes de entregar

Pseudocódigo
[ ] Convertí todos los requisitos en resultados observables.
[ ] Predije el comportamiento antes de corregir.
[ ] Separé síntomas y causas.
[ ] Registré al menos siete defectos.
[ ] La edad 0 termina y no se procesa.
[ ] Rechazo edades menores que 1 y mayores que 120.
[ ] Los límites 11, 12, 64 y 65 producen el precio correcto.
[ ] Leo una nueva edad dentro del ciclo.
[ ] La cantidad aumenta únicamente para visitantes válidos.
[ ] El total acumula todos los precios válidos.
[ ] No divido entre cero.
[ ] Mi pseudocódigo y mi diagrama coinciden.
[ ] Completé los cuatro casos obligatorios.
[ ] Rastreé por completo el caso D.
[ ] Repetí las pruebas después de corregir.
[ ] El archivo se puede leer con claridad.
🎯 Mini proyecto

Rúbrica del mini proyecto

CriterioPuntos
Comprensión y matriz de requisitos10
Predicción del comportamiento defectuoso10
Diagnóstico con síntomas, causas y evidencia20
Pseudocódigo corregido20
Diagrama de flujo equivalente10
Plan de pruebas y resultados esperados15
Prueba de escritorio10
Comparación y reflexión5
Total100

Criterios de dominio

ResultadoInterpretación
90–100Dominio sólido
75–89Logro satisfactorio
60–74Requiere mejorar diagnóstico o pruebas
Menos de 60Conviene repasar antes del proyecto final

Punto de entrega

Se utiliza un solo punto de entrega para todo el mini proyecto. Los ejercicios y retos no necesitan formularios separados.

Archivo

Reúna las nueve partes en un único archivo PDF.

Nombre recomendado:

Pseudocódigo
Modulo5_Nombre_Apellido.pdf

Puede incluir:

  • texto;
  • tablas;
  • pseudocódigo;
  • diagrama;
  • capturas o fotografías claras del trabajo hecho a mano.

Indicación para el formulario

Escriba:

Pseudocódigo
Módulo 5 — Clínica de algoritmos — Nombre y apellido

Formulario:

Entrega de la actividad

Último paso del proyecto

Una vez completado este proyecto, sube tu solución utilizando el siguiente formulario.

El archivo debe incluir:

  • Nombre completo
  • Nombre del curso
  • Módulo 5
  • Las nueve partes del mini proyecto
  • Tablas, pseudocódigo, diagrama y pruebas claramente legibles

Nombre del archivo: Modulo5_Nombre_Apellido.pdf

Antes de enviar, verifica que el archivo tenga el nombre solicitado.

Entregar actividad

Envíe únicamente el mini proyecto completo.

PARTE 12 — EVALUACIÓN

✅ Evaluación

Evaluación de dominio

Pregunta 1

¿Cuándo debe definirse el resultado esperado?

a. Después de observar la salida b. Antes de ejecutar el caso c. Solo si el caso falla d. Nunca

Pregunta 2

¿Qué valores prueban mejor el límite 50?

a. 10 y 20 b. 49, 50 y 51 c. 50 únicamente d. 100 y 200

Pregunta 3

¿Qué es la primera diferencia?

a. La última salida del algoritmo b. El primer punto donde el estado obtenido deja de coincidir con el esperado c. La primera variable declarada d. El primer caso que pasa

Pregunta 4

Si el total final es incorrecto porque se reemplaza en cada iteración, ¿cuál es la causa?

a. El mensaje final b. La actualización total ← valor c. El nombre de la variable d. La cantidad de pruebas

Pregunta 5

¿Qué debe hacerse después de una corrección?

a. Probar solo el caso que falló b. Eliminar las pruebas anteriores c. Repetir el caso fallido y el conjunto de regresión d. Cambiar otros elementos sin comprobar

Pregunta 6

¿Qué comprueba un caso con el centinela como primera entrada?

a. Muchas iteraciones b. El comportamiento sin datos c. La categoría mayor d. Una fórmula de descuento

Pregunta 7

¿Por qué conviene realizar un cambio por vez?

a. Para saber qué cambio produjo el efecto b. Porque los algoritmos solo aceptan una línea c. Para evitar escribir pruebas d. Porque nunca hay más de un error

Pregunta 8

¿Cuál afirmación es correcta?

a. Un caso exitoso demuestra que todo el algoritmo funciona b. Las pruebas aleatorias siempre cubren los límites c. Una corrección debe eliminar la causa y comprobarse con evidencia d. Los datos inválidos no necesitan pruebas

Autoevaluación

HabilidadTodavía practicoNo
Puedo extraer requisitos antes de escribir
Detecto ambigüedades
Defino resultados esperados
Diseño casos normales, límite e inválidos
Pruebo cero, una y varias iteraciones
Realizo una prueba de escritorio
Localizo la primera diferencia
Distingo síntoma y causa
Corrijo una causa a la vez
Repito las pruebas después de corregir
Documento la evidencia

PARTE 13 — RECURSOS

Video opcional con PSeInt

🎥 Video opcional

¿Qué es y cómo se utiliza la prueba de escritorio? | PSeInt — Ingenio Programado

Duración: 4 minutos y 32 segundos Tema exacto: Uso de la función de prueba de escritorio de PSeInt Uso recomendado: Después de dominar el rastreo manual

La herramienta no sustituye la capacidad de predecir y explicar el resultado.

Lecturas y documentación

Lectura esencial sobre algoritmos

Algoritmos y pseudocódigo — INTEF

Utilidad:

  • repasar que un algoritmo debe ser correcto, finito, claro y portable;
  • recordar la importancia de pensar antes de programar;
  • revisar representaciones independientes del lenguaje.

Referencia de pseudocódigo

Documentación oficial de PSeInt

Utilidad:

  • consultar estructuras de control;
  • comparar su pseudocódigo con una notación formal;
  • ejecutar opcionalmente los casos del módulo.

Ampliación opcional sobre errores

¿Qué ha salido mal? Corrigiendo JavaScript — MDN Web Docs

La lectura utiliza JavaScript. No aprenda su sintaxis en este curso. Concéntrese en:

  • diferencia entre un error que impide ejecutar y un error lógico;
  • uso de evidencia;
  • investigación ordenada;
  • importancia de explicar el problema.

PARTE 14 — GLOSARIO

Conceptos del módulo

ConceptoExplicación sencilla
RequisitoComportamiento que la solución debe cumplir
AmbigüedadRegla que admite varias interpretaciones
SuposiciónDecisión declarada cuando falta información
Criterio de éxitoResultado observable que demuestra un requisito
Caso de pruebaEntrada, esperado, obtenido y conclusión
Resultado esperadoRespuesta correcta según los requisitos
Resultado obtenidoRespuesta que produce el algoritmo
Caso normalDato claramente dentro de una regla
Caso límiteDato en o cerca de un punto de cambio
Caso inválidoDato que debe rechazarse
Caso sin datosFinalización antes de procesar información válida
Familia de casosValores que deberían seguir el mismo comportamiento
Cobertura prácticaRecorrido de todos los caminos importantes
Prueba de escritorioEjecución manual y ordenada
Primera diferenciaPrimer estado que deja de coincidir con el esperado
SíntomaEfecto visible del defecto
CausaRegla o instrucción que origina el defecto
DepuraciónProceso de encontrar y corregir una causa
RegresiónRepetición de pruebas después de un cambio
Registro de erroresEvidencia organizada de falla, causa y corrección

PARTE 15 — CIERRE

Resumen visual

Pseudocódigo
COMPRENDER
   ↓
ESCRIBIR REQUISITOS MEDIBLES
   ↓
CALCULAR RESULTADOS ESPERADOS
   ↓
CONSTRUIR EL ALGORITMO
   ↓
PROBAR:
NORMAL + LÍMITE + INVÁLIDO + SIN DATOS
   ↓
RASTREAR CADA CAMBIO
   ↓
LOCALIZAR LA PRIMERA DIFERENCIA
   ↓
CORREGIR LA CAUSA
   ↓
REPETIR TODAS LAS PRUEBAS
   ↓
DOCUMENTAR LA EVIDENCIA

Ocho ideas fundamentales

  1. No se puede probar correctamente un requisito ambiguo.
  2. El resultado esperado se define antes de ejecutar.
  3. Un caso exitoso no demuestra que todos los caminos funcionen.
  4. Los límites revelan muchos errores.
  5. La prueba de escritorio muestra cómo cambia el estado.
  6. La primera diferencia orienta hacia la causa.
  7. Se corrige la causa, no se oculta el síntoma.
  8. Toda corrección debe volver a probarse.

Habilidades obtenidas

Al completar el módulo, habrá desarrollado:

  • análisis de requisitos;
  • detección de ambigüedades;
  • diseño de resultados verificables;
  • selección estratégica de casos;
  • pruebas normales, límite, inválidas y sin datos;
  • rastreo de secuencias, decisiones y ciclos;
  • diagnóstico basado en la primera diferencia;
  • distinción entre síntoma y causa;
  • corrección controlada;
  • comprobación de regresión;
  • documentación de evidencia;
  • revisión integral de algoritmos.

Puente hacia el Módulo 6

Ahora usted sabe:

  • comprender un problema;
  • organizar entradas, procesos y salidas;
  • utilizar variables;
  • tomar decisiones;
  • construir repeticiones;
  • diseñar pruebas;
  • encontrar y corregir errores.

El Módulo 6 será el proyecto final. No introducirá una gran cantidad de teoría nueva. Su objetivo será integrar todo el curso en una solución completa, explicada, representada, probada y corregida.

FIN DEL MÓDULO 5

No avanzar al Módulo 6 hasta que el Módulo 5 sea revisado y aprobado.

¡Has completado el Módulo 5!

Ahora puedes revisar tus ejercicios, consultar nuevamente los recursos o continuar con tu aprendizaje.

Ir al Módulo 6
Escríbenos por WhatsApp