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


    На фоне введения режима самоизоляции возросла популярность некоторых программ и сервисов. А следовательно, большее количество людей столкнётся с багами, которые ранее «не замечали» разработчики. В этот обзор вошли сервисы, которые так популярны сейчас: доставка еды и продуктов Delivery Club, Яндекс.Еда, iGooods и Автосуши. И другой софт, которым мне понадобилось воспользоваться, находясь длительное время дома: Сбербанк, Puzzle Movies и Налоги ФЛ.

    Введение


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

    Список предыдущих статей: обзор N1, обзор N2.

    Доставка еды


    Автосуши




    Автосуши – большая сеть кафешек в России. Основана в 2009 году и сейчас присутствует примерно в 30 городах.

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

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

    Задача – повторить последний заказ. Для чего переходим в соответствующий раздел приложения:



    Запомните сумму заказа 707 рублей. Эти записи кликабельные, переходим к последнему заказу и видим следующее:



    Откуда прибавилось ещё 50 рублей? Я уверен, вы подумаете, что ценник подрос. Но это не так, ведь статья про баги. Переходим на страницу подтверждения заказа:



    И тут сразу видим, как проявляет себя найденный баг. Дополнения, из-за недоработки приложения, дублируются в основном заказе. В конце концов, сумма правильная, но баг проявляет себя на начальном этапе повторения заказа, и когда он лежит в корзине – тоже будет неправильная сумма. Я бы не доверял online оплату приложению, которое не может даже заказ правильно посчитать.

    Последнее замечание будет по странице готовности заказа:



    Вкратце – бесполезная страница. Никогда не работает, никогда ничего не показывает. Тут я бы посоветовал брать пример с сервиса Яндекс.Еда. Вот там отлично работает аналогичный раздел.

    Кроме багов, есть ещё куча вопросов к развитию приложения. Например, давно пора отказаться от подтверждения заказа по телефону, ввести Apple Pay и другие системы оплаты. Техническая поддержка ни разу не отвечала мне за много лет. Может, тут смогу донести до руководителей и разработчиков, что делать заказы в Автосуши намного сложнее и дольше, чем у конкурентов.

    Delivery Club




    Delivery Club – сервис доставки еды от Mail.ru Group. Как и на сервис Яндекс.Еда, на него сейчас возложена большая ответственность по поддержанию работы закрытых для посещения ресторанов. Но есть там одна проблема, с которой я столкнулся ещё в начале этого года. После перезапуска приложения там может пропасть активный заказ. Можно открыть приложение, а там ни статусов, ни заказов, ничего. Как сказали в поддержке: «Такое бывает, с Вашим заказом по-прежнему работают». Я давно не пользовался этим сервисом, но очень надеюсь, что под возросшей нагрузкой этот баг не стал проявляться чаще.

    igooods.ru




    igooods.ru – сервис доставки продуктов из таких крупных торговых сетей, как Лента, Метро, Глобус и т.п. В моём городе появился совсем недавно. Может, 2-3 месяца назад. И стоит отметить, что очень вовремя. Но, как и в любом софте, тут есть баги, которые мешают пользоваться приложением полноценно.

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



    Кнопка добавления товара в существующий заказ находится под всплывающей полоской. Размер экрана телефона – 5.8 дюймов, т.е. вариант со слишком маленькой диагональю не рассматривается. Просто неудачная реализация в совокупности с плохим тестированием. Полоску убрать нельзя. Она «прибита», пока заказ не выполнен. Пришлось добавлять товар через сайт.

    Но это не единственные плохие новости про iGooods. В день написания статьи мой район выпал из зоны доставки. Учитывая, что это жилой район в центре города, значит дела у сервиса идут совсем плохо. Им пришлось пойти на уменьшение зоны из-за возросшего спроса. Вместо бурного роста в сложившейся ситуации, сервис стагнирует из-за недоработок на разных уровнях. Например, на сайте мне удалось залогиниться только с третьей попытки.

    Вот хороший пример того, что одними товарами и хорошей кухней хороший сервис не сделаешь. Надо вкладываться и в качество программно-технических средств тоже.

    Яндекс.Еда




    Яндекс.Еда – тоже сервис доставки еды от одноимённой компании.

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

    п.с. промокод за хороший отзыв можно кинуть в личку ;-)

    Развлечения


    Puzzle Movies




    Puzzle Movies – для изучения английского языка по фильмам и сериалам. Со всеми особенностями сервиса можете ознакомиться на официальном сайте. Мне нравится очень большой выбор контента и двойные субтитры. Новинки сериалов оперативно пополняются. Но есть одно неудобство, о котором пойдёт речь.

    Любое кино удобно смотреть на большом экране. Поэтому, выбирая между ноутбуком и телевизором, я отдал предпочтение последнему. Там есть Tizen OS и современный браузер. Основной функционал сайта отлично работает. С неудобством я столкнулся, когда начал пользоваться сайтом регулярно. Объём контента очень большой, а на телевизоре я ограничен во вводе. Тогда на помощь приходит раздел «Избранное», в котором можно сохранить начатые фильмы и сериалы, и в пару кликов к ним возвращаться. Вот тут я и обнаружил, что это единственная страница всего сайта, которая не загружается на телевизоре. На экране отображается символ бесконечной загрузки. Меня немного выручает голосовой набор в строке поиска, но из-за такой недоработки удобство пользования сайтом заметно снизилось.

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

    Если кому интересно, то User-Agent с такого телевизора выглядит так:

    Mozilla/5.0 (SMART-TV; Linux; Tizen 3.0) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/2.0 Chrome/47.0.2526.69 TV safari/537.36

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




    Использование мобильного приложения Сбербанк Онлайн стало для меня своего рода развлечением. Несмотря на то, что многие сейчас не работают, оплату коммунальных услуг никто не отменял (хотя россияне просят). К сожалению, у меня есть один поставщик, услуги которого можно оплатить только так. И как это часто со мной бывает, сложно запустить приложение всего раз в месяц и не нарваться на баг.

    Уверен, что многие, как я, сначала кладут квитанцию перед собой, а потом включают приложение и пытаются поймать QR-код. В таком простом сценарии стало происходить что-то странное: камера мигала, выполнялся переход к оплате, а там появлялась ошибка. Не сразу я понял, в чём проблема, но разобрался и смог воспроизвести баг.

    Оказалось, что алгоритм распознавания QR-кодов в приложении Сбербанк Онлайн реагирует на любую распечатанную информацию. На этой анимации можно посмотреть, как это выглядит:



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

    Тут уже видно, что это жуткий баг. Если продолжить «оплату», когда произошло «распознавание», то ожидаемо будет ошибка:



    Чтобы оплатить ту квитанцию, пришлось так же аккуратно заводить камеру на QR-код, минуя постороннюю информацию, которая напечатана рядом.

    Налоги ФЛ




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

    Наконец-то у меня появилось время подать налоговую декларацию за прошлый год. Есть в мобильном приложении интересный баг. Если в списке для выбора года нажать крестик, то можно получить ошибку. Выглядит это так:



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

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


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

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

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

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

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

    Заключение


    В процессе написания статьи я пользовался программой ScreenToGif для конвертации видео в анимации. Я даже не удивлён, что в процессе описания одних багов сталкиваюсь с другими:



    В конце каждого обзора надеешься, что разработчики прислушаются, пересмотрят свои циклы разработки, вложатся в тестирование, но этого не происходит.
    PVS-Studio
    Static Code Analysis for C, C++, C# and Java

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

    Комментарии 1

      0
      Тестирование это дорого, а профит не всегда очевиден.
      Иногда очевидно что его нет и лучше жить с багом, чем вкладываться в фикс.
      Тут очевидно придут разработчики и скажут: Господи, да я за месяц такое приложение с нуля напишу! В пять раз лучше!
      Да. Уверен что так оно и есть.
      А еще вижу разработку всякого изнутри, вижу как разрастается стоимость решения, когда речь идет о том, чтобы работать с ним командой со всеми тестами и приемками.

      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

      Самое читаемое