Регрессионное тестирование игр: автоматизация и ручные проверки

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

От иммерсивных приложений до игровых миров и 3D-сцен

Наша выделенная команда для VR/AR/MR-разработки, Unity-продакшна и 3D-моделирования и анимации с собственными кейсами и презентациями.

Посетить персонализированный сайт
Показано 1 из 1Все 242 услуг
Регрессионное тестирование игр: автоматизация и ручные проверки
Простой
от 2 дней до 1 недели
Часто задаваемые вопросы

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

Какие этапы разработки игры?

Последние работы

  • image_games_mortal_motors_495_0.webp
    Разработка игры для компании Mortal Motors
    1438
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    Пошаговая стратегия в фэнтези сеттинге With Fire And Sword
    972
  • image_games_second_team_604_0.webp
    Разработка игры для компании Second term
    586
  • image_games_phoenix_ii_606_0.webp
    3D-анимация — тизер для игры phoenix 2.
    651
  • image_training-quizzes_kids_shopping_quiz_614_0.webp
    Обучающая викторина для детей «Покупки в магазине»
    13

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

Мы называем регрессионное тестирование страховкой от таких сценариев. Без него каждый релиз — лотерея. Наши инженеры строят гибридную модель: автотесты покрывают детерминированную логику (расчёты урона, инвентарь, прогрессию, сетевые протоколы), а ручное тестирование — визуальные и поведенческие сценарии. Такой подход снижает количество багов в продакшене минимум на 80% и сокращает время ручных проверок на 40%.

Почему регрессионное тестирование игр сложнее, чем в вебе?

В веб-приложении регрессионный тест — запрос к API и проверка ответа. В игре «сломалась анимация перехода при смерти персонажа» — значит, нужно запустить сцену, войти в бой, снизить HP, дождаться триггера, проверить, что Animation Controller перешёл в состояние Death, Collider отключился, UI смерти показался без артефактов. Полностью автоматизировать такое невозможно. Поэтому для визуально-ориентированных проектов мы используем пропорцию 70% ручного и 30% автоматизированного тестирования, для логико-ориентированных (стратегии, симуляторы) — наоборот. Экономия бюджета на регрессию достигает 40% при грамотном гибриде.

Как собрать regression pack для игры?

Основа — regression pack: набор тест-кейсов, покрывающих критические пути. Для каждого патча мы определяем scope of impact: какие системы затронуты? Если правился ИИ врагов — тестируем не только ИИ, но и NavMesh, агрессию, лут, достижения, связанные с врагами.

Для автоматизации используем Unity Test Framework в режиме Play Mode. Тесты охватывают:

  • Критические game-loop сценарии (spawn → combat → death → respawn)
  • Инвентарь и крафт при граничных значениях
  • Сохранение и загрузка с разными версиями данных
  • Сетевые события (через мок Photon-клиента или Mirror NetworkManager в offline-режиме)

Тесты запускаются через Unity Cloud Build или локальный CI (Jenkins, GitHub Actions) на каждый коммит в main/develop. Если суит из 200 тестов проходит за 8 минут — это приемлемо. Если за 40 минут — разбиваем на smoke (быстрые) и full regression (медленные), запускаем по расписанию.

Для мобильных платформ регрессионный прогон дополнительно проходит на реальных устройствах через Firebase Test Lab или физический device farm — эмулятор не воспроизводит OpenGL ES/Vulkan-специфику и не тестирует тепловой троттлинг. Стоимость регрессии на мобильных можно снизить за счёт приоритезации smoke-тестов.

Пошаговый план внедрения регрессии

  1. Анализ scope of impact — определяем, какие системы затронуты изменением.
  2. Формирование regression pack — создаём тест-кейсы критических путей.
  3. Настройка CI — интегрируем Unity Test Framework в пайплайн.
  4. Baseline save-файлы — подготавливаем сохранённые состояния для быстрого старта.
  5. Регулярные прогоны — включаем регрессию в процесс каждого билда.

Что входит в deliverables?

Мы создаём инфраструктуру регрессии, которая живёт с проектом:

  • Регрессионный pack в виде документированных тест-кейсов (Google Sheets/TestRail)
  • Автоматизированный CI с интеграционными тестами
  • Smoke suite для быстрой проверки каждого билда (50–80 кейсов за 2–4 часа)
  • Baseline save-файлы для ключевых точек игры
  • Регулярные отчёты о покрытии и результатах прогонов
  • Обучение команды по обновлению pack

Пример matrix риска: изменение только UI-виджета — достаточно smoke + экран-специфичная регрессия (1–2 часа). Изменение SaveSystem — полный прогон обязателен (3–7 дней). Изменение EventBus — частичная регрессия по scope (1–3 дня). Для детального аудита свяжитесь с нами.

Сравнение подходов: ручное vs автоматизированное

Критерий Ручная регрессия Автоматизированная регрессия
Скорость прогона Медленно (часы/дни) Быстро (минуты)
Глубина проверки Высокая (визуал, поведение) Низкая (логика, дата)
Стоимость поддержки Низкая (нет кода тестов) Высокая (разработка и обновление)
Лучше для Иммерсивных сцен, UI, FX Детерминированной логики

Ориентировочные сроки прогона

Масштаб Сроки
Smoke regression (50–80 кейсов) 2–4 часа
Partial regression (scope of impact) 1–3 дня
Full regression pack 3–7 дней
Automated CI regression (каждый билд) 15–60 минут

Как мы оценим ваш проект

Хороший regression pack окупается уже на третьем патче — снижает количество регрессионных багов в продакшене на 80% и сокращает время ручных проверок на 50%. Стоимость формирования pack и настройки CI рассчитывается после анализа проекта. Мы оценим объём, сложность систем и текущее покрытие тестами за 1 день. Свяжитесь с нами для консультации — получите предварительный план и оценку. Наша команда QA-инженеров с опытом в геймдеве от 8 лет гарантирует результат.

Закажите аудит текущего регрессионного покрытия — мы найдём слабые места и предложим план улучшений.

Мы используем регрессионное тестирование и Unity Test Framework как основные инструменты.

Тестирование и QA

Мы не раз видели, как проект на финишной прямой превращается в кошмар: на машине разработчика всё летает, а на Samsung Galaxy A12 — 15 FPS и вылеты, на iPad Air — мыльные текстуры. Без выстроенного QA-процесса тестирование игр становится лотереей. Наша команда с 8‑летним опытом протестировала более 30 мобильных игр и в каждом проекте находила критические проблемы, которые не выявили обычные прогоны. Тестирование игр под ключ — от функционального до нагрузочного — с гарантией качества и отчётом, готовым к внедрению. Оценим ваш проект за 3 дня — свяжитесь с нами.

Как автоматизировать тестирование в Unity?

Самый эффективный способ поймать регрессию — автотесты, которые запускаются без человека. В Unity это Unity Test Framework (UTF) на базе NUnit. Два режима.

Edit Mode Tests работают без игрового цикла — скорость выполнения в миллисекундах. Подходят для формул урона, расчёта экономики, валидации конфигов. Play Mode Tests запускают полный игровой цикл — тестируют логику MonoBehaviour, корутины, переходы между сценами.

Пример:

[UnityTest]
public IEnumerator PlayerTakeDamage_HealthReduces()
{
    var go = new GameObject();
    var health = go.AddComponent<HealthComponent>();
    health.Initialize(100);

    health.ApplyDamage(30);

    yield return null;

    Assert.AreEqual(70, health.CurrentHealth);
}

Покрывайте то, что ломается чаще всего: система сохранений, экономика, боевая логика. 100% покрытие не нужно — достаточно критических путей. UI (UGUI, UI Toolkit) автоматизировать сложнее: для этого используют InputSystem.QueueEvent или Appium на мобильных платформах. Автотесты выполняются в 50 раз быстрее ручных прогонов при регрессии — это сокращает бюджет на регрессионное тестирование на 40%.

Почему профилирование на реальном устройстве критично?

Тесты не ловят проблемы производительности. Для этого нужен профилировщик на целевой платформе. Unity Profiler — стартовая точка. Ключевые шаги:

  1. Профилируйте на устройстве, а не в редакторе — Editor добавляет оверхед. Подключите девайс через USB с Development Build и Autoconnect Profiler.
  2. Смотрите Main Thread и Render Thread отдельно. Типичные проблемы:
    • Physics.FixedUpdate >2ms — сложная физика
    • Canvas.BuildBatch на каждом кадре — лишние Dirty вызовы UI
    • GC.Collect — выделение памяти в горячем пути (внутри Update)
  3. Используйте ProfilerMarker для локализации:
using Unity.Profiling;

static readonly ProfilerMarker k_PathfindMarker = new ProfilerMarker("Pathfinding.Calculate");

void UpdateAI()
{
    using (k_PathfindMarker.Auto())
    {
        // pathfinding code
    }
}

Memory Profiler (пакет com.unity.memoryprofiler) даёт снапшоты памяти: находит утечки (объекты, не освобождённые после смены сцены), сравнивает два снимка. Самые частые причины проблем на мобайле: текстуры без правильного формата (ASTC для iOS, ETC2 для Android), аудио в WAV вместо Vorbis, объекты в DontDestroyOnLoad, которые накапливаются.

Frame Debugger (Window → Analysis → Frame Debugger) позволяет пройти по каждому draw call в кадре. Для мобильных проектов норма — 50–150 draw calls; если больше 300 — батчинг не работает или сцена перегружена. Wikipedia: Software performance testing подчёркивает важность профилирования на реальном оборудовании.

Профилирование на реальном устройстве обязательно — редактор Unity даёт искажённые результаты из-за собственного оверхеда, поэтому всегда используйте Development Build на целевом устройстве.

Инструмент Цель Что проверяет
Unity Profiler CPU/GPU Время выполнения потоков, аллокации, GC
Memory Profiler Память Утечки, распределение по типам
Frame Debugger Графика Draw calls, батчинг, overdraw

Функциональное и регрессионное тестирование

Функциональное тестирование строится на тест-планах: для каждой фичи — ожидаемый результат, шаги воспроизведения, критерии прохождения. Покрываем smoke, sanity и acceptance-тесты. Регрессионное тестирование — запуск накопленных кейсов перед каждым релизом, а не только перед мажорными.

Инструменты управления: TestRail, Qase, Zephyr. Для небольших команд — Notion или Google Sheets со структурированными чеклистами.

Тестирование на реальных устройствах

Эмуляторы не воспроизводят тепловой дросселинг, реальный GPU и ограничения памяти. Минимальный набор — 20+ устройств всех сегментов:

Категория Примеры RAM
Low-end Android Snapdragon 662 (Samsung A12, Redmi Note 10) 3 ГБ
Mid-range Android Snapdragon 720G/765G 6 ГБ
Flagship Android Snapdragon 888+ 8 ГБ
Low-end iOS iPhone SE 2 3 ГБ
iOS средний iPhone 13/14 4–6 ГБ
iPad Последнее поколение 6–8 ГБ

Для масштабного тестирования — облачные фермы: Firebase Test Lab, BrowserStack App Automate, AWS Device Farm. Они позволяют запускать сотни параллельных тестов на реальных устройствах.

Нагрузочное тестирование (мультиплеер)

Цель — найти деградацию сервера до релиза. Инструменты: k6 (WebSocket/HTTP API), Gatling (сложные сценарии с состоянием). Для специфических протоколов пишут кастомный stress-клиент на Go или C#.

Параметры проверки:

  • Поведение при пиковом CCU (concurrent users) — до 1000+ CCU
  • Деградация латентности под нагрузкой (p95 latency)
  • Утечки памяти на сервере за 72+ часа работы
  • Graceful degradation при отказе одного из узлов

Краш-репортинг и мониторинг

После релиза QA продолжается через мониторинг. Firebase Crashlytics — стандарт для мобильных игр: автоматический сбор крашей с символизацией стектрейсов, real-time уведомления. Sentry — для серверных компонентов и WebGL. ANR (Application Not Responding) настраивается отдельно — Play Console показывает их в отдельном разделе. Инвестиции в тестирование окупаются за 2–3 релиза, снижая затраты на исправление багов после релиза на 60%.

Что входит в нашу работу

  • Детальный план тестирования (чек-лист, сценарии, приоритеты)
  • Набор автоматизированных тестов (экономика, сохранения, критические пути — покрытие 70%)
  • Профилирование CPU/GPU/памяти с отчётом по каждому багу
  • Ручное тестирование на 20+ реальных устройствах (low-end / mid-range / flagship)
  • Нагрузочное тестирование сервера (до 1000+ CCU в течение 12 часов)
  • Дашборд с метриками и историей прогонов
  • Обучение вашей команды основам автотестирования и профилирования

Получите консультацию по вашему проекту — мы оценим текущую сборку и предложим план оптимизации.

Процесс работы

  1. Анализ — изучаем архитектуру, собираем метрики текущей сборки, определяем цели по FPS и стабильности.
  2. План тестирования — создаём чек-лист, выбираем инструменты, согласовываем объём.
  3. Автоматизация — пишем тесты для критических путей, настраиваем CI-прогоны.
  4. Ручное тестирование — прогоняем сценарии на устройствах, фиксируем баги в трекере.
  5. Отчёт и рекомендации — предоставляем документ с найденными проблемами, их приоритетом и конкретными правками (оптимизация шейдеров, настройка батчинга, утечки).

Наши метрики

  • 8+ лет опыта в геймдеве (Unity, Unreal, мобильные/PC/консоли)
  • 30+ протестированных мобильных игр
  • Среднее повышение FPS после оптимизации — 30%
  • Сокращение времени регрессионного тестирования — 40%
  • Гарантия: все базы с Critical/High приоритетом исправляются до релиза
Чек-лист предрелизного тестирования
  • [ ] Профилирование CPU/GPU на low-end устройстве (30 мин игровой сессии)
  • [ ] Проверка утечек памяти через Memory Profiler (сравнение снапшотов до/после сцены)
  • [ ] Frame Debugger — не более 200 draw calls, проверка статического батчинга
  • [ ] Нагрузочный тест сервера: 500+ CCU, длительность 12 часов
  • [ ] ANR-мониторинг на Android (отдельно от крашей)
  • [ ] Функциональные автотесты на систему сохранений и экономику

Типичные ошибки в QA-процессе

  • Тестирование только на флагманах — большинство игроков на mid-end и low-end.
  • Отсутствие автотестов для экономики и сохранений — они ломаются при любом рефакторинге.
  • Пропуск нагрузочного тестирования сервера — игра выходит, набирает 10k DAU и сервер ложится.
  • Регрессия только перед мажорными релизами — критично перед каждым публичным обновлением.

Закажите тестирование игр под ключ. Мы оценим ваш проект за 3 дня и предложим план с гарантией результата. Пишите — разберём вашу сборку бесплатно.