🎥 Как QA-инженер тестировал мобильную игру через видеопоток

📱 + 🖥 + 🤖 = 💡 нестандартный подход, который оказался эффективным

Проблема: Мобильная игра сталкивалась с проблемами на некоторых устройствах: обрезались кнопки, смещались шрифты, а анимации работали с рывками. Стандартные инструменты автотестирования не справлялись:

XCUITest (iOS) и Espresso (Android) давали неточные результаты из-за особенностей рендера Unity. Unity UI (uGUI) затруднял получение координат элементов из-за кастомного рендера. Различия в рендере между iOS и Android усложняли тестирование. Визуальные баги проявлялись только на физических устройствах, а не на эмуляторах. Решение: QA-инженер применил нестандартный подход: тестирование игры через видеопоток с физического устройства с анализом изображения в реальном времени.

🔍 Как это работало: Трансляция экрана Android-устройства на ПК Использовался scrcpy (версия 2.1) для трансляции экрана через USB с минимальной задержкой (~16 мс) и разрешением 1080p. Захват видеопотока с помощью OBS OBS Studio (версия 30.0) настраивался для захвата экрана с частотой 60 FPS. Видео автоматически сегментировалось (например, для анализа переходов между уровнями). Анализ видео с помощью Python и OpenCV Скрипт на Python (OpenCV 4.8) анализировал видеопоток: Извлекал скриншоты каждого кадра. Сравнивал их с эталонными изображениями (UI-элементы, позиции кнопок) с использованием алгоритма SSIM. Выявлял визуальные артефакты (мигания, пропадания кнопок, перекрытие текста). Обнаруживал фризы по дельте между кадрами (задержка >50 мс считалась багом).

Проверка текста с Tesseract OCR Tesseract (версия 5.3) использовался для анализа текста на экране (например, "LEVEL UP", "VICTORY"). Изображения предварительно обрабатывались (бинаризация, удаление шумов) для повышения точности. Автоматический отчёт Генерировался HTML-отчёт со скриншотами, описанием багов и временными метками. К отчёту прикреплялся видеофрагмент, демонстрирующий баг. 💥 Результат: Обнаружено 5 багов, которые разработчики не могли воспроизвести. Визуальный регресс при смене шрифта был выявлен до релиза. Анализ FPS выявил проблему с лагами на устройствах Xiaomi с MIUI 14. Подход интегрирован в CI/CD: тесты автоматически запускались в ночном пайплайне на проблемных устройствах (Samsung Galaxy A50, Xiaomi Redmi Note 10). 💬 Почему это круто: ✅ Работает там, где стандартные тесты бессильны.

✅ Эффективно для выявления визуальных и анимационных багов.

✅ Подходит для кастомного UI в Unity.

✅ Адаптируется для iOS с использованием аналогичных инструментов (например, QuickTime для macOS).

Ограничения:

Требует мощного ПК для анализа видео. Настройка Tesseract может быть сложной для многоязычных текстов. Не заменяет тестирование логики игры.

🎥 Как QA-инженер тестировал мобильную игру через видеопоток | Сетка — социальная сеть от hh.ru 🎥 Как QA-инженер тестировал мобильную игру через видеопоток | Сетка — социальная сеть от hh.ru