Распад ракеты Ariane 5 через 37 секунд после запуска ее первого рейса ( Рейс 501 ) обычно называют одной из самых дорогих программных ошибок в истории 1 :
Европейскому космическому агентству потребовалось 10 лет и 7 миллиардов долларов для производства Ariane 5, гигантской ракеты, способной выводить на орбиту пару трехтонных спутников при каждом запуске и предназначенной для того, чтобы дать Европе подавляющее превосходство в коммерческом космическом бизнесе.
Все, что потребовалось, чтобы взорвать эту ракету менее чем за минуту до ее первого плавания в июне прошлого года, разбросав огненные обломки по мангровым болотам Французской Гвианы, - это небольшая компьютерная программа, пытающаяся вставить 64-разрядное число в 16-разрядное пространство.
Одна ошибка, одна авария. Из всех небрежных строк кода, записанных в анналах информатики, эта может считаться наиболее разрушительной. Из интервью с экспертами по ракетостроению и анализа, подготовленного для космического агентства, выявляется четкий путь от арифметической ошибки к полному уничтожению.
Какие серьезные изменения вызвали сбой Flight 501 и последующие исследования, связанные с исследованиями критически важных систем безопасности и тестированием программного обеспечения?
Я не ищу объяснение самой ошибки, но объясняю историческое влияние ошибки, с точки зрения исследования, которое было вдохновлено или было непосредственно связано с расследованием (ями) отказа. Например, эта статья заключает:
Мы использовали статический анализ для:
- проверить инициализацию переменных,
- предоставить исчерпывающий список потенциальных конфликтов доступа к данным для общих переменных,
- Исчерпывающий список потенциальных ошибок времени выполнения из семантики Ada.
Насколько нам известно, это первый раз, когда методы логического и не булевого статического анализа используются для проверки промышленных программ.
Точно так же этот документ (pdf) отмечает:
Статический анализ программ, основанный на абстрактной интерпретации, использовался для статического анализа встроенного программного обеспечения ADA программы запуска Ariane 5 и ARD. Статический программный анализатор нацелен на автоматическое обнаружение определенности, потенциальности, невозможности или недоступности ошибок времени выполнения, таких как скалярные и плавающие точки над потоками, ошибки индекса массива, деления на ноль и связанные арифметические исключения, неинициализированные переменные, скачки данных на общие структуры данных и т. д. Анализатор смог автоматически обнаружить ошибку полета Ariane 501. Статический анализ встроенного программного обеспечения, критически важного для безопасности (например, программного обеспечения для авионики), очень перспективен .
Я хотел бы получить подробное объяснение влияния этого отдельного события на подходы и инструменты тестирования программного обеспечения.
1 Цифра в 7 миллиардов долларов, возможно, относится к общей стоимости проекта Ariane 5, сообщает Википедия, что в результате неудачи было потеряно более 370 миллионов долларов. Все еще довольно дорогой провал, но он не приближается к цифре в 7 миллиардов долларов.