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ón | Tiempo |
|---|---|
| Activación y diagnóstico | 5 min |
| Construcción desde requisitos | 15 min |
| Diseño de casos de prueba | 20 min |
| Prueba de escritorio y rastreo | 20 min |
| Diagnóstico y corrección | 20 min |
| Ejemplos, actividad y ejercicios | 25 min |
| Retos | 10 min |
| Mini proyecto | 30 min |
| Evaluación y cierre | 5 min |
| Total | 150 min |
Mapa del aprendizaje
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 PRUEBASPARTE 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:
SI edad > 65 ENTONCES
precio ← 2
SINO
precio ← 5
FIN SICon 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:
- ¿Qué valores utilizaría para probar el límite de 50?
- ¿Qué valores utilizaría para probar el límite de 100?
- ¿Qué valor comprobaría la entrada inválida?
- ¿Bastaría con probar únicamente 75? ¿Por qué?
- Para una compra de 100, ¿cuál es el resultado esperado?
- 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:
¿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:
dato válido: nota ≥ 0 Y nota ≤ 100
dato inválido: nota < 0 O nota > 100Y también aparecen pruebas:
-1, 0, 1, 99, 100, 101Un 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.
| Grupo | Pregunta |
|---|---|
| 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.
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 0Criterios de éxito
Un criterio de éxito describe algo observable que debe cumplirse.
Para las donaciones:
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:
- escriba la ambigüedad;
- declare una suposición;
- aplíquela de forma consistente;
- incluya una prueba que muestre su efecto.
Ejemplo:
SUPOSICIÓN
"Menor" significa edad < 18.Método de construcción en seis pasos
1. COMPRENDER
2. ORGANIZAR
3. PROPONER EJEMPLOS
4. DISEÑAR
5. ESCRIBIR
6. REVISARComprender
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
| ID | Objetivo | Entrada | Resultado esperado | Resultado obtenido | Estado |
|---|---|---|---|---|---|
| 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
RESULTADO ESPERADO
lo que las reglas indican que debe ocurrir
RESULTADO OBTENIDO
lo que el algoritmo realmente produceSi coinciden, el caso pasa.
Si no coinciden, el caso falla y proporciona evidencia de un defecto.
esperado = 10 % de descuento
obtenido = 5 % de descuento
estado = FALLAUna 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:
nota = 75Para precio de persona adulta:
edad = 30Los 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:
edad < 12 → precio infantil
edad ≥ 12 → precio generalpruebe:
11 → justo antes
12 → exactamente en el límite
13 → justo despuésRegla de tres valores
Para cada límite numérico:
límite - 1
límite
límite + 1Cuando 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:
edad = -3
nota = 120
cantidad = -8
hora = 25
opción = 9 cuando solo existen 1, 2 y 3No 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:
0 es centinela
primera entrada = 0Debe 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:
| Caso | Qué comprueba |
|---|---|
| Cero iteraciones | Salida inmediata |
| Una iteración | Entrada y salida en una vuelta |
| Varias iteraciones | Actualizaciones sucesivas |
| Dato inválido dentro | Rechazo sin dañar el estado |
| Límite de salida | Momento exacto de terminar |
Para un ciclo con máximo tres intentos:
acierto en el primero
acierto en el tercero
tres fallosFamilias de casos
No es necesario probar todos los números posibles. Se agrupan valores que deberían seguir la misma regla.
Ejemplo de edades:
| Familia | Comportamiento |
|---|---|
| Menor que 1 | Inválida |
| 1 a 11 | Precio infantil |
| 12 a 64 | Precio general |
| 65 a 120 | Precio de persona mayor |
| Mayor que 120 | Invá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
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:
- lee una instrucción;
- evalúa las expresiones;
- actualiza las variables;
- elige el camino correspondiente;
- registra las salidas;
- repite hasta finalizar.
No se corrige mientras se rastrea. Primero se registra honestamente lo que el algoritmo hace.
Tabla básica de rastreo
Algoritmo:
LEER cantidad
precio ← 4
subtotal ← cantidad * precio
SI cantidad ≥ 5 ENTONCES
descuento ← subtotal * 0.10
SINO
descuento ← 0
FIN SI
total ← subtotal - descuento
MOSTRAR totalCaso:
cantidad = 5| Paso | Instrucción o condición | Cantidad | Subtotal | Descuento | Total | Salida |
|---|---|---|---|---|---|---|
| 1 | Leer cantidad | 5 | — | — | — | — |
| 2 | precio ← 4 | 5 | — | — | — | — |
| 3 | Calcular subtotal | 5 | 20 | — | — | — |
| 4 | cantidad ≥ 5 | 5 | 20 | — | — | VERDADERO |
| 5 | Calcular descuento | 5 | 20 | 2 | — | — |
| 6 | Calcular total | 5 | 20 | 2 | 18 | — |
| 7 | Mostrar | 5 | 20 | 2 | 18 | 18 |
Resultado esperado:
18Resultado obtenido:
18Estado:
PASARastreo de decisiones
En cada condición registre:
- la expresión completa;
- el resultado verdadero o falso;
- el camino elegido.
Ejemplo:
edad ≥ 12 Y edad ≤ 17Para edad ← 18:
18 ≥ 12 → VERDADERO
18 ≤ 17 → FALSO
VERDADERO Y FALSO → FALSO
camino elegido → SINOEsto 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.
total ← 0
PARA numero DESDE 1 HASTA 3 HACER
total ← total + numero
FIN PARA| Iteración | Número | Total anterior | Operación | Total nuevo |
|---|---|---|---|---|
| 1 | 1 | 0 | 0 + 1 | 1 |
| 2 | 2 | 1 | 1 + 2 | 3 |
| 3 | 3 | 3 | 3 + 3 | 6 |
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:
valor esperado ≠ valor obtenidoEjemplo:
total esperado después del segundo dato = 15
total obtenido = 10Si 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:
¿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.
El total final es demasiado bajo.Causa
La instrucción o decisión que origina el problema.
El total se reemplaza en vez de acumularse.Corrección
El cambio que elimina la causa.
total ← total + valorCambiar solamente el mensaje final no arreglaría el acumulador.
Error de requisito
El algoritmo resuelve una regla distinta de la solicitada.
Requisito:
65 años o másAlgoritmo:
edad > 65La lógica ejecuta exactamente lo escrito, pero lo escrito no representa el requisito.
Corrección:
edad ≥ 65Error de condición
Se utiliza una comparación u operador incorrecto.
Requisito:
Tener inscripción y cupo.
Incorrecto:
inscripcion_confirmada O cupos > 0Corrección:
inscripcion_confirmada Y cupos > 0Error de cálculo
La fórmula no representa la operación correcta.
Incorrecto:
descuento ← subtotal * 10Corrección para 10 %:
descuento ← subtotal * 0.10Una 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.
hora ≥ 8 Y hora ≤ 17es incorrecto si el servicio cierra exactamente a las 17.
Corrección:
hora ≥ 8 Y hora < 17Error de estado o actualización
La variable no conserva el valor correcto.
Incorrecto:
total ← valorsi se desea acumular.
Correcto:
total ← total + valorOtro ejemplo:
contador ← 0dentro 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
1. REPRODUCIR
2. DEFINIR LO ESPERADO
3. REDUCIR
4. RASTREAR
5. FORMULAR UNA CAUSA
6. CORREGIR UNA COSA
7. VOLVER A PROBARReproducir
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
| ID | Caso que falla | Síntoma | Primera diferencia | Causa | Corrección | Resultado posterior |
|---|---|---|---|---|---|---|
| E1 | Edad 65 | Precio 5 | Condición de edad | Se 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
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
LEER subtotal
SI subtotal > 50 ENTONCES
descuento ← subtotal * 0.10
SINO
descuento ← 0
FIN SI
total ← subtotal - descuento
MOSTRAR totalCasos
| Entrada | Esperado |
|---|---|
| -1 | Subtotal inválido |
| 49 | Total 49 |
| 50 | Total 45 |
| 51 | Total 45.9 |
Diagnóstico
-1: falta validación.50:subtotal > 50es falso; el límite debe incluirse.
Corrección
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 SIDespués se repiten los cuatro casos.
Ejemplo 2: acumulador que olvida
Requisito
Sumar tres valores.
Algoritmo defectuoso
total ← 0
PARA posicion DESDE 1 HASTA 3 HACER
LEER valor
total ← valor
FIN PARA
MOSTRAR totalCaso:
4, 6, 5Esperado:
15Rastreo:
| Iteración | Valor | Total esperado | Total obtenido |
|---|---|---|---|
| 1 | 4 | 4 | 4 |
| 2 | 6 | 10 | 6 |
| 3 | 5 | 15 | 5 |
La primera diferencia aparece en la segunda iteración.
Corrección:
total ← total + valorEjemplo 3: ciclo que no recibe un dato nuevo
Algoritmo defectuoso
LEER numero
MIENTRAS numero ≠ 0 HACER
MOSTRAR numero
FIN MIENTRASCon numero ← 5, muestra 5 indefinidamente.
La condición depende de numero, pero el cuerpo nunca lo modifica.
Corrección:
LEER numero
MIENTRAS numero ≠ 0 HACER
MOSTRAR numero
LEER numero
FIN MIENTRASPruebas:
0
5, 0
5, 8, 0Ejemplo 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
| Nota | Esperado |
|---|---|
| -1 | Inválida |
| 0 | Necesita mejorar |
| 69 | Necesita mejorar |
| 70 | Aprobada |
| 89 | Aprobada |
| 90 | Excelente |
| 100 | Excelente |
| 101 | Inválida |
Diseño
validar
clasificar de la categoría más alta a la más baja
definir caso restantePseudocó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 SILos 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
Edad válida: 1 a 120.
Menor de 12: precio 3.
De 12 a 64: precio 5.
Desde 65: precio 2.Algoritmo con error
SI edad < 12 ENTONCES
precio ← 3
SINO SI edad > 65 ENTONCES
precio ← 2
SINO
precio ← 5
FIN SITarjetas de prueba
-1, 1, 11, 12, 64, 65, 66, 120, 121Instrucciones
- La persona probadora escribe el resultado esperado.
- El algoritmo recorre las instrucciones sin interpretarlas.
- La observadora registra condición, camino y precio.
- Se marcan los casos que fallan.
- El grupo propone una causa.
- Se realiza un solo cambio.
- 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 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:
- identifique las entradas mencionadas;
- identifique las reglas claras;
- escriba al menos cinco preguntas necesarias;
- explique qué significa “demasiados” y por qué no puede adivinarse;
- proponga una versión completa de los requisitos mediante suposiciones explícitas;
- separe entradas, reglas, salidas, inválidos y finalización;
- escriba cuatro criterios de éxito;
- diseñe cinco casos de prueba con su resultado esperado.
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:
- tabla con las familias de valores;
- selección de un caso normal por familia;
- casos justo antes, en y después de los límites 1, 12, 65 y 120;
- resultado esperado de cada caso;
- conjunto mínimo que recorra todos los precios y los dos inválidos;
- explicación de por qué probar únicamente 30 es insuficiente.
Ejercicio 3 — Localice la primera diferencia
Requisito:
Sumar tres importes.
Algoritmo:
total ← 0
PARA posicion DESDE 1 HASTA 3 HACER
LEER importe
total ← importe
FIN PARA
MOSTRAR totalUtilice:
8, 4, 6Debe:
- calcular el resultado esperado;
- construir una tabla por iteración;
- indicar la primera diferencia;
- identificar síntoma y causa;
- escribir la corrección;
- volver a rastrear;
- crear dos casos adicionales para el conjunto de regresión.
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:
- entradas, reglas, salidas e inválidos;
- pseudocódigo;
- casos para
subtotal = -1, 0, 39, 40 y 41; - para cada subtotal válido, pruebe miembro y no miembro;
- calcule los resultados esperados;
- indique qué casos prueban simultáneamente el límite del envío y el descuento;
- complete una prueba de escritorio para
subtotal = 40y miembro verdadero.
Ejercicio 5 — Ciclo congelado
Requisito:
Leer donaciones positivas hasta ingresar 0. Rechazar negativas y mostrar el total.
Algoritmo defectuoso:
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 totalRealice:
- prediga qué ocurre con la primera entrada
10; - encuentre todos los errores;
- separe síntoma y causa para cada uno;
- corrija el pseudocódigo;
- pruebe
0; - pruebe
10, 0; - pruebe
10, -4, 5, 0; - explique por qué el dato negativo no modifica el total.
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:
1 hora → 3
2 horas → 3
3 horas → 5
5 horas → 9Realice:
- entradas, reglas, salidas e inválidos;
- fórmula de las horas adicionales;
- pseudocódigo;
- casos para
0, 1, 2, 3, 11, 12 y 13; - resultados esperados;
- prueba de escritorio para 3 horas;
- revisión que relacione cada requisito con una parte del algoritmo.
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:
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:
- escriba al menos ocho entradas;
- indique el resultado esperado;
- explique qué prueba demuestra la corrección;
- explique cuáles comprueban que no se dañaron las otras categorías;
- redacte una fila de registro de error con síntoma, causa, cambio y evidencia.
PARTE 9 — RETOS
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:
- enumere todas las palabras ambiguas;
- explique por qué no puede existir todavía un resultado esperado objetivo;
- redacte seis preguntas de aclaración;
- proponga requisitos completos y medibles;
- diseñe casos normales, límites e inválidos;
- escriba cómo cambiarían las pruebas si “mayor” significara
> 65en lugar de≥ 65.
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:
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 cantidadEncuentre 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
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
- Se ingresa la edad de cada visitante.
- El valor
0termina el registro y no representa una edad. - Las edades válidas están entre 1 y 120.
- Una edad inválida muestra
"Edad inválida"y no se cuenta. - Precios:
- de 1 a 11 años:
3; - de 12 a 64 años:
5; - de 65 a 120 años:
2.
- Cada visitante válido aumenta la cantidad.
- Cada precio válido se suma al total recaudado.
- 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
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 promedioNo ejecute el algoritmo en una herramienta antes de analizarlo. Comience con requisitos, predicción y rastreo.
Entregables del mini proyecto
Parte 1 — Matriz de requisitos
Complete:
| ID | Requisito | Entrada relacionada | Salida o efecto esperado |
|---|---|---|---|
| R1 |
Incluya los ocho requisitos.
Parte 2 — Predicción inicial
Explique qué ocurriría si la primera edad fuera:
10Indique:
- 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.
| ID | Requisito afectado | Síntoma | Causa en el pseudocódigo | Correcció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:
| Caso | Secuencia de edades | Objetivo | Cantidad | Total | Promedio o mensaje |
|---|---|---|---|---|---|
| A | 0 | Sin datos | |||
| B | 10, 30, 70, 0 | Tres categorías | |||
| C | -4, 130, 12, 65, 0 | Inválidos y límites | |||
| D | 11, 12, 64, 65, 0 | Lí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:
- ¿Cuál defecto impedía observar los demás con facilidad?
- ¿Por qué no bastaba con agregar la lectura y detener el ciclo infinito?
- ¿Qué caso considera más importante y por qué?
- ¿Qué pruebas conservaría si el algoritmo cambiara?
Lista de verificación antes de entregar
[ ] 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.Rúbrica del mini proyecto
| Criterio | Puntos |
|---|---|
| Comprensión y matriz de requisitos | 10 |
| Predicción del comportamiento defectuoso | 10 |
| Diagnóstico con síntomas, causas y evidencia | 20 |
| Pseudocódigo corregido | 20 |
| Diagrama de flujo equivalente | 10 |
| Plan de pruebas y resultados esperados | 15 |
| Prueba de escritorio | 10 |
| Comparación y reflexión | 5 |
| Total | 100 |
Criterios de dominio
| Resultado | Interpretación |
|---|---|
| 90–100 | Dominio sólido |
| 75–89 | Logro satisfactorio |
| 60–74 | Requiere mejorar diagnóstico o pruebas |
| Menos de 60 | Conviene 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:
Modulo5_Nombre_Apellido.pdfPuede incluir:
- texto;
- tablas;
- pseudocódigo;
- diagrama;
- capturas o fotografías claras del trabajo hecho a mano.
Indicación para el formulario
Escriba:
Módulo 5 — Clínica de algoritmos — Nombre y apellidoFormulario:
Entrega de la actividad
Último paso del proyectoUna 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.
Envíe únicamente el mini proyecto completo.
PARTE 12 — 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
| Habilidad | Sí | Todavía practico | No |
|---|---|---|---|
| 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
¿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
| Concepto | Explicación sencilla |
|---|---|
| Requisito | Comportamiento que la solución debe cumplir |
| Ambigüedad | Regla que admite varias interpretaciones |
| Suposición | Decisión declarada cuando falta información |
| Criterio de éxito | Resultado observable que demuestra un requisito |
| Caso de prueba | Entrada, esperado, obtenido y conclusión |
| Resultado esperado | Respuesta correcta según los requisitos |
| Resultado obtenido | Respuesta que produce el algoritmo |
| Caso normal | Dato claramente dentro de una regla |
| Caso límite | Dato en o cerca de un punto de cambio |
| Caso inválido | Dato que debe rechazarse |
| Caso sin datos | Finalización antes de procesar información válida |
| Familia de casos | Valores que deberían seguir el mismo comportamiento |
| Cobertura práctica | Recorrido de todos los caminos importantes |
| Prueba de escritorio | Ejecución manual y ordenada |
| Primera diferencia | Primer estado que deja de coincidir con el esperado |
| Síntoma | Efecto visible del defecto |
| Causa | Regla o instrucción que origina el defecto |
| Depuración | Proceso de encontrar y corregir una causa |
| Regresión | Repetición de pruebas después de un cambio |
| Registro de errores | Evidencia organizada de falla, causa y corrección |
PARTE 15 — CIERRE
Resumen visual
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 EVIDENCIAOcho ideas fundamentales
- No se puede probar correctamente un requisito ambiguo.
- El resultado esperado se define antes de ejecutar.
- Un caso exitoso no demuestra que todos los caminos funcionen.
- Los límites revelan muchos errores.
- La prueba de escritorio muestra cómo cambia el estado.
- La primera diferencia orienta hacia la causa.
- Se corrige la causa, no se oculta el síntoma.
- 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.