Кейс из релиза мобильного приложения для e-commerce:
После обновления каталога пользователи Android начали жаловаться:
«Приложение зависает при открытии категории», «На главной — бесконечная загрузка».
На iOS всё работало идеально, а в тестировании баг не воспроизводился вообще.
Разработчики искали проблему в коде приложения — полдня впустую. Пока кто-то не догадался посмотреть сырой ответ API на проде.
И вот он, виновник торжества: лишняя запятая в JSON.
{
"products": [
{"id": 1, "name": "Product 1"},
{"id": 2, "name": "Product 2"},
]
}
iOS-парсер закрыл глаза на ошибку. Android строго следовал спецификации и выбрасывал exception. UI зависал, показывая бесконечный лоадер.
🔢 Почему не поймали на тестировании:
— QA использовали моки с валидным JSON
— Тестовое API всегда отдавало корректные данные
— Нагрузочные тесты не проверяли валидность формата
📎 Баг проявился только на проде, под нагрузкой, когда один микросервис стал генерировать некорректный JSON.
А вы тестируете на «грязных» данных с прода ❓
👍 — Да, используем копии продовых данных
❤️ — Только моки и тестовые данные
🤩 — Узнаем о проблеме от пользователей
🐸 Библиотека тестировщика
#разбор_полетов
