Найти тему
ТехноИТ

Ошибки в ПО которые привели к катастрофическим последствиям

Оглавление

Не так давно у меня на канале была статья об аксиомах тестирования. Ошибки в программном обеспечении способны приводить к серьёзным последствиям - к серьёзным потерям времени, денег, здоровья и даже жизни.

Итак, самые дорогие ошибки в программном обеспечении и технике:

Блэкаут в США в 2003 году

Фото: открытые источники
Фото: открытые источники

Казалось бы тривиальная ошибка в программном обеспечении General Electric (крупная компания-поставщик электроэнергии в США) привела к отключению электроэнергии на Восточном побережье США. Без электричества остались школы, больницы, аэропорты, жилые дома и 55 млн. чел.

14 августа 2003 года в 0:15 ночи оператор электрической системы в Индиане заметил небольшую проблему. Проблема вызывала раздражающий сигнал об ошибке и оператор решил его выключить. Но он забыл перезапустить систему мониторинга ошибок (которую выключил). Выключение системы мониторинга не привело к блэкауту. Но через несколько часов из-за дерева отключились линии электропередач в Огайо-об этом никто не узнал. Перегруженные линии передач привели к эффекту домино, начали выключаться электростанции в Онтарио, Нью-Йорке, Мичигане и далее.

Никто из операторов не заметил каскад ошибок энергосистемы, а дублирующих систем не было предусмотрено.

А вот это совсем обидно. NASA потеряло спутник Mars Climate Orbiter стоимость 125 млн$ из-за того, что субподрядчик не перевёл фунты в метрическую систему. В итоге спутник на большой скорости вошёл в атмосферу Марса и из-за перегрузок его системы вышли из строя - он оказался на 100 км. ниже планируемой орбиты и разбился.

Запуск ядерных ракет

Мир на грани войны из-за ошибки спутника
Мир на грани войны из-за ошибки спутника

А вот в этом случае ошибка в технике и ПО могла и вовсе привести к глобальной катастрофе. Спутник СССР "Око" системы предупреждения о ракетной атаке сообщил о пуске 5 ракет с территории США. Только благодаря подполковнику Станиславу Петрову катастрофы не случилось. У него вызвало подозрение то, что летят всего 5 ракет, хотя в случае реальной атаки было бы сотни пусков. Офицер не отдал команду на ответную атаку. В чём же причина? Дело в том, что в определённом положении спутника и Солнца свет отражался от облаков и оставлял инфракрасное излучение. Спутник воспринял это излучение за ракеты.

Деление на 0


В 1997 году на американском ракетном крейсере "Йорктаун" было 27 компьютеров с Windows NT. На компьютеры крейсера поставили новую программу, управляющую двигателями. Один из операторов топливной системы записал в таблицу (при выполнении калибровки) нулевое значение. Затем программа разделила на ноль, ошибка перекинулась по локальной сети на другие компьютеры и в результате система "Йорктауна" отключилась.

Похожая проблема возникала у ВВС Израиля. Истрибитель приблизился к Мертвому морю и тут неожиданно отключился автопилот и часть систем самолета. Дело в том что программы автопилота истрибителя производили деление значения текущей высота над уровнем океана. Мертвое море лежит ниже уровня океана, высота становилась нулевой и провоцировала ошибку.

Перемена дат

F-22 не знал что дата может поменяться
F-22 не знал что дата может поменяться

Следующая история тоже с самолетами - 12 истребителей F-22 отправились в Окинаву. И тут эскадрилья пересекла линию перемены дат (на один день вперёд). В У всех истребителей в результате ошибки отключились главные дисплеи. Пилоты потеряли доступ к данным о количестве топлива, датчикам скорости и высоты, связь была частично нарушено. К счастью, благодаря мастерству пилотов самолёты успешно приземлились без приборов.

Ошибка опять в ПО - разработчики не предусмотрели что где то необходимо прибавлять или вычитать сутки.

Оказывается ошибки при тестировании стоят очень дорого!) И это далеко не все факты - ещё больше в следующей статье!)