Tipos de bugs de software

Un “bug de software” es un error que afecta el comportamiento de un determinado programa. Odiados por los programadores, los “bugs” suelen ser bastante difíciles de eliminar. Para poder lidiar con ellos, los especialistas los han divididos en grupos según su comportamiento, y así es como ha surgido toda una clasificación zoológica de estos bichos. Te presentamos a los Heisenbugs, Bohrbug, Mandelbugs, Schroedinbugs y demás integrantes de este nutrido grupo de errores.

 

Cualquier persona que haya intentado programar un ordenador sabe lo que es un “bug”. La palabra en ingles significa “insecto”, y se la utiliza para referirse a los fallos que aparecen a lo largo  del proceso de creación de programas de ordenador. Si bien pueden aparecer en cualquiera de las etapas del ciclo de vida del software, son más frecuentes durante la fase de desarrollo y programación. El origen de este término es tan viejo como la programación misma, e incluso hay quienes afirman que el término “bug” se utilizaba en la “era pre-ordenador”, cuando alguna polilla atascaba los delicados mecanismos de alguna máquina. Como sea, en informática comenzó a utilizarse cuando en 1947 una licenciada en Física y destacada matemática llamada Grace Murray Hopper, que trabajaba programando el ordenador Mark II, pegó con cinta adhesiva en el cuaderno utilizado para anotar las novedades que surgían al utilizar el artefacto el insecto que había bloqueado uno de sus relés electromagnéticos.

insecto

“Bug” reportado en 1947 por Grace Murray Hopper. Fue hallado en el Mark II.

El bug descubierto por Grace Murray Hopper fue el primero en ser famoso, pero no el único. La industria del software, aunque no tenga componentes físicos que puedan ser bloqueados por un bicho, suele tener problemas de funcionamiento que -siguiendo la tradición- también se denominan “bugs”. El software generalmente contiene errores. Esto es más evidente durante las etapas de desarrollo del mismo, ya que muchas personas se encuentran trabajando en diferentes partes del sistema, y varias de esas rutinas y subprogramas aún no están completamente terminadas. Tantos son los fallos que pueden aparecer, que los informáticos los han clasificado según su “comportamiento”. Entre los más frecuentes se encuentran los “Heisenbugs”. El nombre tiene origen en el conocido “Principio de Incertidumbre de Heisenberg”. Heisenberg estableció limites, más allá de los cuales los conceptos de la física clásica  no pueden ser empleados. Este principio afirma, por ejemplo, que no se puede determinar simultáneamente la posición y la cantidad de movimiento de una partícula. A veces se expresa esto como que el mismo acto de observar un experimento altera los resultados. Los programadores utilizan el término “heisenbug” para denominar a los errores que desaparecen o alteran su comportamiento al tratar de depurarlos. Esto ocurre por que cuando se intenta encontrar un error dentro de un programa se suele utilizar alguna herramienta -otro programa- o un estado de memoria diferente al habitual, lo que hace que el entorno en que se ejecuta el software bajo prueba no sea el mismo y el error desaparezca como por arte de magia, o “mute”, provocando efectos diferentes.

insecto2

La denominación “Mandelbug” se debe al conocido conjunto fractal de Mandelbrot.

Los “Bohrbug”, denominados así por el modelo atómico de Bohr, es un tipo de error que se encuentra en las antípodas del anterior. Los informáticos utilizan esta denominación para aquellos errores que, no importa lo que se haga, mantienen un comportamiento constante. Otra variedad bastante frecuente es el “Mandelbug”, fallos con causas tan complejas que su comportamiento parece ser completamente caótico. La denominación se debe al conocido conjunto fractal descubierto por Benoit Mandelbrot, un monstruo matemático de enorme complejidad. Si estás programando, seguramente no querrás encontrarte con uno de estos.

insecto3

Cualquier persona que haya intentado programar un ordenador sabe lo que es un “bug”.

Los “Schroedinbugs” parecen sacados de una novela de ciencia ficción. Son errores que no aparecen hasta que alguien lee el código y descubre que, en determinadas circunstancias, el programa podría fallar. A partir de ese momento, el maldito “Schroedinbug” comienza aparecer una y otra vez. Parece que algo así no puede existir, sin embargo, cualquiera que haya participado de un desarrollo más o menos grande seguramente ha tenido que lidiar con él. Su nombre se relaciona, por supuesto, con el físico Erwin Rudolf Josef Alexander Schrödinger y su famosa paradoja conocida como “paradoja del gato de Schrödinger”. En este caso, el error no se manifiesta hasta que el observador no sabe que está allí. Raro. Muy raro. Pero real.

insecto4

Es muy poco frecuente encontrar un software que no posea algún error oculto.

El zoológico informático tiene más criaturas. Algunos no son son realmente problemas del software, pero lo parecen. Los programadores llaman “stole” al problema que se produce cuando luego de introducir datos que aparentan ser correctos (pero no lo son) se obtiene una (lógica) salida incorrecta. El problema, por supuesto, se encuentra en los datos introducidos, pero como el programador está convencido que estos son correctos, suele comenzar a reescribir partes de su programa tratando de eliminar un bug que, en realidad, no existe. El nombre deriva de Aristóteles (Aristotle), de quien mucha gente asumía que debía estar siempre en lo cierto y no cuestionaba sus ideas. Más extraños aun son los denominados “Phase of the Moon bug” (o bugs de fase lunar), errores que parecen depender de factores aleatorios y que la mente del programador los atribuye a los motivos más esotéricos. “El programa falla cuando José está presente”, o “solo falla cuando la luna está en cuarto creciente”. Al igual que todos los anteriores, este bug es muy frecuente.

insectosss

Esperamos que esta galería de bichos te haya resultado interesante.

El último tipo de bug es quizás uno de los más comunes. Denominado “fantasma en el código”, suele esconderse en esas rutinas o subprogramas que rara vez se ejecutan. Su ubicación los hace muy difíciles de identificar durante las pruebas previas al lanzamiento del programa, y puede hacer que un producto fracase estrepitosamente al ser puesto a la venta. Aunque parezca extraño que algo así pueda ocurrir, basta con recordar el problema que tenia el microcódigo de los primeros microprocesadores Intel Pentium, que en determinadas condiciones arrojaban resultados erróneos al dividir dos números. Ese bug logró sobrevivir a todas las pruebas, y explotó cuando el chip ya estaba en la calle. Esperamos que esta galería de bichos te haya resultado interesante, y te esperamos en el foro para que comentes con cuales has tenido que medirte.

Anuncios
Esta entrada fue publicada en Tecnología. Guarda el enlace permanente.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s