처녀 항해 ( 501 편 ) 에서 발사 된 지 37 초 후 Ariane 5 로켓의 붕괴 는 일반적으로 역사 1 에서 가장 비싼 소프트웨어 버그 중 하나로 언급됩니다 .
유럽 우주국 (European Space Agency)은 발사 할 때마다 3 톤 위성 쌍을 궤도로 돌릴 수있는 거대한 로켓 인 Ariane 5를 생산하는 데 10 년과 70 억 달러가 걸렸으며, 유럽이 상업 우주 사업에서 압도적 인 우위를 점하게하려고했다.
작년 6 월, 프랑스 령 기아나의 맹그로브 늪지에 불 같은 잔해가 흩어지고 1 분도 채 지나지 않아 로켓이 폭발하기 시작한 것은 64 비트 숫자를 16 비트 공간에 넣는 작은 컴퓨터 프로그램이었습니다.
하나의 버그, 하나의 충돌. 컴퓨터 과학의 연대기에 기록 된 모든 부주의 한 코드 라인 중에서이 코드는 가장 파괴적인 효율성을 보여줍니다. 로켓 전문가와의 인터뷰와 우주 기관을 위해 준비된 분석에서 산술 오류에서 전체 파괴까지 명확한 경로가 등장합니다.
Flight 501의 실패와 그에 따른 조사에서 안전에 중요한 시스템 및 소프트웨어 테스트에 대한 주요 변화는 무엇입니까?
버그 자체에 대한 설명을 찾고 있지는 않지만 버그의 조사에서 영감을 얻거나 직접 관련된 연구와 관련하여 버그의 역사적 영향에 대한 설명을 찾고 있습니다. 예를 들어이 백서 는 다음과 같은 결론을 내립니다.
정적 분석을 사용하여 다음을 수행했습니다.
- 변수 초기화 확인
- 공유 변수에 대한 잠재적 인 데이터 액세스 충돌의 전체 목록을 제공합니다.
- Ada 시맨틱의 잠재적 인 런타임 오류를 철저히 나열하십시오.
우리가 아는 한, 부울 기반 및 비 부울 기반 정적 분석 기술이 산업 프로그램의 유효성을 검증하는 데 처음으로 사용됩니다.
마찬가지로이 백서 (pdf) 에서는 다음 과 같이 설명합니다.
Ariane 5 Launcher의 내장 ADA 소프트웨어 및 ARD의 정적 분석에는 추상 해석 기반 정적 프로그램 분석이 사용되었습니다. 정적 프로그램 분석기는 스칼라 및 부동 소수점 오버플로, 배열 인덱스 오류, 0으로 나누기 및 관련 산술 예외, 초기화되지 않은 변수, 데이터 레이스와 같은 런타임 오류의 정의, 잠재력, 불가능 또는 액세스 불가능의 자동 감지를 목표로합니다. 공유 데이터 구조 등. 분석기는 Ariane 501 비행 오류를 자동으로 감지 할 수있었습니다. 항공 안전 소프트웨어와 같은 임베디드 안전 핵심 소프트웨어의 정적 분석은 매우 유망 합니다.
이 단일 이벤트가 소프트웨어 테스팅 접근 방식 및 툴에 미치는 영향에 대해 자세히 설명하고 싶습니다.
1 70 억 달러 규모의 수치는 Ariane 5 프로젝트의 총 비용을 의미하며 Wikipedia는이 실패로 인해 3 억 7 천만 달러 이상의 손실이 발생했다고보고했습니다. 여전히 비용이 많이 들지만 70 억 달러에 가까운 곳은 없습니다.