UP | HOME

Introducción

Table of Contents

Dentro del desarrollo del software hay una fase importantísima: probar dicho software. De hecho, hoy en días, es una parte innegociable, no se puede poner en producción un programa que no ha sido probado.

El objetivo de estas pruebas no es solo detectar errores sino comprobar que cumple con las funciones dadas y que ofrece una buena experiencia de usuario.

A la fase de pruebas se le suele conocer con el anglosajismo de testing y a lo largo de estos apuntes haré alusión constantemente a este término porque que es el término técnico que se usa.

Dada esta importancia, es habitual dedicar tanto tiempo al testing como al propio desarrollo del programa. Esto lleva a que los costes del testing sean altos en cuanto a tiempo y dinero pero no queda otra opción si se desea un software de calidad y entregable. Es obvio que, este coste, puede aumentar muchísimo en sistemas críticos: software de control de centrales nucleares, de aviación, medicina, etc.

La práctica del testing, no obstante, no garantiza que el software está libre de errores. Esto nos lleva a la siguiente parte de este tema: la depuración. Depurar un programa es la práctica que lleva a un/a programador/a a localizar errores, asegurando que se resuelvan adecuadamente antes de la entrega final.

A la práctica de depurar un programa se la suele conocer con el anglosajismo de debugging y a lo largo de estos apuntes haré alusión constantemente a este término porque es el término técnico que se usa.

Para terminar, y antes de profundizar en estos dos mundos, adelantar que a lo largo de este tema vamos a aprender a usar herramientas tanto para el testing como para el debugging.

Errores famosos

Antes de continuar, y para hacer hincapié, todavía más, en la necesidad e importancia del testing y el debugging, te voya presentar varios errores históricos y, algunos de ellos, gracisos.

El primer bug

A los errores en programación se les conoce como bug. ¿Por qué? Esta pregunta nos lleva al primer error popular.

La leyenda cuenta que tras localizar una polilla en el Harvard Mark II el 9 de septiembre de 1947 a las 15:45, Grace Murray Hopper registró el primer "bug" informático en su libreta (log book) con la frase "First actual case of bug being found". Para muchos, Grace Hopper fue la persona que acuñó este término para referirse a errores en el código de un programa informático que provocan resultados no deseados; si bien, la palabra "bug" ya se usaba antes de 1947 en ingeniería.

first_bug.jpg

Figure 1: Imagen obtenida en la Wikipedia

El Efecto 2000

Los desarrolladores de software del siglo pasado nunca habrían pensado que sus creaciones sobrevivirían hasta el nuevo milenio. Por esta razón, muchos asumieron que escribir "19" antes de las variables "año" era un gasto de memoria innecesario. La mayoría decidió omitir esto dos dígitos.

Todo bien hasta que nos acercamos al 31 de diciembre de 1999: nos dimos cuenta que, por esa decisión, los sistemas informáticos pasarían en año nuevo al 1 de enero de 1900 en lugar de 2000 y, a raíz de esto, se desatarían grandes catástrofes y sería el fin de la humanidad.

Sin embargo, seguimos aquí para contarlo: los misiles nucleares no se dispararon solos, no cayeron aviones del cielo y los bancos no perdieron toda la información de sus clientes.

Provocó algunos fallos no muy críticos:

  • En España fallaron unos parquímetros.
  • El instituto francés de meteorología publicó en su web un parte del tiempo del 1 de enero de 19100.
  • En Australia, las máquinas validadoras de algunos autobuses dejaron de funcionar.

error_2000.png

Figure 2: Imagen obtenida en la Wikipedia

El misil de Dhahran

En febrero 1991 (1ª Guerra del Golfo), un misil iraquí alcanzó la base de Dhahran en Arabia Saudí, matando a 28 soldados estadounidenses.

Tras una investigación, se determinó que el sistema de protección antibalístico de la base falló por consecuencia de un bug informático.

Cada hora que pasaba, el software que controlaba dicha batería redondeaba los valores del reloj digital de una forma mínima. Sin embargo, este error mínimo hizo que se acumulara un retraso de medio segundo al cabo de dichas 100 horas.

Para un persona 0.33 segundos son una cantidad infinitesimal; pero para un radar que trata de localizar un misil cuya velocidad alcanza 1.5 Km por segundo, este "micro-retraso" supone 600 metros de error.

¿En metros o en pies? El caso del Mars Climate Orbiter

La sonda Mars Climate Orbiter fue lanzada en el año 1998 con el objetivo de estudiar el clima en Marte, si bien, esta nunca logró cumplir su misión.

Tras varios meses viajando por el espacio, la sonda se destruyó por causa de un error de navegación.

Los equipos que controlaban la sonda desde la Tierra usaba parámetros en Unidades Imperiales y los cálculos se realizaban en el Sistema Métrico Decimal.

Estos errores de cálculo fueron impactando la trayectoria a lo largo de los días y, finalmente, la sonda quedó destruída al pasar por la atmósfera de Marte (con casi 100 km de error).

mars_climate_orbiter.jpg

Figure 3: Imagen obtenida en la Wikipedia

Demasiados números para Ariane 5

Ya sabes que según la variable que creas: Integer, Long, Short… esta soporta números más o menos grandes, más o menos memoria.

El 4 de junio de 1996 y a los 30 segundos de despegar, el cohete Ariane 5 empezó a desintegrarse poco a poco, hasta su explosión. Tras realizar simulaciones con un sistema de vuelo y condiciones similares a las del vuelo 501, se descubrió que en el software del cohete (que provenía de Ariane 4), una variable de 64 bits con decimales se transformaba en una variable de 16 bits sin decimales.

Estas variables, al ocupar diferente tamaño en la memoria, desencadenaron una serie de bugs que afectaron a todos los ordenadores de vuelo y que paralizaron todo el hardware de la nave, activando su secuencia de autodestrucción.

ariane5.jpg

Figure 4: Imagen obtenida en la Wikipedia

Pantallazo azul de la muerte

La llamada pantalla azul de la muerte o pantallazo azul hace referencia a la pantalla mostrada por el sistema operativo Microsoft Windows cuando no puede (o está en peligro de no poder) recuperarse de un error del sistema.

En la presentación de Windows 98 se produjo este error "en vivo" que puedes ver en el siguiente vídeo.

blue_screen_of_death.png

Figure 5: Imagen obtenida en la Wikipedia

Author: Román Ginés Martínez Ferrández

Created: 2026-05-05 mar 15:44

Validate