Depuración de código (depuración de programas, depuración de software)

3 min
Editar

La depuración de código, depuración de programas o depuración de software (en inglés, debugging) es el conjunto de tareas que se realizan para localizar y corregir los errores de un programa informático. El nombre inglés viene de bug, bicho, la palabra con la que se designan los errores de programación desde los primeros tiempos de la informática: depurar es, literalmente, quitar los bichos.

Los errores son de varios tipos. Los errores de sintaxis (syntax errors), como olvidar un paréntesis, los detecta el compilador o el intérprete antes de ejecutar el programa, y son los más fáciles de corregir. Los errores de ejecución (runtime errors) aparecen mientras el programa funciona, como una división por cero o el acceso a un dato que no existe, y suelen detenerlo con un mensaje. Los más difíciles son los errores lógicos (logic errors): el programa funciona sin quejarse, pero hace algo distinto de lo que se quería. Encontrarlos exige entender qué está haciendo el programa en realidad, que es la esencia de la depuración.

La herramienta básica es el depurador (debugger), un programa que permite ejecutar otro paso a paso, detenerlo en un punto elegido mediante puntos de interrupción (breakpoints), examinar el valor de cada variable en ese momento y ver la traza de la pila (stack trace), la cadena de funciones que llevó hasta allí. Muchos programadores recurren también a técnicas más sencillas, como escribir mensajes en pantalla o en un archivo de registro para seguir el camino del programa, o la llamada depuración del patito de goma (rubber duck debugging), que consiste en explicar el código, línea a línea, a un objeto inanimado: al verbalizarlo, el error suele aparecer. Para localizar qué cambio introdujo un fallo entre muchas versiones, herramientas como git bisect aplican la búsqueda binaria sobre el historial.

Maurice Wilkes, que dirigió en Cambridge la construcción del EDSAC, uno de los primeros ordenadores, recordaba el momento de 1949 en que se dio cuenta de que buena parte del resto de su vida la iba a pasar buscando errores en sus propios programas. La experiencia no ha cambiado: se suele estimar que la depuración ocupa una parte mayor del trabajo de un programador que escribir código nuevo. Algunos errores parecen desaparecer precisamente cuando se intenta observarlos, porque la herramienta de observación cambia las condiciones; los programadores los llaman, en broma, heisenbugs, por el principio de incertidumbre de Heisenberg.

Desde la década de 2020, los asistentes basados en modelos de lenguaje ayudan a leer mensajes de error, proponer causas probables y sugerir correcciones, y algunos agentes autónomos pueden ejecutar las pruebas y repetir el ciclo por sí mismos. Son eficaces con los errores frecuentes y bien documentados, y menos con los que dependen de detalles del sistema concreto; en todos los casos, la corrección propuesta hay que comprobarla, porque un cambio que hace desaparecer el síntoma no siempre elimina la causa.

La máquina de Turing

Sarasola, Eneko (2025). "Depuración de código (depuración de programas, depuración de software)". Ikusmira. Recuperado de https://ikusmira.org/p/depuracion-de-codigo-depuracion-de-programas-depuracion-de-software/

Una errata, un dato desfasado, un párrafo que falta: edítalo y la redacción revisa tu propuesta.

Sugerir una mejora →
§ Dónde encajaMapa del estante ↓
Sigue con
Informática Depuración de código (depuración de programas, depuración de software)
§ Tres puertas

¿Por dónde sigues?