Смертельные баги: подборка ошибок в ПО, приведших к тяжелым последствиям для людей

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

  1.  Эллейн Херцберг попала в историю, как первый человек, который погиб под колесами беспилотного автомобиля. Весной 2018 года в темное время суток машина Uber засекла преграду, в начале приняв ее за мусор, потом — за животное, и только через пару метров распознав человека. Самоуправляемая Volvo  не успела затормозить и врезалась в пешеходку на скорости 63 км/ч, что привело к смерти женщины.

Кадр с видеорегистратора за секунды до столкновения

Неужели машина была абсолютно пустой? Нет. Тестирование проходило на модифицированном Volvo XC90, у которой была отключена система экстренного торможения, чтобы не мешать ПО Uber управлять машиной. Задача тормозить в экстренных случаях была положена на плечи человека за рулем. В данном случае это была 46-летняя Рафаэла Васкес. Однако она отвлеклась на просмотр шоу в телефоне и переходившую дорогу женщину не заметила.

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

  1. Аппарат лучевой терапии Therac-25 стал самым резонансным случаем в истории программирования медицинских девайсов. Из-за программных ошибок при быстром переключении режимов заслонка для рентгеновских лучей не успевала установиться. В результате пациенты получали ожоги с дозами радиации в 15—20 тыс. рад (облучение всего тела в 1000 рад считается смертельным, обычные терапевтические дозы не превышают 200 рад),  что приводило к лучевой болезни и впоследствии к ампутации зараженных частей тела или к смерти.

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

  1. 25 февраля 1991 года установка ПВО Patriot не смогла перехватить ракету, пущенную со стороны сил Саддама Хусейна. Та приземлилась в казарму с военными. Погибло 28 человек, ранено — около сотни. 

В чем была ошибка работы Patriot?  Оказалось, что внутренний таймер ЗРК имеет погрешность, связанную с программным обеспечением: если комплекс работает в непрерывном режиме больше 20 часов, то система видит ракету,  но не может ее перехватить и сбить.

К 25 февраля 1991 года Patriot находились в дежурном режиме более 96 часов, что и привело к ошибке. Пожалуй, перезагрузка тут могла бы спасти жизни.

  1. 15.11.2017, Сингапур. В лучшей транспортной системе мира произошла серьезная ошибка. Метро Сингапура допустило баг в коммуникации двух поездов.  

Электроника поезда, подъезжающего к станции, определила уже стоявший там другой поезд как 3-вагонный вместо 6-вагонного. И хотя машинист успел дать по тормозам, скорость это не особо снизило. Результат — столкновение и 29 пострадавших, обошлось  без погибших.

  1.  5.12.2010 российский ракетоноситель Протон-М пошел на дно Тихого океана с тремя спутниками Глонасс-М. Причина — неправильная формула, в результате расчетов которой масса одного из заправленных баков оказалась выше допустимого на более чем полторы тонны. Как оказалось, формула ранее была исправлена и даже заведена в систему: планировалось внести изменения позже. Но с течением времени многие задания закрывали, как не важные. В игнор попала и злосчастная формула.

Пожалуй, эта история — повод хорошенько подумать над закрытием своих тасков в Jira.


Ну а если вы мечтаете спасать людей и бороться с багами, делая мир безопаснее, самое время начать карьеру тестировщика с курсом по тестированию ПО от Лаборатории Качества, в конце которого вас ждет стажировка на настоящем проекте! Можно будет получить первый опыт еще до устройства на работу, провести тест-драйв своих навыков и подкрепить резюме практикой в реальной  IT-компании.

Присоединяйтесь к обучению по ссылке: