Bugs o errores informáticos

Un error de software, error o simplemente fallo (también conocido por el inglés, bug) es un problema en un programa de computador o sistema de software que desencadena un resultado indeseado. Los programas que ayudan a la detección y eliminación de errores de software son denominados depuradores (en inglés, debuggers).

Es decir, en software, un bug es un error no controlado en el sistema. Por lo tanto, un bug ocasiona que el sistema funcione de forma inadecuada y genera un resultado indeseado.

La mayoría de los bugs se originan por errores de quienes desarrollan el código de un software o sistema, al diseñar éstos o al no ser compatibles con otros programas o hardware.

 

¿Cuál es su origen?

El término bug se usa al menos desde 1872 en el que Thomas Alva Edison lo utilizó en sus notas, además, aparece en una carta suya de 1878 en la que habla de defectos mecánicos o eléctricos​, y también en 1889 la empleó cuando hizo una referencia a las interferencias y mal funcionamiento de un fonógrafo.

En principio se asoció a la física y matemática Grace Murray Hopper y a otras personas que trabajaron en la Universidad de Harvard en el Mark II. Así, informaron de que un ordenador había sufrido un fallo en el relé electromagnético. Luego, más tarde cuando se investigó ese relé se encontró una polilla (bug) frita que hizo que ese relé quedase abierto. Entonces Hopper pegó ese insecto con una cinta adhesiva en la bitácora en el que añadió este incidente.

¿Cómo se crean?

En la mayoría de casos, un bug se crea por un fallo o error por parte de quienes desarrollan el código de un software o sistema. Algunos errores de programación comunes que podemos encontrar son la división por cero, el ciclo infinito, problemas aritméticos como desbordamientos (overflow) o subdesbordamientos (underflow), exceder el tamaño del array definido o utilizar una variable no inicializada.

También están a la orden del día los errores tipográficos en el que se confunde el número «0» con la vocal «O». Para finalizar con este apartado, otros bugs que nos podemos encontrar son:

  • Desbordamiento de búfer (buffer overflow).
  • Acceso a memoria no permitida (violación de acceso)
  • Errores de sintaxis, como, por ejemplo, no acabar una instrucción con un punto y coma (;) en un lenguaje de programación que lo necesita.
  • Uso incorrecto de API.

 

¿Por qué debemos evitarlos?

Los bugs informáticos son errores o fallas de un programa o sistema que produce resultados inesperados, es decir, que trabaja de una forma para la que no estaba diseñado originalmente.

Aunque en la era digital se ha convertido en un término muy recurrente, este concepto se ha utilizado desde hace más de 140 años. El inventor estadounidense y fundador de General Electric, Thomas Alva Edison describió en sus anotaciones como “bugs” a los problemas técnicos que se le presentaban al desarrollar algún proyecto.

La mayoría de los bugs se originan por errores de quienes desarrollan el código de un software o sistema, al diseñar éstos o al no ser compatibles con otros programas o hardware.

 

¿Cómo nos afectan?

Según su origen y las diversas condiciones en las que aparecen, existen varios tipos de bugs que pueden provocar diversas fallas, algunas representan menores riesgos que otras.

Los bugs menores, por ejemplo, un cursor que no se comporta como está previsto, pueden ser incómodos, pero no dañan la información de los programas. Otros pueden provocar que un programa se bloquee o deje de responder a los comandos deseados, lo que obliga al usuario a reiniciar el programa, perdiendo todo el trabajo que no haya guardado con anterioridad.

Sin embargo, existen bugs que generan brechas de seguridad. Estas vulnerabilidades pueden ser aprovechados por delincuentes cibernéticos para vulnerar la seguridad de programas o sistemas, para acceder, obtener información o provocar fallas.

Un bug informático puede afectar a diversos equipos de muy diversa índole, como, por ejemplo:

  • Un ordenador o portátil.
  • Al smartphone o tablet.
  • Un router doméstico o equipamiento de red.
  • A los dispositivos de IoT, de domótica o de vídeo vigilancia.

 

¿A qué tipo de bugs o errores informáticos nos podemos enfrentar?

La gravedad de un bug informático se va a determinar en función del impacto que tiene el fallo en la operación del sistema o equipo. Este impacto negativo se puede traducir de diversas maneras como la pérdida de datos y la disminución de ingresos.

Las reglas para clasificar un error de software deberán ser determinadas en función de la tarea que realizan. Por ejemplo, el bug de un juego, un navegador de Internet o un sistema de monitoreo de seguridad en tiempo real tienen un impacto diferente.

No obstante, aunque los niveles de gravedad no están estandarizados, habitualmente se suelen usar estos:

  • Crítico: se trata de un error que al producirse hace que el programa no pueda ejecutarse. Se trata de errores que pueden llegar a bloquear el sistema.
  • Alto: se produce cuando ese error afecta seriamente a la funcionalidad de la aplicación y complica utilizarla.
  • Medio: podemos trabajar, pero de vez en cuando tenemos mensajes de la aplicación que son incorrectos o pequeños fallos que nos ralentizan.
  • Bajo: son errores de bajo impacto, y que nos afectan muy poco o nada. Podemos apreciar errores estéticos en la interfaz de usuario o errores tipográficos. Algún ejemplo podrían ser menús que se le hayan olvidado traducir o que, entre los nombres, aparezcan caracteres extraños.

En función de la gravedad de un bug informático luego suelen ser corregidos. Así, una vulnerabilidad crítica se suele corregir en la siguiente actualización. Los fallos de seguridad «altos» o «críticos» no suelen tardar mucho en solucionarlos, las de nivel medio depende de lo molestas que sean, y las bajas puede que no se arreglen nunca.

También, un hecho que se produce con cierta frecuencia es liberar software con bugs conocidos de baja prioridad. Las razones por las que se toman estas decisiones de no arreglar un bug informático de baja prioridad suelen ser dos:

  • No es posible solucionarlo antes de la fecha de lanzamiento y el error se solucionará en una próxima actualización.
  • Los cambios que hay que hacer son económicamente demasiado altos.

 

¿Qué podemos hacer poder para protegernos de los bugs o errores informáticos?

Para minimizar los bugs informáticos y reducir su impacto en una empresa o particular, se pueden tomar una serie de medidas:

  1. Utilizar depuradores

Los depuradores o debuggers son programas que analizan el código en busca de errores y los depuran o solucionan cuando los encuentran. Son utilizados por programadores y administradores de sistemas para corregir fallos que pueden ocasionar riesgos de seguridad.

  1. Revisar la compatibilidad entre programas

Cuando se trabaja con distintos programas es importante comprobar si son compatibles entre sí a la hora de intercambiar información o procesos, para evitar la aparición de algún bug durante su uso. Un ejemplo lo podemos encontrar en una web diseñada con WordPress. Cada vez que se añade un nuevo plugin o complemento es importante verificar su compatibilidad con la versión de WordPress que se está utilizando para evitar la aparición de estos molestos bugs.

  1. Actualizar el hardware

Muchos bugs se producen por problemas de incompatibilidad entre el software y el hardware por lo que es importante actualizar computadoras y otros dispositivos, reduciendo así el riesgo de que se produzcan este tipo de fallos.

  1. Limpiar el equipo de malware

Muchos programas maliciosos interfieren en el comportamiento del software instalado en el equipo. Es recomendable realizar escaneos y limpiezas periódicas de los equipos para que este tipo de software no pueda hacer uso de bugs y vulnerabilidades para atacar el sistema (bloqueando su acceso, robando información, u otro tipo de actividades peligrosas).

  1. Valorar la actualización del sistema operativo a una nueva versión

Con las nuevas versiones de un sistema operativo o programa siempre vienen asociados una serie de bugs que se van corrigiendo posteriormente. Esto es así porque los test que se llevan a cabo durante su desarrollo no tienen el nivel de alcance que se produce cuando son utilizados por una gran cantidad de usuarios tras su lanzamiento. Por este motivo es mejor esperar antes de instalar una nueva versión hasta comprobar que los desarrolladores lancen parches para reparar los posibles bugs del lanzamiento.