Vivimos en un mundo cada vez más codificado, donde los errores en el software pueden tener efectos devastadores. A continuación, exploraremos algunos de los errores de software más costosos y desastrosos de la historia, resaltando la importancia de las pruebas de software rigurosas.
1. NASA's Mars Climate Orbiter
La misión Mars Climate Orbiter de la NASA de 1999 fue un fracaso debido a un error de software. Hubo una falta de comunicación entre los equipos de software, uno utilizaba unidades métricas mientras que el otro utilizaba unidades imperiales. Esta discrepancia llevó a la sonda a aproximarse demasiado a Marte durante su maniobra de inserción en órbita y probablemente se desintegró debido a la presión atmosférica. Este error de software costó a la NASA alrededor de $327.6 millones. Más info aquí
2. Error de División del Intel Pentium
En 1994, el procesador Pentium de Intel tenía un defecto que causaba errores en los cálculos de coma flotante. Aunque el error solo afectaba a un pequeño número de usuarios, la reacción pública y la posterior sustitución de los procesadores defectuosos costaron a Intel aproximadamente $475 millones. Más info aquí
3. Mariner 1
En 1962, el Mariner 1 de la NASA fue destruido solo 293 segundos después del lanzamiento debido a un error en su código de guía. La ausencia de un guion ("-") en el software llevó a la nave a interpretar incorrectamente los datos del radar, desviándose de su trayectoria planeada y llevando a la NASA a autodestruirla por seguridad. Este pequeño error costó 18.5 millones de dólares. Más info aquí
4. Therac-25
La máquina de radioterapia Therac-25, causó la muerte de tres pacientes entre 1985 y 1987 debido a un error de programación que llevó a la entrega de dosis de radiación muy por encima de los límites seguros. Un fallo en el manejo de la interacción entre el operador y la máquina permitió la administración de dosis letales. Más info aquí
5. Error de la bolsa de valores de Tokio
En 2005, un error tipográfico llevó a la compañía Mizuho Securities a perder 225 millones de dólares cuando intentaron cancelar una transacción de acciones que había sido procesada incorrectamente. Más info aquí
6. Sistema operativo AT&T
Un error en una sola línea de código en el software de conmutación de larga distancia de AT&T en 1990 llevó a la caída de su red telefónica en todo Estados Unidos. Este fallo afectó a 75,000 clientes y costó a AT&T 60 millones de dólares en llamadas perdidas y en daños a su reputación.
7. Satélite NOAA-19
El satélite NOAA-19, cayó al suelo durante una revisión en 2003 debido a un software de manejo del sistema que estaba programado incorrectamente. Esto resultó en daños valorados en 135 millones de dólares. Después de una investigación se descubrió que en realidad el problema fue de documentación, ya que un ingeniero hizo un cambio en el aparato que no fue documentado... Más info aquí
8. Heartbleed
Heartbleed es un error de seguridad en la biblioteca de cifrado OpenSSL que permitía a los atacantes leer la memoria del servidor, potencialmente exponiendo datos sensibles. La corrección del bug y la mitigación de sus efectos costaron a las empresas afectadas millones de dólares. Más info aquí
9. Error del sistema de defensa aérea Patriot
Un error en el sistema de defensa aérea Patriot durante la Guerra del Golfo en 1991 permitió que un misil Scud iraquí impactara en un cuartel, matando a 28 soldados. La discrepancia acumulada en la conversión de tiempo llevó a un retraso, lo que provocó que el sistema perdiera de vista al misil entrante. Más info aquí
10. Bug de PayPal
En 2013, PayPal acreditó brevemente a la cuenta de Chris Reynolds con 92 cuatrillones de dólares debido a un error en su sistema. Aunque PayPal no proporcionó detalles sobre cómo ocurrió este error, es probable que fuera un error de desbordamiento de entero, en el que un valor excede el rango máximo que puede manejar una variable. Más info aquí
Estos casos ilustran la importancia crucial de las pruebas y la calidad del software. A medida que nos adentramos más en la era digital, debemos aprender de estos errores y trabajar para evitar que se repitan. Esto resalta la importancia de las pruebas de software rigurosas y meticulosas. La inversión en capacitación en pruebas de software, en la implementación de mejores prácticas de desarrollo de software, y en la creación de un ambiente que fomente la revisión y mejora continua del código, son imperativos éticos en nuestro mundo cada vez más digital.