seguridad

Los sistemas informáticos dirigen el mundo moderno, lo que a veces hace que los fallos técnicos sean la causa de accidentes fatales en el entorno material. Estos fallos suelen ser el resultado de errores humanos en la ingeniería, los cálculos, el desarrollo de software y las pruebas.

Están aquí los errores más llamativos y los casos más destacados de todo el mundo y que demuestran la importancia de garantizar la calidad de cualquier software. Agrupamos los incidentes por su coste, ya sea en tiempo, dinero o vidas.

Tiempo y dinero

Todos sabemos que “el tiempo es oro”, por lo que los errores que cuestan tiempo, se convierten, sin duda, en pérdidas económicas.

USS Yorktown

El incidente tuvo lugar en 1997, cuando el portaaviones estadounidense USS Yorktown perdió el control de su sistema de propulsión debido a la desconexión de todas las máquinas del sistema. Resultó que el administrador del sistema había introducido un valor 0 en la base de datos para uno de los parámetros al intentar solucionar una válvula de combustible, por lo que cuando los sistemas intentaron utilizar esta variable, provocó la división por 0. La nave se detuvo en el agua y se necesitaron dos horas y cuarenta y cinco minutos para reiniciar los sistemas y hacerla funcionar de nuevo.

Aeropuerto de Los Ángeles

En 2004, en el aeropuerto de Los Ángeles, la sala de radiocontrol de vuelos perdió el contacto de voz con más de 800 aviones, y el sistema de comunicación adicional también se desconectó. Esto ocurrió debido al temporizador del teletipo que servía para identificar y sincronizar los mensajes. Comenzó desde el número más alto 2 a 32 grados, y cada nuevo mensaje disminuyó el temporizador en 1. Cuando el número de teletipos llegó a 0, resultó que el sistema no podía seguir enviando mensajes. Ahora, el procedimiento de seguridad en el aeropuerto requiere que el sistema se reinicie cada 30 días, ya que tarda 50 días en enviar mensajes de 2 a 32 grados. Por desgracia, este conocimiento tuvo un coste económico y de recursos considerable.

Misil Patriot

El incidente ocurrió en 1991 cuando el sistema Patriot no pudo interceptar el misil lanzado por las fuerzas de Saddam Hussein. El misil impactó en el cuartel de los soldados estadounidenses y provocó 28 muertes. Tras el cambio de la hora, los procesadores del interceptor de 24 bits cometían un error de 0,013 segundos cada hora, por lo que el Patriot obtenía un cálculo erróneo de la posición del misil igual a 600 metros después de más de 100 horas de trabajo sin reiniciar el sistema.

Ariane 5

ThEste error costó 7.000 millones de dólares y está considerado como uno de los más costosos de la historia de la programación. En 1996, el cohete portador Ariane 5 debía poner en órbita varios satélites y otros equipos, pero explotó inmediatamente después del lanzamiento debido a un error en el programa informático de a bordo. Uno de los módulos del sistema intentó convertir un número de coma flotante de 64 bits en un entero de 16 bits. El valor era demasiado grande y no cabía en 16 bits, lo que provocó un desbordamiento. El ordenador principal y el de respaldo tenían el mismo software, por lo que funcionaban de la misma manera.

Mariner 1

La Mariner 1 es una nave espacial que tenía la misión de sobrevolar Venus en 1962, pero que apenas salió de Cabo Cañaveral. Un error de codificación del software hizo que el cohete se desviara de su curso, y amenazaba con estrellarse. Como resultado, los ingenieros de la NASA tuvieron que emitir una orden de autodestrucción. Las pérdidas financieras fueron de más de 18 millones de dólares.

Vidas

A continuación se presentan los casos en los que los fallos técnicos han costado mucho más que tiempo y dinero. Puede parecer surrealista, pero incluso pequeños errores de programación pueden provocar la muerte de personas.

Caso Joshua Brown

Actualmente, la gente está obsesionada con el sueño de los vehículos autónomos que eliminan por completo la participación humana y funcionan con el piloto automático. Sin embargo, el precio de sus beneficios es demasiado alto cuando se trata de los accidentes que se producen con estos coches debido a errores técnicos.

Joshua Brown es conocido como el primer conductor de Tesla que murió durante un viaje en piloto automático. Su coche no reconoció la furgoneta de color claro frente a un cielo claro y no activó el sistema de frenos, por lo que el coche se estrelló a toda velocidad contra la furgoneta. Los representantes de Tesla insistieron en que el sistema había funcionado y dieron señales al conductor para que pusiera las manos en el volante, pero éste las ignoró. Todavía no se sabe si esto es cierto, pero el accidente provocó dudas en la gente respecto al piloto automático.

Caso Elaine Herzberg

Otra historia conocida es la de Elaine Herzberg, la primera mujer que murió bajo las ruedas de un coche autónomo de Uber. Era de noche y el coche no reconoció al humano. El conductor que debía controlar el piloto automático no tuvo tiempo suficiente para detenerse.

Ambulancia de Londres

En 1992, cuando la ambulancia de Londres decidió sustituir a la plantilla de los operadores por un sistema informático, éste se puso en funcionamiento sin pruebas de carga y con 81 fallos conocidos. El sistema se colapsó debido a los errores en la distribución de las rutas de las ambulancias, lo que provocó la muerte de diversas personas. Además, compraron un equipo barato, que se estropeó un par de horas después del uso activo del sistema.

Multidata Systems International

Este caso se refiere a un software de radioterapia para pacientes con cáncer desarrollado por Multidata Systems International. El mal cálculo de la dosis adecuada expuso a los pacientes a niveles de radiación perjudiciales e incluso mortales, y causó la muerte de 8 personas.

Therac-25

El caso más llamativo en la historia de la programación de dispositivos médicos fue el incidente con la máquina de radioterapia Therac-25. Debido al error de condición de carrera, al cambiar rápidamente entre los modos magnético y de rayos X del dispositivo, el obturador de rayos X no tenía tiempo de ajustarse. Como resultado, diez pacientes sufrieron la enfermedad de la radiación, que les llevó a la muerte o a la amputación de las partes del cuerpo afectadas.

Boeing 787 Dreamliner

Este caso trata de la detección oportuna del error en el avión Boeing 787 Dreamliner. Poder evitarlo probablemente salvó la vida de cientos de personas. El fallo podría haber apagado el suministro de energía del avión después de 248 días de trabajo, independientemente de la fase de la aeronave. El motivo era un número disminuido de 32 bits que al cabo de 248 días equivaldría a 0,01 segundos, lo que no cabe en la capacidad y provocaría la pérdida total del control de la aeronave.

Conclusión

Estas historias son solo un granito de arena en el desierto, y hay miles de ejemplos en los que los errores de programación cuestan tiempo, dinero y vidas. Y habrá más si no se presta la debida atención a la calidad del software desarrollado y a unas pruebas exhaustivas.

En QAwerk, adoptamos un enfoque responsable de las soluciones que creamos. Nuestro objetivo es proporcionar servicios de garantía de calidad y desarrollo de software de primera categoría para clientes de diferentes sectores. Tanto si se trata de una simple aplicación móvil como de un proyecto complejo, como la actualización del sistema de votación del Parlamento Europeo, nuestros especialistas siempre dan prioridad a la calidad de los productos desarrollados.