Хабрахабр

Поиск багов как образ жизни

Разработка статических анализаторов кода и борьба за качество open-source проектов на протяжении более шести лет не могли не сказаться на моём взаимодействии с программами в нерабочее время. К сожалению, мне постоянно встречаются разные баги и, к ещё большему сожалению, повлиять на это почти невозможно. Я решил собрать несколько историй об интересных багах и их исправлении или игноре. Альтернативный формат статьи о поиске ошибок в коде.

Введение

В повседневной жизни мы уже чаще пользуемся сайтами и мобильными приложениями, чем прикладными программами для компьютера. В этой сфере проектов с открытым исходным кодом очень мало. Большинство проектов – продукты крупных компаний, имеющих несколько линий поддержки. Сообщить о баге через первую линию поддержки — практически бесполезное занятие. Особенно остро проблема стоит с банковскими приложениями. А сайты? Владельцы сайтов часто вообще не имеют команды разработки. А если через сайт предоставляется какая-нибудь услуга, то общение с менеджерами этих сервисов проходит ещё хуже, чем с первой линией поддержки. Самые интересные истории будут ниже. Надеюсь, они помогут компаниям обратить внимание на качество своих программных продуктов.

Баги на сайтах

Телеканал 2x2

Пожалуй, 2x2 — единственный телеканал, который я смотрю. Никакого телевидения у меня не подключено, и я был очень рад, когда на сайте появился прямой эфир. Имея телевизор с доступом в Интернет, это было идеальным решением для меня. Но на деле оказалось всё намного сложнее.

Т.к. Прямой эфир через браузер на телевизоре не работал. Почему попытался? сообщать о багах разработчикам – часть моей трудовой деятельности, я быстро нашёл контакты на официальном сайте и попытался сообщить о проблеме. И в группе ВК ничего дельного не ответили (маркетологу, раскручивающему группу в соц. За 2 месяца не удалось получить никаких ответов с двух почтовых адресов. сетях, явно было не до меня с неработающим сайтом).

Проблема была явно в трансляции и мне удалось её отследить. Но я не отчаялся. Около месяца ушло на попытки связаться с их специалистами. Она шла с серверов Rutube. Мне дали контакты системного администратора. Самое удачное общение произошло с администратором группы Rutube в VK. Оказалось, сервер не был настроен для такого подключаемого клиента (телевизор с Tizen). На письмо ему оперативно ответил его коллега, и мы договорились провести подключение, чтобы записать логи. На решение проблемы ушло 2 часа. Спасибо Алексею Лебедеву из Rutube и админу группы в ВК, которые единственные ответственно отнеслись к своей работе во всей этой цепочке «контактов».

Ресторан MaMa Mia

На сайте MaMa Mia нельзя оплатить заказ Online. По крайней мере, это не получилось у меня. А причина, как потом выяснилось, низкое качество кода. Но давайте по порядку.

А потом в почте я обнаружил это: Когда корзина полностью была сформирована, кнопка «Оформить заказ» не подавала никаких признаков жизни.

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

Там, конечно же, отвечают менеджеры, далёкие от подобных проблем. На сайте отсутствует форма обратной связи и какие-либо другие контакты, кроме телефона. Более-менее релевантные проблеме контакты мне получить не удалось. С группой ВК этого ресторана такая же ситуация.

Более того, даже мы сами недавно умудрились попасть в подобную ситуацию, когда на пять дней сломалась форма запроса триального ключа. На самом деле, это серьёзная проблема для бизнеса, когда некоторые недоработки, особенно с финансами (я ведь хотел оплатить заказ, но не смог), остаются незаметными для руководства. Мы очень сожалеем о потерянных пользователях 🙁 А в ресторане, видимо, нет.

Не получив никакой отдачи от общения с менеджерами, я открыл консоль браузера и начал смотреть (кстати, в web-разработке я практически не разбираюсь):

Да это же неперехваченное исключение! Какая красота. Вот тут-то точно статический анализатор мог бы помочь.

Интерпретация страницы просто прекращается после отказа любого внешнего компонента. С помощью пары запросов поисковику удалось выяснить, что это счётчик для Яндекс.Метрики. В моём браузере было установлено расширение Kaspersky Protect. Как говорится, на разработку было выделено много рублей… Так почему же кидается исключение? Это было причиной проблемы. Отключение разного рода маячков и счётчиков, видимо, входит в защиту от отслеживания, включенного по умолчанию. Заказ еды я потом сделал на другом, более технически продвинутом сайте.

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

ЛК Ростелеком

Но моя будет про небольшой баг. Наверное, у каждого россиянина найдётся история «интересного» общения с представителями Ростелекома. В поддержке ответили, что так не считают, но программисты прикол поймут.

Скриншот из моего личного кабинета:

Что же такое «n» в инициалах? Правильно, это NULL!.. Т.к. не у всех есть отчество, его можно не указывать:

В базе данных хранится значение NULL, представители Ростелекома считают нормальным выводить это значение на экран. По-моему, это совсем ненормально. Возможно, я просто мыслю как C++ программист, и меня настораживает это значение 😀

Мобильные приложения

РЖД Пассажирам

В мобильном приложении РЖД встретилась интересная ошибка.

Скрин из мобильного приложения:

Я читал ответы на вопросы и ничего не понимал. Тексты были абсолютно несвязными. Но после одной странички всё стало понятно:

Параграфы документации хранились в массиве и выводились на экран в обратном порядке. Разработчик что-то напутал с сортировкой или счётчиками циклов в коде. В последней версии приложения этот баг исправлен.

ВТБ-Онлайн

Это был прекрасный банк с удобным приложением. Но летом 2019 года, видимо, в команду пришёл «эффективный» менеджер, и приложение испортилось. Самым большим преимуществом для меня была удобная и быстрая поддержка. Но летом 2019 года начались эксперименты с ботом в чате поддержки. Этот бот был очень сильно забагован. Как минимум на протяжении 3-х месяцев в чате поддержки был жёсткий рассинхрон. На сообщения никто не отвечал, чат пустовал, а после перезагрузки приложения выяснялось, что чат наполнен сообщениями бота, но они выводились только после перезагрузи. Но тогда сеанс уже закрывался, и со следующим сообщением повторялся тот же самый баг. По электронной почте поддержка ВТБ всегда быстро реагировала, но ничего не делала по существу.

Последней каплей для меня стал ещё один баг в чате поддержки, который до сих пор не исправлен:

Приложение тупо не загружает скриншоты с телефона, на котором работает приложение. Это Epic Fail. Я отказался от карт банка и свёл оставшиеся активности в банке к минимуму.

Сбербанк Онлайн

Возможно, самый забагованный банк в России. Среднее время исправления подтверждённого бага по моей многолетней практике – 1 год.

Вот самый вопиющий, на мой взгляд, случай.

При передаче показаний приборов учёта для оплаты жилищно-коммунальных услуг (далее ЖКУ) вас ждёт неприятный сюрприз:

Сразу возникает вопрос, почему мои данные не принялись, но взгляд на следующий скриншот всё объясняет:

Поясню дополнительно: показания ПУ принимаются с точкой, а для ввода на клавиатуре есть только символ «запятая».

С момента обнаружения баг просуществовал 6 месяцев (февраль-июнь). Этот баг откровенно мешал пользоваться приложением, и я часто обращался в поддержку за его исправлением. Но это не конец истории! После чего, в июльском обновлении, его исправили, включив стандартную клавиатуру. Я не знаю, что могло произойти в команде разработки, что пришлось делать такой откат изменений, но банком я пользоваться перестал. В следующем же месяце (август) в очередном обновлении приложения вернули клавиатуру без нужного символа! Это был один из многочисленных багов, и они практически не исправляются.

Связь с поиском ошибок в коде

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

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

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

Это этап разработки программного обеспечения, который стоит перед передачей приложения в отдел тестирования. Так, наша команда разработчиков анализатора кода PVS-Studio продвигает методологию статического анализа. И их можно исправить на раннем этапе, сэкономив время и деньги. По нашему опыту, большинство ошибок являются недочётами этапа разработки.

Но если код написан на C, C++, C# или Java, то этим командам было бы полезно зайти на сайт и прогнать анализатор на своём коде. К сожалению, в отличии от программ с открытым исходным кодом, тут у меня нет возможности самостоятельно проверить код на наличие ошибок. Для программ с открытым исходным кодом делается очень большой вклад этим инструментом.

Заключение

Замечать баги в используемом программном обеспечении я уже не перестану. Наверное, это не самое страшное, что могло произойти. У меня есть знакомые, которые работают в кинематографе (мультипликация). Так вот они замечают баги при присмотре мультиков, и это доставляет неудобство. По-моему, это даже хуже. Программы хотя бы можно доработать, в отличии от отснятого материала.

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

Если вам понравится новый формат обзоров багов и историй с ними, то я продолжу в том же духе.

Показать больше

Похожие публикации

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»