Сегодня, 9 сентября, профессиональный праздник у тестировщиков — людей, которые ловят баги и не дают им бесчинствовать в нашем программном обеспечении.
К вопросу о багах. Легенда возникновения термина «баг» гласит, что ученые Гарвардского университета, тестировавшие вычислительную машину Mark II Aiken Relay Calculator в поисках ошибки, обнаружили настоящего мотылька, который застрял в контактах электромеханического реле. Увековечившее себя насекомое было вклеено в технический дневник с сопроводительной надписью: «First actual case of bug being found» (англ. «первый случай в практике, когда был обнаружен жучок»).
Сам случай говорит нам о том, что ошибки могут крыться где угодно, а разум тестировщика должен быть живым и открытым к любым возможным вариантам. Как напоминание об этом, мы подготовили подборку из 10 нестандартных случаев из мировой истории, когда хорошие тестировщики могли бы очень пригодиться.
Баг первый
Недостаточное тестирование системы рассылки штрафов и апробация ее на продакшене привела к тому, что человек, проживающий в Вашингтоне, США, и владеющий машиной с номером TESTER, был оштрафован по несуществующим причинам. Такая же участь постигла, но в гораздо больших масштабах, владельцев транспорта с хорошим чувством юмора и с номерами вида: NO PLATE, NO TAG, MISSING, UNKNOWN, XXXXXXX.
Баг второй
Из-за ошибки разработчика всего в одном символе космический аппарат «Маринер-1» пришлось уничтожить через 293 секунды после старта.
Из-за ошибки в коде система навигации бортового компьютера, которая взяла на себя контроль после взлета, некорректно изменяла траекторию полета и начала представлять опасность. Ущерб составил более 18 миллионов долларов.
Баг третий
Ракетный крейсер USS Yorktown в течение почти трех часов дрейфовал с вышедшими из строя бортовыми компьютерами.
В бортовую систему для вычисления случайно ввели одно из значений равное нулю, а операционная система почему-то не предусматривала простой защиты от деления на ноль и ушла в бесконечный цикл, забрав с собой все доступные ресурсы.
Баг четвертый
В сентябре 2005 года ошибка в скрипте из очередного обновления игры World of Warcraft начала массовую эпидемию, не предусмотренную разработчиками, которая практически опустошила Азерот от игроков.
Лечение бага заняло почти месяц, на протяжении которого все крупные локации были усыпаны костями игроков, а выжившие прятались по лесам, пустыням и другим удаленным местам, пребывая в страхе от встречи с любым другим игроком, который мог оказаться переносчиком инфекции.
Баг пятый
В 1987 году произошло событие надолго вошедшее в коммерческую историю. 19 октября, в «Черный понедельник» для Wall Street индекс биржи Dow Jones беспричинно, на первый взгляд, упал на 508 пунктов, потеряв 22,6% своей стоимости. S&P 500 упал на 20,4%. 500 миллиардов долларов было потеряно всего за одни сутки.
Одна из озвучиваемых и наиболее популярных причин: разнообразное компьютерное программное обеспечение, использовавшееся для программного трейдинга и автоматического проведения арбитражных и хеджевых сделок, следовало простому алгоритму без «защиты от дурака», реагируя на ситуацию на рынке, которую само же и создало, генерируя эффект расходящейся волны. Рынок начал падать, роботы стали сбрасывать ценные бумаги, еще больше его перенасыщая, создался замкнутый круг. Люди же оказались настолько медлительны по сравнению с компьютерами, что не успели отреагировать на создаваемую искусственно ситуацию.
Баг шестой
Siri, виртуальный персональный помощник в устройствах iPhone и iPad, в 2012 году на вопрос «Какой телефон самый лучший в мире?» отвечала: «Nokia Lumia 900 4G». Разработчики не предусмотрели того момента, что вопрос пользователя обрабатывался системой Wolfram Alpha, которая обслуживалась другой компанией, не привязанной идейно к Apple. Вследствие чего система выдавала ответ, основанный на статистических данных и отзывах пользователей.
Баг седьмой
31 января 2009 года поисковик Google подхватил паранойю на грани с шизофренией. В течение почти часа он подозревал абсолютно все существующие сайты, в том числе и себя, во вредоносности и всячески старался предупредить об этом пользователей.
Как выяснилось, в список, по которому велось сравнение с базой вредоносных ресурсов, закрался символ / и система начала положительно отвечать на любые ссылки.
Баг восьмой
В самом начале работы Amazon удачливый покупатель мог обнаружить баг, который существенно позволял поправить его финансовое положение. Баг давал возможность заказа отрицательного количества книг. При этом на банковскую карту покупателя Amazon перечислял соответствующую сумму.
Джефф Безос, глава и основатель компании, стремился выпускать новые версии сервиса как можно быстрее, недостаточно внимания уделяя тестированию, что и привело к сложившейся ситуации. По его собственному утверждению, это один из его любимых багов: «Мы перечисляли покупателям стоимость книг, и ждали, пока нам их доставят».
Баг девятый
Вышедший осенью 2008 года T-Mobile G1, первый телефон на платформе Google Android OS, принес с собой баг, который его пользователи обнаруживали при попытке ввести слово «reboot» в любом приложении: при наборе SMS, отправке письма или где-либо еще. Девайс незамедлительно уходил в перезагрузку.
Android, основанный на Linux, поставлялся с гиковской фичей, позволяющей программистам входить на устройство с привилегированными правами и управлять телефоном через командную строку с удаленных устройств. Однако реализация фичи убила ее до уровня бага, телефон принимал команды от любых пользователей, а если удаленное устройство не обнаруживалось, то телефон просто выполнял команды, набранные на клавиатуре.
Баг десятый
Семья Бразертон, Найджел и Линда, решили сменить поставщика электричества со Scottish Power на Npower. Нормальное желание нормальных людей — выбрать более выгодного подрядчика. Однако исполнение задуманного было омрачено поступившим в следующим месяце счетом на сумму 53 480 062 фунта стерлингов.
Сотрудник компании, осуществлявший подключение, увидел на счетчике «0» и указал это в квитанции. Программное обеспечение посчитало 0 триггером к тому, что счетчик сделал максимальное количество оборотов и дошел до нового витка, посчитав, соответственно, полную стоимость такого события.
Послесловие
Мы надеемся, что все, кто прочли эту подборку, прониклись уважением к труду тестировщиков и оценили последствия их возможного отсутствия на проекте.
А мы, в свою очередь, еще раз поздравляем мастеров по поиску багов с их профессиональным праздником и всегда рады предложить свои услуги по предоставлению в аренду физических серверов или виртуальной среды для нужд тестирования.
Комментарии