Sự tan rã của tên lửa Ariane 5 37 giây sau khi phóng trên hành trình đầu tiên của cô ( Chuyến bay 501 ) thường được gọi là một trong những lỗi phần mềm đắt nhất trong lịch sử 1 :
Cơ quan Vũ trụ châu Âu đã mất 10 năm và 7 tỷ đô la để sản xuất Ariane 5, một tên lửa khổng lồ có khả năng đưa một cặp vệ tinh nặng ba tấn lên quỹ đạo với mỗi lần phóng và dự định mang lại cho châu Âu quyền lực tối cao trong kinh doanh vũ trụ.
Tất cả chỉ cần để phát nổ tên lửa đó chưa đầy một phút trong hành trình đầu tiên của nó vào tháng 6 năm ngoái, rải rác đống lửa bốc lửa trên đầm lầy ngập mặn ở Guiana thuộc Pháp, là một chương trình máy tính nhỏ cố nhét một con số 64 bit vào không gian 16 bit.
Một lỗi, một sự cố. Trong tất cả các dòng mã bất cẩn được ghi lại trong biên niên sử của khoa học máy tính, mã này có thể có hiệu quả khủng khiếp nhất. Từ các cuộc phỏng vấn với các chuyên gia tên lửa và một phân tích được chuẩn bị cho cơ quan vũ trụ, một con đường rõ ràng từ một lỗi số học đến sự hủy diệt hoàn toàn xuất hiện.
Những thay đổi lớn nào đã làm thất bại 501 của Chuyến bay và các cuộc điều tra tiếp theo truyền cảm hứng cho việc nghiên cứu các hệ thống quan trọng và kiểm tra phần mềm an toàn?
Tôi không tìm kiếm lời giải thích về lỗi, nhưng để giải thích về tác động lịch sử của lỗi, về mặt nghiên cứu được lấy cảm hứng từ hoặc liên quan trực tiếp đến (các) cuộc điều tra về sự thất bại. Ví dụ, bài viết này kết luận:
Chúng tôi đã sử dụng phân tích tĩnh để:
- kiểm tra khởi tạo biến
- cung cấp danh sách đầy đủ các xung đột truy cập dữ liệu tiềm năng cho các biến được chia sẻ,
- liệt kê đầy đủ các lỗi thời gian chạy tiềm năng từ ngữ nghĩa Ada.
Theo hiểu biết của chúng tôi, đây là lần đầu tiên các kỹ thuật phân tích tĩnh dựa trên boolean và không dựa trên boolean được sử dụng để xác nhận các chương trình công nghiệp.
Tương tự, bài viết này (pdf) ghi chú:
Các phân tích chương trình tĩnh dựa trên diễn giải trừu tượng đã được sử dụng để phân tích tĩnh phần mềm ADA nhúng của trình khởi chạy Ariane 5 và ARD. Bộ phân tích chương trình tĩnh nhằm mục đích tự động phát hiện tính khử, tiềm năng, không thể truy cập hoặc không thể truy cập của các lỗi thời gian chạy như vô hướng và điểm thay đổi, lỗi chỉ số mảng, phân chia bằng 0 và các số liệu liên quan đến số học, các biến số không liên quan cấu trúc dữ liệu được chia sẻ, vv. Máy phân tích có thể tự động phát hiện ra lỗi Ariane 501. Phân tích tĩnh của phần mềm quan trọng an toàn nhúng (như phần mềm avionic) rất hứa hẹn .
Tôi rất thích một lời giải thích kỹ lưỡng về tác động của sự kiện đơn lẻ này đối với các phương pháp và công cụ kiểm thử phần mềm.
1 Con số 7 tỷ đô la có thể đề cập đến tổng chi phí của dự án Ariane 5, Wikipedia báo cáo rằng sự thất bại dẫn đến khoản lỗ hơn 370 triệu đô la. Vẫn là một thất bại khá tốn kém nhưng không nơi nào gần con số 7 tỷ USD.