Автор статьи: Дмитрий Шадрин

Основатель первого курса Game QA на платформе OTUS

  • Баги интерфейса: они возникают из-за того, что игровая графика неправильно интерпретируется, когда игровые элементы находятся в неправильном месте, а место, отведенное для текста, не соответствует требованиям

  • Технические баги: различные ситуации, когда игра ведет себя не так, как запланировано в документации. Например при нестабильном интернет соединении или ошибках сети. 

  • Баги локализации: играм приходится поддерживать множество языков и часть из них, например арабский, пишется справа налево. И вот мы встречаем целую плеяду багов, где текст оказывается совсем не там, где должен быть или банально не помещается на экране. 

  • Баги производительности: все мы знаем ситуации, когда игра ведет себя нестабильно на определенных локациях. Просадки FPS, возрастающая нагрузка на процессор и т.д. 

  • Баги совместимости: игра может вести себя по разному на различных ОС, в т.ч. мобильных

  • Баги баланса и логики: те редкие кейсы, когда игрок заблокирован в своем прогрессе из-за просчетов в балансе игры или игровой логики. В качестве примера могу вспомнить игры-кликеры, где из-за экспоненциального роста игровой прогрессии экономики игрокам приходилось кликать целыми днями чтобы перейти на следующий уровень “угнетения”.

Нюансы, с которыми сталкиваются тестировщики игр

  • Прямой доступ к экрану: в большинстве мобильных игр используется прямой доступ к экрану, который выполняется путем обхода задач уровня ОС с помощью различных API и программных сред, таких как OpenGL и ActiveX. В результате традиционные фреймворки для мобильного автоматизированного тестирования становятся излишними, когда речь идет о мобильных играх. Автоматизация использует только оси и клики по XY, поскольку нет доступа к данным на уровне объекта.

  • Интеграция с социальными сетями: сегодня мобильные игры связаны с платформами социальных сетей больше, чем когда-либо. Это побуждает тестировщиков игр уделять больше внимания, поскольку социальные сети могут быть как конструктивными, так и деструктивными. При эффективном внедрении и использовании социальные сети могут помочь объединить геймеров-единомышленников, стимулировать обмен идеями и обогатить пользовательский опыт. Точно так же интеграция с социальными сетями может иметь и негативные последствия. Например, при отказе абстрактного API Facebook или сетевой проблеме, игрок может не видеть список своих друзей. Сообщение или подарок такому игроку может зависнуть в очереди на неопределенное время.

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

  • Игровые движки

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

  • Производительность игровых приложений важнее, чем любого другого приложения

Производительность является одним из ключевых факторов пользовательского опыта, и реальную производительность можно отслеживать только при использовании реального оборудования. Частота кадров также играет важную роль в богатстве и разнообразии мобильных устройств, где каждая новая модель имеет значение. Кроме того, в большинстве игр используются датчики или другие аппаратные функции, которые не совпадают на разных устройствах. Если это не проверить, это приведет к нескольким негативным последствиям для общей производительности. Следовательно это вынуждает Game QA работать на целом парке мобильных устройств.

Что такое цикл разработки игры?

Прежде чем углубляться в типы и процессы тестирования игр, давайте сначала взглянем на жизненный цикл разработки игр (GDLC).

1. Разработка концепции. На этом первом этапе разрабатывается идея или концепция игры, при этом готовится документ, в котором подробно излагается концепция.

2. Подготовка к производству. Этот этап включает в себя доработку концепции и создание концептуального документа. Кроме того, создаются три других документа, а именно:

  • Документ по дизайну игры

  • Технический документ

  • План проекта

На этом этапе дизайнеры также создают прототип на основе концепт-арта, игровых уровней и других деталей.

3. Разработка. На основе построенного прототипа программисты начинают писать код игры. Художники начинают работать над моделированием, текстурами и анимацией.

4. Альфа. На этом этапе разрабатывается работающий продукт со всеми функциями и полным геймплеем. Здесь еще могут присутствовать временные ассеты и мокапы, но игра уже приближена к реальному прототипу.

5. Бета-версия — на этом этапе игра полностью разработана со всеми активами.

6. Заморозка или code freeze — каждая ошибка, обнаруженная на этапе бета-тестирования, устранена, и игра готова к выпуску на этом этапе.

7. Выпуск в релиз — на этом этапе игра передается издатели или публикуется в магазине приложений.

8. Исправление/обновление — После выпуска игры следующим шагом будет техническое обслуживание. При необходимости команда может выпустить патч для устранения ошибок, а в случае добавления в игру новых функций выпускаются дополнительные обновления.

Виды тестов и методики тестирования игр

1. Комбинаторное тестирование. Это метод экспериментального проектирования, используемый для тестирования коммерческого программного обеспечения и для создания тестовых случаев. Применение комбинаторного тестирования к тестированию игр повышает эффективность выполнения тестов и обеспечивает более высокое качество, более низкие затраты и лучшее сдерживание фаз.

Характерные черты:

  • С помощью этого теста покрываются все возможные комбинации значений параметров.

  • Систематически генерировать комбинацию для тестирования

  • Определите отдельные атрибуты, которые могут варьироваться либо в данных, либо в конфигурации.

2. Clean room testing. Это процесс разработки программного обеспечения, целью которого является разработка игрового программного обеспечения с сертифицированным уровнем надежности.

Характерные черты:

  • Программирование начинается после формальной спецификации

  • Сочетает математические рассуждения, статистические рассуждения и уточнение дизайна во время создания и тестирования тестовых случаев.

  • Основная цель - произвести минимальный дефект в программном обеспечении

  • Покрытие кода unit тестами со стороны разработки

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

Характерные черты:

  • Определение того, работает ли приложение в соответствии со спецификациями.

  • Это сложный метод, относящийся к категории тестирования черного ящика.

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

  • Проверяет, проходит ли установка гладко, работает ли приложение в свернутом режиме, разрешает ли доступ к социальным сетям, поддерживает платежные шлюзы и многое другое.

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

  • Время отклика на клиенте и серверах, время завершения транзакций, производительность при пиковых нагрузках, покрытие сети, нехватка памяти, надежность и многое другое.

  • Расход батареи должен быть оптимальным, а отклики в играх должны быть стабильными при различных нагрузках.

  • Время отклика в различных типах сетей, таких как WiFi, 2G, 3G и 4G. Это также помогает проверять подключение между мобильными устройствами, центрами обработки данных или облаком, а также отслеживать пиковые нагрузки, нестабильность соединений, дублирование данных, потерю пакетов и фрагментацию данных.

5. Тестирование совместимости. Этот тип тестирования помогает выяснить, правильно ли работает игра, не касаясь аппаратного обеспечения, конфигурации программного обеспечения и графики, на которых построено устройство. Это один из самых важных тестов, который оценивает, работает ли игровое приложение на разных устройствах и размерах экрана без ущерба для качества взаимодействия с пользователем.

Характерные черты:

  • Проверка пользовательского интерфейса: приложения, сравнивая его дизайн, текст и функциональность на разных размерах экрана.

  • Проверяет работоспособность приложения с разными ОС, браузерами и устройствами

  • Обеспечивает стабильность, работоспособность, масштабируемость и удобство использования приложения на нескольких платформах.

6. Soak-тестирование — это метод автоматизированного тестирования игры, который заключается в том, чтобы оставить игру запущенной на длительное время в различных режимах работы, например, на паузе или на титульном экране. Это позволяет выявить утечки памяти или циклические ошибки.

7. Древовидное тестирование. Такой метод тестирования помогает организовать тестовые случаи и собрать воедино выбор правильного набора тестов, которые лучше подходят для данного набора изменений кода.

Характерные черты:

  • Может проводиться до разработки макетов страниц или навигационных меню.

  • Улучшает общее понимание сложных функций в игре.

  • Отслеживает возможные отклонения, особенно когда функции взаимодействуют с другими игровыми правилами, функциями и другими элементами.

  • Очень часто используются mind maps для упрощение видимости полной карты тестирования и всех взаимосвязей в интерфейсе игры.

8. Play test. Это метод тестирования игр, при котором тестировщики могут играть в игру как настоящие пользователи и анализировать качество игрового приложения. Они могут играть в игру, чтобы проверить функциональный рабочий процесс, а также нефункциональные аспекты игры, такие как развлекательная ценность, уровень сложности, дизайн уровней и многое другое.

Существенная особенность:

  • Ориентирован на оценку игры, а не на выявление ошибок в приложении.

  • Проверяет, правильно ли структурирована игра и ориентирована ли она на персонажей.

  • Проверяет сюжетную линию игры, задачи и забавные элементы, чтобы оценить, является ли игра инновационной, увлекательной и ориентированной на игрока.

9. Тестирование восстановления. Для программного обеспечения тестирование восстановления помогает проверить, насколько хорошо приложение может быть восстановлено после сбоев, сбоев оборудования и других подобных сбоев. Приложение принудительно завершается сбоем, а затем оценивается, как оно восстанавливается после условий сбоя и среды.

Например, во время работы игрового приложения внезапно перезагрузите игровую консоль и проверьте проверку целостности данных.

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

Характерные черты:

  • Повторить ранее проведенные тесты

  • Помогает сравнить предыдущие результаты с текущими результатами и выявить ошибки, если таковые имеются.

  • Критично для контроля качества

  • Экономит время, обнаруживая ошибки на начальном этапе

Разница между тестированием игр и тестированием программного обеспечения

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

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

В отличие от тестирования программного обеспечения, в тестировании игр есть множество областей, особенно в случае тестирования мобильных игр, которые требуют большего внимания. Вот некоторые из этих аспектов:

Графическая производительность

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

  • Другим фактором является графический процессор мобильного телефона, который используется чаще всего. Графический процессор может работать на максимальной тактовой частоте, и, следовательно, если он не реализован должным образом, игра может замедлить работу устройства из-за чрезмерного нагрева. Следовательно, тестеры должны тестировать игры на нескольких устройствах.

  • Кроме того, тестировщики игр должны запускать игру на разных устройствах и регистрировать важные параметры устройств, такие как потребление ЦП, температура устройства, потребление графического процессора, потребление данных, потребление графического процессора и многое другое.

Очень часто для функционального тестирования требуются специальные фреймворки. Некоторые элементы игрового дизайна и поведения нужно тестировать вручную, так как автоматизация — не самый подходящий вариант. Даже если он развернут, он требует значительных усилий и инструментов автоматизации (AltUnity tester например) для создания тестовых сценариев, потому что варианты использования игровых тестов обычно выходят за рамки простого поиска статических элементов на экране.

Как протестировать игру?

Общий рабочий процесс тестирования игры включает следующие этапы:

  • Соберите требование: нужно собрать и понять такие детали, как раскадровки, персонажи, архитектура, задействованная в игре, а также концепция игры, ее правила и этапы.

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

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

  • Выполнение тестовых случаев: на этом этапе выполняются тестовые примеры для выявления ошибок. Для еще лучших результатов выполняются альфа-тестирование, бета-тестирование и тестирование соответствующих возрастных групп.

  • Запишите результаты: каждый аспект записывается в виде видео и скриншотов. Это помогает лучше понять, как используется приложение. Эти сведения помогают анализировать поведение приложения.

  • Ведение журнала дефектов: это действие помогает записывать, просматривать, расставлять приоритеты, классифицировать и эффективно отслеживать ошибку.

Вывод

Поскольку популярность игр продолжает расти, внимание к тестированию также будет увеличиваться. Поэтому каждый игровой бизнес сегодня концентрируется на развертывании эффективных методов и стратегий тестирования, чтобы предоставить своим клиентам правильный игровой опыт. Более того, тестирование игры — это повторяющийся процесс, который необходимо выполнять для выявления и устранения новых дефектов и ошибок при каждом новом выпуске игры. Следовательно потребность рынка в качественных специалистах Game QA будет только расти.

QA специалист в геймдеве знает и владеет широким списком инструментов. Приглашаем всех на бесплатный вебинар, где рассмотрим часть из них и узнаем, как можно оптимизировать проверки и ускорить процесс тестирования.

Комментарии (0)