# Bug

> Un error en un software que hace que se comporte distinto de lo que se buscaba.

- Nivel: Básico
- Temas: Software
- URL: https://tidbit.legios.com.ar/es/bug/
- En inglés: [Bug](https://tidbit.legios.com.ar/bug/)

Un **bug** es una falla en un programa que lo hace hacer algo que sus autores no querían: un botón que no hace nada, un total que suma mal, una app que se cierra cuando girás el celular. Las computadoras siguen las instrucciones al pie de la letra, así que un bug casi siempre es un error humano en esas instrucciones, o una situación que nadie previó, como un apellido con apóstrofo o una fecha en un año bisiesto.

Los ingenieros usaban la palabra (bicho, en inglés) para las fallas de las máquinas mucho antes de las computadoras. La anécdota famosa es de 1947: los operadores de la computadora Harvard Mark II, un equipo del que formaba parte Grace Hopper, encontraron una polilla de verdad atrapada en un relé y la pegaron con cinta en el cuaderno de registro como el "primer caso real de bug encontrado". El chiste funciona justamente porque la palabra ya se usaba.

Algunos bugs son cosméticos y otros, graves. Un bug que deja a un atacante leer datos que no debería ver es una vulnerabilidad de seguridad. Los bugs son normales en cualquier programa grande; lo importante es encontrarlos temprano con pruebas y revisión de código, y arreglarlos con **debugging**. Los equipos suelen registrarlos en un bug tracker, con los pasos para reproducirlos, qué tan graves son y quién se está ocupando.

## Una analogía

Un error de tipeo en una receta que dice "3 tazas de sal" en vez de "3 cucharaditas". El cocinero la sigue fielmente y el plato sale arruinado, no porque cocinó mal sino porque las instrucciones estaban mal.

## Para quedarse

- Un error o un caso no previsto en las instrucciones de un programa.
- Va desde detalles cosméticos hasta cuelgues y agujeros de seguridad.
- La famosa polilla de 1947 fue un chiste con una palabra que ya se usaba.
- Se encuentra con pruebas y reportes, y se arregla con debugging.

## Para seguir leyendo

- [Error de software en Wikipedia](https://es.wikipedia.org/wiki/Error_de_software)
- [Grace Murray Hopper en Wikipedia](https://es.wikipedia.org/wiki/Grace_Murray_Hopper)

## Términos relacionados

- [Vulnerabilidad y CVE](https://tidbit.legios.com.ar/es/vulnerability-and-cve/): Una falla que permite abusar de un software, y el código público que la identifica.
- [Revisión de código](https://tidbit.legios.com.ar/es/code-review/): Que otra persona lea un cambio de código antes de que pase a ser parte del producto.
- [Debugging](https://tidbit.legios.com.ar/es/debugging/): El trabajo de detective de encontrar por qué falla un programa, y arreglarlo.
