Цена ошибки. К чему приводят ошибки программистов? (8 фото + 1 видео)

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

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

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





Космос

Спутник Mariner 1 в 1962 году должен был отправиться к Венере. Стартовав с мыса Канаверал, ракета практически сразу сильно отклонилась от курса, что создало серьезную угрозу падения на землю. Для предотвращения возможной катастрофы NASA было принято решение запустить систему самоуничтожения ракеты. Спустя 293 секунды с момента старта, Mariner 1 был ликвидирован.

Ревизионная комиссия провела расследование, в ходе которого было выявлено: причиной аварии послужила программная ошибка, из-за которой поступали неверные управляющие сигналы.

Программист неправильно перевел написанную формулу в компьютерный код, пропустив макрон или надчёркивание (что значит "n-ое сглаживание значения производной радиуса R по времени").

Программа даже незначительные изменения скорости воспринимала как весьма существенные и проводила корректировку курса (источник).

Цена "пропущенного дефиса" — 18 млн долларов (на тот момент).



Mars Climate Orbiter

В 1999 году агентство NASA потеряло в космосе спутник "Mars Climate Orbiter". Эта катастрофа озадачила инженеров – удивительно, как такое могло произойти. В результате оказалось, что субподрядчик, который работал над многими инженерными задачами, не выполнил простейшего преобразования английских единиц измерения в метрическую систему. Из-за фатальной ошибки аппарат стоимостью 125 миллионов долларов оказался слишком близко к поверхности Марса. Диспетчеры пришли к выводу, что спутник на большой скорости вошел в марсианскую атмосферу, где из-за возникших перегрузок его системы связи вышли из строя. Неуправляемый Mars Climate Orbiter попал на околосолнечную орбиту, миссия была провалена.





Ariane 5

На новейшей французской беспилотной ракете-носителе "Ariane 5" решили использовать то же программное обеспечение, которое было разработано для более ранней модели – Ariane 4. К сожалению, более мощный двигатель Ariane 5 спровоцировал баг, не встречавшийся в предыдущих версиях ПО. Через тридцать шесть секунд после первого запуска ракеты пришлось активировать систему самоуничтожения, так как возникла целая череда программных ошибок. В сущности, программа попыталась записать 64-разрядное число в 16-разрядное пространство. Возникло переполнение, в результате которого отказал и основной, и резервный компьютер (поскольку на обоих компьютерах выполнялись одни и те же программы). На разработку Ariane 5 было потрачено около 8 миллиардов долларов. Общая стоимость спутников, которые должна была вывести на орбиту эта ракета, составляла 500 миллионов долларов



Соцобеспечение

В 2004 году компания EDS разработала сложную компьютерную систему по выплате пособий для британского агентства помощи детям (CSA). В то же время Министерство труда и пенсионного обеспечения (DWP) приняло решение реорганизовать это агентство. Две программные системы оказались полностью несовместимы, в результате были спровоцированы необратимые ошибки. Система переплатила 1,9 миллионам человек и недоплатила семистам тысячам. В итоге накопилось 7 миллиардов долларов, не попавших на социальные счета, 239 000 нерассмотренных дел, 36 000 новых дел, «застрявших» в системе. Все эти ошибки обошлись британским налогоплательщикам в сумму более 1 миллиарда долларов.



Транспорт

Еще в 2009 году профессор информатики в Техническом университете Мюнхена, эксперт по программному обеспечению в автомобилях Манфред Бра, сказал: "Программное обеспечение автомобиля премиум-класса содержит около 100 миллионов строк кода" (источник https://ru.insider.pro/topnews/2017-05-03/trejdery-igravshie-protiv-tesla-poteryali-37-mlrd-s-nachala-goda/). С того момента прошло уже восемь лет, и совсем не обязательно быть поклонником передачи Top Gear, чтобы заметить: современные автомобили — это настоящие интеллектуальные машины.

По заявлению все того же эксперта, стоимость программного обеспечения и электроники в автомобиле составляет порядка 40% от его цены на рынке. И это касается бензиновых моторов, что же говорить о гибридах и электрокарах, где это значение равно примерно 70%!

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

Садиться за руль современных комфортных и "умных" авто или ездить на олдскульных, но понятных машинах? Решать вам, я же предлагаю небольшую подборку багов в программном обеспечении автомобилей



Toyota

Люди: — Эй, Тойота, мы тут посчитали, у вас из-за корявой электроники и софта 89 человек погибло с 2000 по 2010. Тойота: — Да они сами виноваты, путают педали. Люди: — Хьюстон, у нас проблемы. NASA: — Ща разберемся, нам надо 10 месяцев и 3 миллиона долларов. Люди: — На. Тойота: — 3 миллиона мало, вот вам еще сверху кэшем.

(прошло 10 месяцев)

NASA: — Эй, Тойота, мы у вас пару ошибок в коде нашли, а точнее 7134 нарушения стандартов MISRA, рекурсию, функцию на 740 строк и 9000 глобальных переменных. Тойота: — А у нас свои стандарты. А вы ваще на Луну летали? NASA (публично): — Тойота ни в чем не виновата. (Акции Тойота подскочили на 4,6%) Люди: — Ну ё-моё.

(спустя 3 года)

Два американских тестировщика (у которых дедушки погибли в Перл-Харбор): — Нет багов? А если найдем?Нашли - 81 514 нарушений в коде.

Национальное управление безопасностью движения на трассах США (NHTSA) подсчитало, что с 2000 года по 2010 год в авариях погибло 89 человек и 57 получили увечья, в связи с неисправностями электроники.

Toyota отрицает вину электроники и считает, на основе собственного расследования, что виновата "залипающая" педаль газа и плохо подогнанные коврики, но отзывает 8,5 млн автомобилей по всему миру.



Tesla

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

Поговорим, конечно же, о Tesla Model S. 7 мая 2016 Джошуа Браун, прославившийся благодаря своим роликам на YouTube, посвященным восхвалениям электромобиля, попал в автокатастрофу. Он находился за рулем Tesla Model S. Будучи на 100% уверенным в интеллекте машины, он доверился автопилоту. Результат доверия трагичный — от полученных травм Джошуа скончался на месте.

Катастрофа получила широкую огласку. Началось расследование. Удалось установить, что, по всей видимости, Браун самостоятельно не следил за дорогой, а автопилот столкнулся с ситуацией, которая не нашла отражение в его программном коде. Перед Tesla Джошуа двигался грузовик с прицепом. Автомобиль планировал выполнить маневр — левый поворот, соответственно, требовалось сбавить скорость. Но Tesla, едущий позади, не начал тормозить, т.к. системы автопилота не распознали находящийся впереди объект.

Произошло это, скорее всего, из-за яркого солнца. Лучи отражались от прицепа и автопилот воспринял грузовик единым целым с небом. В официальном докладе это объяснялось следующим образом: "Системы автоматического торможения Теслы являются технологией избегания столкновения в редких случаях и не спроектированы для надежного выполнения во всех режимах аварии, включая столкновения в результате пересечения путей" (источник). Полный отчет об аварии находится в свободном доступе.

Иными словами, автопилот призван помогать водителю (более совершенный круиз-контроль, грубо говоря), а не заменять его функции. Конечно, репутацию Tesla такое оправдание не сильно спасло. Работы над совершенствованием программного обеспечения продолжились, но Tesla Model S с дорог отозваны не были.

Представители компании привели следующую дорожную статистику: "На каждые 90 млн. миль пройденного пути умирает один человек. В противоположность, люди проезжали 130 млн. миль на автопилоте Тесла перед тем, как была подтверждена первая смерть. Сейчас эта цифра поднялась до 200 млн." (источник https://www.slate.com/articles/technology/future_tense/2016/09/how_tesla_s_software_update_fixed_a_deadly_flaw_in_autopilot.html)

С одной стороны, такая статистика свидетельствует о том, что электрокар безопаснее, но готовы ли вы доверить свою жизнь, жизнь пассажиров и других участников дорожного движения программе?

И это не риторический вопрос. Судя по новостям биржи( https://ru.insider.pro/topnews/2017-05-03/trejdery-igravshie-protiv-tesla-poteryali-37-mlrd-s-nachala-goda/), вопреки нашумевшей аварии, акции Tesla выросли на 50% с начала 2017 года. Способствуют этому два значимых фактора: популярность движений, выступающих за улучшение экологии в мире, и высокий личный рейтинг главы Tesla — Илона Маска.



Бизнес

Компания Knight, один из ключевых игроков американского фондового рынка, едва не обанкротилась в результате одной программной ошибки. Из-за возникшего бага компания всего за полчаса потеряла около 440 миллионов долларов. В течение 2 дней, когда неисправное ПО наводнило рынок незапланированными сделками, котировки акций компании упали на 75 процентов. Предполагается, что содержавший ошибку биржевой алгоритм Knight стал совершать незапланированные сделки примерно на 150 торговых площадках, просто парализовав их.

+4
Добавьте свой комментарий
  • bowtiesmilelaughingblushsmileyrelaxedsmirk
    heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
    winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
    worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
    expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
    disappointedconfoundedfearfulcold_sweatperseverecrysob
    joyastonishedscreamtired_faceangryragetriumph
    sleepyyummasksunglassesdizzy_faceimpsmiling_imp
    neutral_faceno_mouthinnocent

Вам будет интересно:
Регистрация