Error de software ( error de jerga ) - significa un error en el programa o en el sistema, por lo que el programa produce un comportamiento inesperado y, como resultado, el resultado. La mayoría de los errores de software surgen de errores cometidos por los desarrolladores del programa en su código fuente o en su diseño. Además, se producen algunos errores debido al funcionamiento incorrecto de las herramientas de desarrollo, por ejemplo, debido a un compilador que genera un código incorrecto.
El término "error de software" se usa generalmente para referirse a errores que se manifiestan en la etapa de operación del programa, a diferencia de, por ejemplo, errores de diseño o errores de sintaxis. Un informe que contiene información sobre un error también se denomina informe de error . Un informe sobre un problema crítico ( eng. crash ) que hace que el programa se bloquee se denomina informe de bloqueo ( eng. crash report ).
Los errores de software se localizan y eliminan en el proceso de prueba y depuración del programa.
En el sentido de " error técnico elusivo ", la palabra "error" ( eng. bug ) fue utilizada mucho antes de la llegada de las computadoras por el personal de la compañía telefónica y de telégrafos en relación con problemas con equipos eléctricos e ingeniería de radio. En 1878 , Thomas Edison escribió [1] :
“Así fue con todos mis inventos. El primer paso es la intuición, que llega como un relámpago, luego surgen las dificultades: el dispositivo se niega a funcionar, y ahí es cuando aparecen los "errores", como se llama a estos pequeños errores y dificultades, y lleva meses de observación minuciosa, investigación y esfuerzo antes de que llegue al éxito o al fracaso comercial".
Texto original (inglés)[ mostrarocultar] Así ha sido en todos mis inventos. El primer paso es una intuición, y viene con un estallido, luego surgen las dificultades: esta cosa cede y [es] entonces cuando los "Bichos", como se llaman esas pequeñas fallas y dificultades, se muestran y meses de intensa observación, estudio. y el trabajo son requisitos antes de que se alcance el éxito o el fracaso comercial.Durante la Segunda Guerra Mundial , los errores se utilizaron para referirse a problemas con la electrónica del radar.
Según una versión, este término fue aplicado por primera vez a un error de software el 9 de septiembre de 1947 [2] por Grace Hopper , quien trabajaba en la Universidad de Harvard con una computadora Harvard Mark II .. Habiendo rastreado el error en el programa hasta el relé electromecánico de la máquina, encontró una polilla quemada entre los contactos cerrados. El insecto recuperado se grabó en un diario técnico con una inscripción irónica que lo acompañaba: " Se encuentra el primer caso real de error " [3] .
Dependiendo de la etapa de desarrollo del software en la que se detecte el error, existen:
Por importancia:
Por tiempo de aparición:
Por lugar y destino:
Según la naturaleza del error, el programa y el entorno de ejecución, el error puede aparecer de inmediato o viceversa, pasar desapercibido durante mucho tiempo (por ejemplo , Problema 2038 ).
Asimismo, el error puede manifestarse como una vulnerabilidad que permite el acceso no autorizado al sistema o un ataque DoS .
Para depurar un programa ( ing. depuración ), los desarrolladores de software utilizan programas especiales de depuración ( ing. depurador ). Por ejemplo, en un sistema operativo Windows , puede usar el programa WinDbg del paquete Herramientas de depuración de Microsoft para Windows. Para GNU/Linux y otros sistemas operativos similares a UNIX , existe el depurador GDB (GNU Debugger).
La mayor parte de los errores generalmente se depuran en la etapa de compilación y prueba del programa. Sin embargo, algunos de los errores aún ingresan a la versión publicada y aparecen en las computadoras de los usuarios finales durante la operación del software. Para mejorar la calidad del software, se utilizan programas especiales, cuyo propósito es detectar un error en la aplicación de destino, recopilar la información necesaria sobre sus síntomas y enviar un informe a través de Internet a los desarrolladores de este software.
Por ejemplo , la Dra. Watson , que por defecto detecta errores en las aplicaciones de los usuarios y envía un informe a un servidor especial de Microsoft . También, como ejemplo, podemos citar las bibliotecas similares Breakpad [4] y CrashRpt [5] .