Как QA поймали сетевой баг, который исчезал при отладке

📱💥 Баг с синхронизацией времени, который проявлялся только на реальных устройствах и без дебаггера

🎯 Контекст: Команда работала над мобильным приложением (под iOS и Android), в котором данные между клиентом и сервером синхронизировались по времени:

обновление происходило на основе timestamp,

применялись ограничения на частоту операций (cooldown),

часть логики работала оффлайн, а часть — через API.

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

не приходили push-уведомления,

действия “откатывались” после выполнения,

время перезапуска таймеров сбивалось.

🔍 Почему баг не ловился: При включённом дебаггере или логировании баг не проявлялся, поскольку система логирования перехватывала и синхронизировала время на стороне клиента.

Unity и iOS SDK автоматически корректировали DateTime.Now при отладке.

На устройствах пользователей с ручной настройкой времени или при поездках между часовыми поясами — синхронизация “плыла”.

🧠 Решение QA-команды: QA-инженеры поняли, что логи — врут, потому что:

они показывали, что время клиента и сервера совпадает,

но действия всё равно “откатывались”.

Тогда они решили собрать логи вне дебаг-режима, через встроенный SDK от Bugfender, который:

собирал логи прямо на устройстве пользователя,

отправлял их асинхронно,

работал независимо от дебаггера и не влиял на тайминги.

📊 Что они нашли: У одного пользователя устройство показывало локальное время на 8 минут вперёд.

В другом случае — смартфон был переведён вручную на 2021 год, чтобы “обмануть” таймер внутриигровой функции.

Из-за этого:

сервер отклонял действия игрока как “выполненные слишком рано”,

игрок видел успешную операцию, а через 3 секунды всё отменялось.

✅ Результат: QA смогли воспроизвести баг на тестовом девайсе, вручную изменяя дату и время.

Команда внесла изменения:

сервер всегда проверяет server_time - client_time,

при расхождении более чем на 2 минуты — показывается предупреждение игроку: "Ваше устройство показывает некорректное время. Некоторые функции могут работать нестабильно."

Добавили защиту от тайм-хаков

Как QA поймали сетевой баг, который исчезал при отладке | Сетка — социальная сеть от hh.ru Как QA поймали сетевой баг, который исчезал при отладке | Сетка — социальная сеть от hh.ru
repost

108

input message

напишите коммент

еще контент автора

еще контент автора

войдите, чтобы увидеть

и подписаться на интересных профи

в приложении больше возможностей

пока в веб-версии есть не всё — мы вовсю работаем над ней

сетка — cоциальная сеть для нетворкинга от hh.ru

пересекайтесь с теми, кто повлияет на ваш профессиональный путь