A desintegração do foguete Ariane 5 37 segundos após o lançamento em sua viagem inaugural ( vôo 501 ) é comumente referida como um dos bugs de software mais caros da história 1 :
A Agência Espacial Européia levou 10 anos e US $ 7 bilhões para produzir o Ariane 5, um foguete gigante capaz de lançar um par de satélites de três toneladas em órbita a cada lançamento e com o objetivo de dar à Europa uma supremacia esmagadora nos negócios espaciais comerciais.
Tudo o que foi necessário para explodir o foguete em menos de um minuto em sua viagem inaugural em junho passado, espalhando escombros de fogo nos pântanos da Guiana Francesa, foi um pequeno programa de computador tentando inserir um número de 64 bits em um espaço de 16 bits.
Um bug, um acidente. De todas as linhas descuidadas de código registradas nos anais da ciência da computação, essa pode ser a mais devastadoramente eficiente. De entrevistas com especialistas em foguetes e de uma análise preparada para a agência espacial, surge um caminho claro desde um erro aritmético até a destruição total.
Quais as principais mudanças que a falha 501 do Flight e as investigações subsequentes inspiraram na pesquisa de sistemas críticos de segurança e testes de software?
Não estou procurando uma explicação do bug em si, mas uma explicação do impacto histórico do bug, em termos de pesquisas inspiradas ou diretamente relacionadas às investigações da falha. Por exemplo, este artigo conclui:
Usamos a análise estática para:
- verifique a inicialização das variáveis,
- forneça uma lista exaustiva de possíveis conflitos de acesso a dados para variáveis compartilhadas,
- lista exaustivamente os possíveis erros de tempo de execução da semântica Ada.
Até onde sabemos, é a primeira vez que técnicas de análise estática baseadas em booleanas e não baseadas em booleanas são usadas para validar programas industriais.
Da mesma forma, este documento (pdf) observa:
As análises de programas estáticos baseados em interpretação abstrata foram usadas para a análise estática do software ADA incorporado do iniciador Ariane 5 e do ARD. O analisador de programa estático visa a detecção automática da indefinição, potencialidade, impossibilidade ou inacessibilidade de erros em tempo de execução, como vazamentos escalares e de ponto flutuante, erros de índice de matriz, divisões por zero e exceções aritméticas relacionadas, variáveis não inicializadas, dados em execução. estruturas de dados compartilhadas etc. O analisador conseguiu descobrir automaticamente o erro de vôo do Ariane 501. A análise estática do software crítico de segurança incorporado (como o software aviônico) é muito promissora .
Eu adoraria uma explicação completa do impacto que esse evento único teve nas abordagens e ferramentas de teste de software.
1 O valor de US $ 7 bilhões possivelmente se refere ao custo total do projeto Ariane 5, a Wikipedia relata que a falha resultou em uma perda de mais de US $ 370 milhões. Ainda é um fracasso bastante caro, mas nem perto dos US $ 7 bilhões.