Artículo de consulta · Programación
Depuración y pruebas: encontrar y comprobar errores
Depurar consiste en investigar por qué un programa se comporta de una forma distinta a la esperada. Una prueba automatizada comprueba una expectativa concreta. Combinarlas ayuda a corregir un fallo y detectar si vuelve a aparecer después de otro cambio.
Primero, reproduce el problema
Anota los pasos, las entradas, el resultado esperado y el resultado real. Reduce el caso hasta conservar lo necesario para provocar el fallo. Si un contador empieza en un valor incorrecto, prueba ese cálculo aislado antes de revisar toda la interfaz.
Consola y puntos de interrupción
La consola muestra mensajes y errores; una traza indica por dónde pasó la ejecución. En DevTools, un breakpoint pausa el programa para inspeccionar variables. Avanza paso a paso y comprueba en qué instrucción el valor deja de ser el esperado. Los logs son útiles, pero demasiados mensajes dificultan encontrar evidencia relevante.
Prueba mínima con Node.js
Con una versión de Node.js que incluya su ejecutor de pruebas, guarda este ejemplo en sumar.test.mjs. La extensión .mjs permite usar módulos ES. Ejecuta node --test sumar.test.mjs desde esa carpeta.
import test from "node:test";
import assert from "node:assert/strict";
function sumar(a, b) {
return a + b;
}
test("suma dos números", () => {
assert.equal(sumar(4, 7), 11);
});
test("cero conserva el valor", () => {
assert.equal(sumar(4, 0), 4);
});Qué comprueba y qué queda fuera
Estas pruebas comprueban dos resultados numéricos. No verifican una interfaz, una API ni todas las entradas posibles. La función está dentro del archivo para que el ejemplo sea autónomo; en un proyecto, importa la función real para que la prueba detecte cambios en su implementación.
Elegir casos útiles
Incluye un caso habitual y límites relevantes, como cero o una colección vacía. Define antes qué debe ocurrir con entradas inválidas. Una prueba útil comprueba el comportamiento esperado, no solo que una función se ejecute sin lanzar errores.
Ejercicio de regresión
- Cambia temporalmente la suma por una resta y confirma que las pruebas fallan.
- Restaura la suma y comprueba que pasan.
- Añade un caso con números negativos y calcula a mano su resultado esperado.
Referencias
Artículos relacionados
- Fundamentos: variables, condiciones y bucles
- HTML semántico y estructura de una página
- CSS: modelo de caja, Flexbox y Grid
- JavaScript: funciones, parámetros y alcance
- JavaScript: arrays, objetos y transformación de datos
- DOM y eventos: conectar JavaScript con HTML
- Promesas, async/await y peticiones con fetch
- HTTP y APIs web: peticiones, respuestas y estados
- JSON: formato, lectura y validación de datos
- Git: cambios, commits, ramas y repositorios remotos
- Node.js y npm: scripts y dependencias de un proyecto
- Formatos de color: HEX, RGB y HSL
- Identificadores UUID
- Valores aleatorios en JavaScript
