QA Engineer в BearStar Games/S8
· 24.07Как 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 Engineer в BearStar Games/S8
· 24.07войдите, чтобы увидеть
и подписаться на интересных профи