La desintegración del cohete Ariane 5 37 segundos después del lanzamiento en su viaje inaugural ( Vuelo 501 ) se conoce comúnmente como uno de los errores de software más caros en la historia 1 :
La Agencia Espacial Europea tardó 10 años y $ 7 mil millones en producir Ariane 5, un cohete gigante capaz de lanzar un par de satélites de tres toneladas en órbita con cada lanzamiento y tenía la intención de darle a Europa una supremacía abrumadora en el negocio espacial comercial.
Todo lo que se necesitó para explotar ese cohete en menos de un minuto en su viaje inaugural en junio pasado, esparciendo escombros ardientes por los manglares de la Guayana Francesa, fue un pequeño programa de computadora que intentaba introducir un número de 64 bits en un espacio de 16 bits.
Un error, un accidente. De todas las líneas de código descuidadas registradas en los anales de la informática, esta puede ser la más devastadoramente eficiente. A partir de entrevistas con expertos en cohetería y un análisis preparado para la agencia espacial, emerge un camino claro desde un error aritmético hasta la destrucción total.
¿Qué cambios importantes provocó el fracaso de Flight 501 y las investigaciones posteriores inspiraron a la investigación de sistemas críticos de seguridad y pruebas de software?
No busco una explicación del error en sí, sino una explicación del impacto histórico del error, en términos de investigación que se inspiró o se relacionó directamente con la (s) investigación (es) de la falla. Por ejemplo, este documento concluye:
Hemos utilizado el análisis estático para:
- verificar la inicialización de variables,
- proporcionar la lista exhaustiva de posibles conflictos de acceso a datos para variables compartidas,
- enumere exhaustivamente los posibles errores de tiempo de ejecución de la semántica de Ada.
Hasta donde sabemos, esta es la primera vez que se utilizan técnicas de análisis estático basadas en booleanos y no booleanas para validar programas industriales.
Del mismo modo, este documento (pdf) señala:
Se han utilizado análisis de programas estáticos basados en interpretación abstracta para el análisis estático del software ADA incorporado del lanzador Ariane 5 y el ARD. El analizador de programa estático tiene como objetivo la detección automática de la de fi nitud, potencialidad, imposibilidad o inaccesibilidad de errores de tiempo de ejecución tales como sobrevuelos escalares y de punto flotante, errores de índice de matriz, divisiones por cero y excepciones aritméticas relacionadas, variables no inicializadas, carreras de datos en estructuras de datos compartidas, etc. El analizador pudo descubrir automáticamente el error de vuelo Ariane 501. El análisis estático del software de seguridad incorporado (como el software de aviónica) es muy prometedor .
Me encantaría una explicación detallada del impacto que este evento único tuvo en los enfoques y herramientas de prueba de software.
1 La cifra de $ 7 mil millones posiblemente se refiere al costo total del proyecto Ariane 5, Wikipedia informa que el fracaso resultó en una pérdida de más de $ 370 millones. Sigue siendo un fracaso bastante costoso, pero no se acerca a la cifra de $ 7 mil millones.