7 величайших фэйлов в истории, виной которым маленькие баги.

1) 1962 г. - Mariner I

7 величайших фэйлов в истории, виной которым маленькие баги. Наука, Технологии, Программирование, Тестирование, Fail, Баг, Длиннопост

Космический аппарат Mariner I стартовал по направлению к Венере. Корабль перешел на собственную систему пилотирования. Но эта система содержала обидный маленький баг. В результате аппарат полетел совсем не в ту сторону и его пришлось подорвать над Атлантическим океаном. Последующее расследование установило, что в процессе программирования системы навигации была совершена маленькая опечатка - при вводе одной из формул был пропущен один символ.

2) 1982 г. - Авария на Транссибирском трубопроводе.

7 величайших фэйлов в истории, виной которым маленькие баги. Наука, Технологии, Программирование, Тестирование, Fail, Баг, Длиннопост

Оперативники ЦРУ внедрили баг (отчет в формате PDF) в канадское программное обеспечение, управлявшее газовыми трубопроводами.

Советская разведка получила это ПО как объект промышленного шпионажа и внедрила на Транссибирском трубопроводе.

Результатом стал самый большой неядерный взрыв в истории человечества.

3) 1985–87 гг. Несколько человек получили смертельную дозу облучения во время сеансов радиационной терапии с медицинским ускорителем Therac-25.

7 величайших фэйлов в истории, виной которым маленькие баги. Наука, Технологии, Программирование, Тестирование, Fail, Баг, Длиннопост

Основанная на предыдущей версии ускорителя, «улучшенная» модель Therac-25 могла генерировать два вида излучения: слабое электронное бета-излучение и нормальное рентгеновское излучение.

Еще одно «улучшение» состояло в том, что вместо электромеханической защиты пациента в устройстве была реализована программная защита, якобы более надежная.

Обе новые функции были некорректно реализованы неопытным программистом, результатом чего стали как минимум пять смертей и огромное количество несмертельных случаев переоблучения.

4) 1993 г. Широко разрекламированный процессор Intel Pentium неправильно производил деление с плавающей запятой, ошибаясь на 0,006%.

7 величайших фэйлов в истории, виной которым маленькие баги. Наука, Технологии, Программирование, Тестирование, Fail, Баг, Длиннопост

Хотя эта проблема реально коснулась немногих пользователей, но стала настоящим кошмаром для имиджа Intel.

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

Этот баг стоил Intel около $475 млн.

5) 1996 г. Новая ракета-носитель Ariane 5, результат многолетней работы европейских ученых взорвалась через 40 секунд после своего первого старта.

7 величайших фэйлов в истории, виной которым маленькие баги. Наука, Технологии, Программирование, Тестирование, Fail, Баг, Длиннопост

Только научное оборудование на борту ракеты стоило около $500 млн, не говоря о множестве побочных финансовых последствий.

Система автоподрыва ракеты сработала после остановки обоих процессоров в результате цепочки ошибок.

Началом этой цепочки послужило переполнение буфера, поскольку система навигации подала недопустимо большое значение параметра горизонтальной скорости.

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

6) 1990 г. Падение телефонной сети AT&T. 

7 величайших фэйлов в истории, виной которым маленькие баги. Наука, Технологии, Программирование, Тестирование, Fail, Баг, Длиннопост

Ошибка в новой версии прошивки междугородних коммутаторов привела к тому, что коммутатор перезагружался, если получал специфический сигнал от соседнего коммутатора.

Но беда в том, что этот сигнал генерировался в тот момент, когда коммутатор восстанавливал свою работу после сбоя.

В один прекрасный день, когда какой-то коммутатор в Нью-Йорке перезагрузился, он подал тот самый злополучный сигнал — и началось.

Вскоре 114 соседних коммутаторов непрерывно перезагружались каждые 6 секунд, а 60 тыс. человек остались без междугородней связи на 9 часов, пока инженеры не установили на коммутаторы предыдущую версию прошивки.

7) 1988 г. Переполнение буфера в Berkeley Unix.

7 величайших фэйлов в истории, виной которым маленькие баги. Наука, Технологии, Программирование, Тестирование, Fail, Баг, Длиннопост

Первый в мире компьютерный червь (так называемый червь Морриса) заразил от 2.000 до 6.000 компьютеров менее чем за сутки, эксплуатируя уязвимость в реализации функции gets(). В ОС Berkeley Unix эта функция ввода/вывода не имела ограничения на максимальную длину.