Disintegrasi roket Ariane 5 37 detik setelah diluncurkan pada perjalanan perdananya ( Penerbangan 501 ) biasanya disebut sebagai salah satu bug perangkat lunak paling mahal dalam sejarah 1 :
Butuh Badan Antariksa Eropa 10 tahun dan $ 7 miliar untuk menghasilkan Ariane 5, roket raksasa yang mampu melemparkan sepasang satelit tiga ton ke orbit dengan setiap peluncuran dan dimaksudkan untuk memberi Eropa supremasi luar biasa dalam bisnis luar angkasa komersial.
Yang diperlukan untuk meledakkan roket itu kurang dari satu menit dalam pelayaran perdananya Juni lalu, menyebarkan puing-puing berapi-api di rawa-rawa bakau di Guyana Prancis, adalah sebuah program komputer kecil yang mencoba memasukkan angka 64-bit ke dalam ruang 16-bit.
Satu bug, satu crash. Dari semua baris kode ceroboh yang dicatat dalam catatan sejarah ilmu komputer, yang satu ini mungkin berdiri sebagai yang paling efisien. Dari wawancara dengan para ahli peroketan dan analisis yang disiapkan untuk badan antariksa, jalan yang jelas dari kesalahan aritmatika ke penghancuran total muncul.
Perubahan besar apa yang gagal pada Penerbangan 501 dan investigasi selanjutnya menginspirasi penelitian sistem kritis keselamatan dan pengujian perangkat lunak?
Saya tidak mencari penjelasan tentang bug itu sendiri, tetapi untuk penjelasan tentang dampak historis dari bug tersebut, dalam hal penelitian yang diilhami dari atau yang terkait langsung dengan penyelidikan kegagalan. Sebagai contoh makalah ini menyimpulkan:
Kami telah menggunakan analisis statis untuk:
- periksa inisialisasi variabel,
- memberikan daftar lengkap dari konflik akses data potensial untuk variabel bersama,
- secara lengkap daftar potensi galat run time dari semantik Ada.
Sepengetahuan kami ini adalah pertama kalinya teknik analisis statis berbasis boolean dan non-boolean digunakan untuk memvalidasi program industri.
Demikian pula, makalah ini (pdf) mencatat:
Analisis program statis berbasis interpretasi abstrak telah digunakan untuk analisis statis perangkat lunak ADA tertanam pada peluncur Ariane 5 dan ARD. Penganalisa program statis bertujuan untuk deteksi otomatis dari kekurangan, potensi, ketidakmungkinan atau tidak dapat diaksesnya kesalahan run-time seperti aliran skalar dan titik-mengambang, kesalahan susunan indeks, pembagian dengan nol dan pengecualian aritmatika terkait, variabel tidak diinisialisasi, data balapan aktif struktur data bersama, dll. Alat analisis ini dapat secara otomatis menemukan kesalahan penerbangan Ariane 501. Analisis statis dari perangkat lunak keselamatan penting tertanam (seperti perangkat lunak avionik) sangat menjanjikan .
Saya ingin penjelasan menyeluruh tentang dampak peristiwa tunggal ini terhadap pendekatan dan perangkat pengujian perangkat lunak.
1 Angka $ 7 miliar mungkin merujuk pada total biaya proyek Ariane 5, Wikipedia melaporkan bahwa kegagalan tersebut mengakibatkan kerugian lebih dari $ 370 juta. Masih kegagalan yang cukup mahal tetapi jauh dari angka $ 7 miliar.