Qué es un bug en programación: definición, origen y ciclo de vida

Un bug no es más que un error en el software. Puede ser un botón que no funciona, un cálculo incorrecto, una página que no carga o una funcionalidad que se comporta de forma inesperada. Lo que tienen en común todos los bugs es que el software no hace lo que debería hacer.

En este artículo te explico de dónde viene el término, qué diferencia hay entre bug, error y defecto, y cómo funciona el ciclo de vida de un bug desde que se detecta hasta que se cierra.


Por qué se llaman bugs

La historia del término viene de 1947, cuando la programadora Grace Hopper encontró una polilla real atrapada en un relé del ordenador Mark II que estaba causando un fallo en el sistema. La pegaron en el libro de registro con la nota «primer bug real encontrado». Desde entonces, el término se usa para referirse a cualquier error en el software.


Bug, error y defecto: ¿es lo mismo?

En el día a día del sector se usan de forma intercambiable, pero técnicamente no significan exactamente lo mismo.

TérminoDefinición técnicaEjemplo
ErrorAcción humana que produce un resultado incorrectoUn desarrollador malinterpreta un requisito
DefectoImperfección en el código que puede causar un falloEl código resultante de ese malentendido
BugEl fallo observable en el sistema cuando el defecto se ejecutaEl botón que no responde cuando el usuario hace clic

En la práctica, cuando un QA dice «he encontrado un bug» se refiere al fallo observable. Lo que importa es que el software no hace lo que debería hacer.


Qué tipos de bugs existen

No todos los bugs son iguales. Existen bugs funcionales, de interfaz, de rendimiento, de seguridad, de compatibilidad, de regresión, de lógica y de usabilidad — cada uno con un impacto distinto en el sistema y en el usuario.

Si quieres conocer en detalle cada tipo con ejemplos reales y tablas de clasificación completas, puedes leer tipos de bugs en testing: clasificación completa con ejemplos.


Cómo se clasifica un bug

Cuando se encuentra un bug hay que clasificarlo en dos dimensiones antes de reportarlo:

Por severidad

El impacto técnico del bug en el sistema.

SeveridadDescripciónEjemplo
Crítica (Blocker)El sistema no funciona o hay pérdida de datosEl proceso de pago falla completamente
AltaUna funcionalidad importante no funciona pero el sistema sigue operandoEl filtro de búsqueda no devuelve resultados
MediaUna funcionalidad funciona pero de forma incorrectaEl formulario envía el mensaje pero no manda la confirmación al usuario
BajaProblemas menores que no afectan a la funcionalidad principalUn texto con una errata, un icono desalineado

Por prioridad

La urgencia con la que hay que corregirlo desde el punto de vista del negocio.

SeveridadPrioridadEjemplo
AltaAltaEl login no funciona
AltaBajaFallo en funcionalidad que usa el 0,1% de usuarios
BajaAltaErrata en el titular principal de la home
BajaBajaIcono desalineado en página secundaria

La confusión más habitual es pensar que severidad y prioridad son lo mismo. No lo son. Una errata en el titular de la home tiene severidad baja pero prioridad alta — está en el sitio más visible de toda la web y hay que corregirla hoy.


El ciclo de vida de un bug

Un bug no aparece y desaparece de forma inmediata. Pasa por varias fases desde que se detecta hasta que se cierra.

FaseQué ocurre
DetecciónEl QA, un usuario o un sistema automatizado encuentra el fallo
ReporteSe documenta con toda la información necesaria para reproducirlo
AnálisisEl equipo asigna severidad y prioridad y decide quién lo resuelve
CorrecciónEl desarrollador trabaja en la solución
VerificaciónEl QA comprueba que la corrección funciona y no ha introducido nuevos bugs
CierreEl bug se cierra definitivamente

En algunos casos el bug se rechaza — porque no es un bug sino el comportamiento esperado, porque es un duplicado de otro ya reportado, o porque se decide no corregirlo por ahora.


Cómo evitar que los bugs lleguen a producción

La mejor forma de gestionar los bugs es evitar que lleguen a los usuarios. Aplicar el concepto de shift-left testing — incorporar el QA desde el principio del ciclo de desarrollo — reduce drásticamente el número de bugs que llegan a producción.

Si quieres saber cómo encaja el trabajo del QA en un equipo ágil, puedes leer cómo funciona el QA en Scrum.

Y si necesitas ayuda para implementar un proceso de QA que minimice los bugs en producción, puedes ver mis servicios en fatimaqa.com.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio