Sesión 07 · Verificación y mejora
Prueba de escritorio, depuración y mantenimiento
Diseñar un algoritmo no garantiza que produzca el resultado correcto. En esta sesión aprenderás a ejecutarlo manualmente, registrar cómo cambian los valores, comparar lo obtenido contra lo esperado, localizar errores lógicos, corregirlos y documentar por qué se modificó la solución.
No basta con que “se vea bien”
Seguir manualmente cada instrucción con datos concretos.
Reconocer cuándo el resultado obtenido no coincide con el esperado.
Modificar la instrucción responsable sin cambiar el objetivo.
Documentar cambios para conservar una solución comprensible y actualizable.
Conexión con la Sesión 6
Ya tienes una primera solución metodológica. Ahora debemos preguntarnos: ¿funciona realmente con los datos que esperamos? La prueba de escritorio permite responder antes de depender de un lenguaje o de ejecutar un programa completo.
Antes de probar
Probar, encontrar, corregir y conservar
1. ¿Qué es una prueba de escritorio?
Es una ejecución manual de un algoritmo. Se eligen datos de entrada, se recorren las instrucciones en el orden definido y se anotan los valores que van apareciendo. Finalmente se compara el resultado producido con el resultado que debería obtenerse.
2. ¿Para qué sirve?
Permite observar qué instrucción utiliza cada dato y cómo se produce el resultado.
Hace visibles operaciones incorrectas, pasos faltantes u órdenes equivocados.
Permite explicar qué estaba mal, qué se modificó y por qué la nueva versión mejora el resultado.
3. ¿Qué se registra?
Una tabla de prueba suele incluir el número de paso, la instrucción ejecutada, los datos o valores relevantes en ese momento y, cuando exista, la salida producida. No existe una única tabla universal: debe adaptarse al algoritmo para mostrar la información necesaria.
4. Resultado esperado vs. resultado obtenido
Antes de probar conviene conocer qué debería ocurrir. Si una compra de 3 artículos de $20 debe costar $60, ese es el resultado esperado. Si el algoritmo produce 23, sabemos que existe un error. La diferencia entre ambos resultados orienta la investigación.
5. Tipos de error: introducción
La representación incumple una regla de escritura o estructura. En pseudocódigo puede ser una palabra o cierre faltante.
El algoritmo puede seguirse, pero produce un resultado equivocado porque la fórmula, orden o decisión es incorrecta.
Una operación no puede completarse con ciertos datos o condiciones. Más adelante aprenderás a prevenir muchos de estos casos mediante validaciones.
6. ¿Qué es depurar?
Depurar es localizar la causa de un comportamiento incorrecto y modificar la solución para eliminarla. Una buena depuración no cambia instrucciones al azar. Parte de una evidencia: una prueba que demuestra dónde el comportamiento deja de coincidir con lo esperado.
Elegir datos y resultado esperado.
Seguir cada instrucción.
Anotar valores y salida.
Esperado vs. obtenido.
Modificar la causa del error.
Probar otra vez.
7. Documentación de una corrección
Cuando modificas un algoritmo conviene registrar qué se cambió y por qué. Ejemplo: “Se sustituyó la suma por multiplicación en el cálculo del total porque la cantidad indica cuántas veces debe aplicarse el precio unitario”. Esta nota permite comprender el historial de la solución.
8. Mantenimiento
Una solución puede necesitar cambios aunque hoy funcione correctamente. Puede cambiar una regla, aparecer un nuevo dato, modificarse el resultado solicitado o descubrirse un error que no se había detectado. Mantenimiento significa conservar la solución útil, correcta y comprensible frente a esos cambios.
9. Tres motivos comunes de mantenimiento
Se corrige un error encontrado después de usar o probar la solución.
La solución se modifica porque cambió el contexto, una regla o un requisito.
Se mejora claridad, eficiencia, organización o facilidad de uso sin cambiar la necesidad principal.
Prueba de escritorio paso a paso
Analiza este algoritmo con el dato numero = 4.
| Paso | Instrucción | numero | resultado | Salida |
|---|---|---|---|---|
| 1 | Leer numero | 4 | — | — |
| 2 | resultado ← numero × numero | 4 | 16 | — |
| 3 | Escribir resultado | 4 | 16 | 16 |
¿Qué aprendemos de la tabla?
La prueba muestra el estado de los valores después de cada instrucción. No necesitamos ejecutar Java ni Python: podemos verificar manualmente que 4 × 4 produce 16 y que la salida coincide con el resultado esperado.
Ejercicio guiado
Completa mentalmente el mismo algoritmo para numero = 7.
El mismo problema, dos algoritmos
Problema: calcular el total de una compra utilizando precio unitario y cantidad.
Versión A · Con error
Versión B · Corregida
Tabla generada
| Dato | Valor | Versión A | Versión B | Esperado |
|---|---|---|---|---|
| Ejecuta una prueba para generar la tabla. | ||||
Detecta el tipo de problema
¿Qué corregirías?
Algoritmo: leer base y altura; calcular area ← base + altura; mostrar area.
Algoritmo: leer precio y cantidad; calcular total correctamente; terminar sin mostrar total.
Algoritmo: mostrar el promedio antes de haberlo calculado.
Cuando una solución cambia
Clasifica el motivo principal de mantenimiento.
Ejemplo de trazabilidad
Versión 1: calcular total = precio × cantidad.
Cambio solicitado: ahora el resultado debe mostrar también el nombre del producto.
Qué debe actualizarse: entrada (producto), pseudocódigo (leer producto y mostrarlo), pruebas (comprobar la nueva salida) y documentación (resultado esperado).
Actividad de reflexión
Tabla de prueba de escritorio + algoritmo corregido
Trabajarás con un algoritmo que intenta calcular el costo de una impresión. Tiene un error lógico intencional.
1. Completa las pruebas
Para cada caso registra lo que produce el algoritmo defectuoso y lo que debería producir realmente.
| Caso | páginas | precio/página | Resultado del algoritmo defectuoso | Resultado esperado |
|---|---|---|---|---|
| A | 10 | 1.50 | ||
| B | 25 | 0.80 | ||
| C | 100 | 0.50 |
Lista de verificación
Vista previa
Completa el ejercicio y genera la evidencia.