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

Интенсив провела Надежда Чертовских — руководитель отдела QA в компании BeresnevGames и преподаватель OTUS.  

План вебинара

  1. Познакомиться с инструментами для тестирования мобильных игровых проектов.

  2. Попробовать запустить игру в эмуляторе Вluestacks.  

  3. Попрактиковаться в сборе логов с мобильной игры.

  4. Создать свое тестовое устройство в эмуляторе android studio.

  5. Попытаться пройтись по чек-листу, который составили на первом интенсиве.

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

Игровых движков существует довольно большое количество.

Самые  популярные игровые движки:

  • Unity3D

  • Unreal Engine

  • Unity3D

  • Unreal Engine

Также существуют и другие игровые движки:

  • Cocos2d

  • Godot

  • LÖVE

Игры могут создаваться не только в игровых движках, но и языками программирования, то есть ограничений в создании игр нет. Какие-то инструменты позволяют делать это проще, какие-то инструменты поддерживают визуальное программирование. Например, в Unity3D нужно знать именно программирование - там используется C#. А Unreal Engine можно на Blueprint собрать для себя какой-нибудь прототип, и это не потребует много времени, чтобы понять как платформа, движок работает. Также в Unreal Engine используется C++.

Ссылка  на список игровых движков

Там можно посмотреть, какой движок, что поддерживает и для чего более применим. Например, Unity3D сейчас самый популярный, потому что позволяет делать как 3D игры так и 2D. Он  бесплатный но, если какой-то прототип захочется выпускать, то потребуется купить лицензию.

 Для запуска проекта в Unity3D потребуется:

  • получить доступ к проекту (через систему контроля версий, dropbox, локальную сеть, etc.)

  • опционально установить Unity Hub, с помощью которого можно поставить одновременно любые версии Unity для разных проектов. Например, у меня стоит несколько версий Unity для разных проектов и через Unity Hub я могу управлять этими версиями. Во вкладке Рroject можем выбирать, с какой версии Unity запускаем проект.

 Скачать Unity Hub  можно на официальной странице Unity.

Для Unity необходимо создать персональный аккаунт.

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

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

  • версия Unity, на которой девелоперы создают проект.

  • необходимо знать настройки проекта.

Система  контроля версий

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

  • Система контроля версий

  • Веб-сервисы GitHub, GitLab

  • Для любых типов файлов

  • Можно как из командной строки, так и спец. инструментами

  • Основные команды: add, commit, push, pull, checkout, reset и т.д.

  • Ссылка на git book (есть русский язык)

Git book - самый популярный сервис, где доступно объяснено в примерах как git работает.

Для тестировщика самые важные команды – это создание новой ветки, копирование изменений, которые внес разработчик в эту ветку (add, commit, push, checkout, reset и тд.).
Можно  работать с Git,  как и с командной строки,  так и специальными инструментами. Работа инструментами проще.  

Запуск  проекта в Unity3D

Запустить можно с Unity Hub.    

Нажимаем на тот проект, который уже добавлен в Unity Hub. Делаем это по кнопке ADD и выбираем папку, которая предоставлена от команды разработчиков. После  того как мы открыли проект Unity, он довольно долгое время подгружает скрипты и собирает проект воедино.

Узнаём настройки проекта от разработчиков. Здесь есть в меню файл – Вuild Settings. У каждой команды могут быть разные настройки. Мы переключаемся на платформу Аndroid.

После того как загрузился проект, открываем сцену. В интерфейсе Unity есть главное окошечко с игрой непосредственно.

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

Игра запустилась.

Есть  главный персонаж.
Есть  buster, который увеличивает жизнь.
Есть buster, который увеличивает количество шагов. Шаги  преобразовались в энергию.
Есть  враги.  
Есть  цель –  другой кролик.

Перемещаясь стрелками на клавиатуре, мы можем до цели своей дойти.

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

Достигнув цели, мы переходим к следующему уровню.
Случайным образом генерируются бустеры, враги, и где находится цель.
Если необходимо развернуть игру на весь экран, есть настройка maximize on play.

Проверим в Unity скрипты, которые мы записали вчера в чек-лист.

 

То, что мы не смогли проверить в Unity, можно проверить непосредственно на эмуляторе.

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

Запускаем игру. Пройдем несколько уровней и на этом уровне проиграем.

Здесь в поле с баллами на экране пишется какое-то значение, которое не соответствует тому сколько игрок заработал проходя игру.

В консоле, как раз это то место, где игровой движок Unity3D репортит об ошибках.

У  нас выпала ошибка:

Помимо ошибок в Unity есть просто информационные сообщения.

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

Очень важный момент - настройки проекта в Unity3D. Должны быть выбраны именно те настройки для проекта, которые используют разработчики при создании.

Красной  рамкой выделены те настройки, которые используются, если build собирается под android платформы. Обязательно  эти две настройки нужно указать при установке той версии Unity, которые вы будете использовать для проверки проекта.

Ссылка на страницу Нelp Unity, где можно прочитать про эти компоненты

Преимущества  тестирования проекта в Unity:

  1. Можно тестировать сразу после внесения изменений.

  2. Можно быстро переключать разные версии.

  3. Можно не ждать новой сборки и самому сбилдить нужную версию под платформу.

Недостатки  тестирования проекта в Unity:

  1. Не весь функционал корректно тестировать в движке (например, рекламу и покупки внутриигровые лучше тестировать на устройствах).

  2. Есть риск пропуска бага, так как некоторые баги воспроизводятся только на определённых устройствах, при определенных действиях пользователей. Например, когда игрок зажимает в нескольких местах экран.

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

Эмулятор Аndroid

Ссылка, где можно подробнее прочитать про этот эмулятор

Создадим одно тестовое устройство через android studio:

  • устанавливаем себе android studio на компьютер;

  • создаем любой пустой проект.

У вас открывается рабочее пространство.  

  • во вкладке инструменты есть раздел Android Device Manager,  открываем его.

У  меня уже создано несколько виртуальных устройств.

Как  это делать:

  • нажимаем Create Virtual Device;

  • выбираем любое устройство с которым вам хочется работать.

 Смотрим по размеру экрана, по наличию google-сервисов на этом эмулируемом  устройстве.

таким значком обозначены те устройства, которые будут с google- сервисами.

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

Выберем, например, 10 android.

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

После того, как устройство создано, мы его можем запустить.

Здесь есть несколько настроек, которые можно применять для этого устройства. Включаем кнопкой «включить», и появляется полностью смоделированное устройство.

Есть playstore.

Пройдемся по настройкам, которые можно указать, воссоздав тестовое устройство.

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

Мы можем загрузить и запустить .apk созданные в Unity в тестовом устройстве и посмотреть как это будет выглядеть.

Игра запустилась.

На клавиатуре и движением мыши мы можем перемещать главного героя.

Чем ещё хорошо тестировать именно с помощью Аndroid studio и Аndroid Virtual Device: в Аndroid studio встроен инструмент, который позволит видеть логи с нашего устройства.

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

В поле вводим Unity, чтобы получить фильтрацию в поле поиска.

Давайте смоделируем ошибку: у нас программист забыл прикрепить какой-то скрипт к компоненту.

Устанавливаю на устройство. Запускаем. Чистим  логи, ждём запуска.  

Игра запустилась.

Парочку  уровней пройдём и проиграем.

Видим нашу ошибку.

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

Пробуем. Ничего не происходит, игра зависла.

Сворачиваем игру.

Еще одно преимущество эмулятора в android студии: когда вы выключаете ваше устройство, оно сохраняет состояние, которое было до выключения, и все установленные настройки, установленные программы сохраняются.

Здесь видно все наши устройства и сколько они занимают места. 

Преимущества тестирования в android studio

  • наличие Googlе-сервисов;

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

  • можно сохранять тестовое окружение.

Недостатки тестирования в android studio

  • ограниченный парк устройств (нет ios-устройств). Здесь  мы видим только пиксели, nexus. Также можно протестировать приложение для часов, для планшетов, автомобилей, и телевизоров. Можно настроить свой профиль, со своими разрешениями экрана. Здесь мы видим только те, устройства, которые установлены непосредственно на чистом андроиде. Также нельзя протестировать внутриигровые покупки на android studio, так как это не настоящее устройство, и там нет такого функционала.

Вопрос:  есть ли что-то подобное для ios на windows?

Ответ: есть инструмент, но к сожалению, он не на windows, а на mac os. То есть с помощью Х-кода можно симулировать устройство под операционной системой от apple. Они, возможно, существуют, но мы вышли из этого положения тем, что закупили несколько устройств и тестировали именно на этих устройствах.

Эмуляторы и симуляторы мобильных устройств на ПК

Чаще всего они эмулируют именно android устройства и первоначально разрабатывались не для того, чтобы этим инструментом пользовались разработчики или тестировщики, а для людей, которые хотят играть в мобильные игры, но не хотят это делать на мобильных устройствах, телефонах или планшетах. Поэтому были созданы такие платформы как: ВlueStacks, Nox, всевозможные эмуляторы, которые позволяют запускать мобильные игры на ПК.

Посмотрим, как запустить игру на ВlueStacks.

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

Основная претензия к этим сервисам в том, что они нестабильны. Например, ВlueStacks в процессе тестирования очень часто вылетал.

Ссылка на ВlueStacks

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

Запустим игру, которую мы тестировали с вами сегодня. Происходит это точно так же, как мы делали в android studio просто перетаскиванием APK версии на главный экран эмулятора. Здесь у ВlueStacks есть доступ к google play. Там вы можете залогиниться под своим аккаунтом и скачивать любую игру, которую вы хотите протестировать. Нажимаете установить - происходит загрузка. Игра появится у вас на главном экране ВlueStacks.

Когда мы запускаем нашу игру с зайцами и волками, запускается все то же самое, что мы уже видели и в Unity3D, и в Аndroid эмуляторе. Точно также мы можем либо свайпом перемещать главного героя по карте, либо с помощью клавиш клавиатуры.

Это версия, где бага со скриптом нет.

ВlueStacks также позволяет смотреть логи с той игры, которую мы хотим протестировать.

Установим  версию с багом. Запустим ее.

Мы уже заранее скачали инструмент android debug bridge. Доступ к нему возможен через консоль.

Здесь можно подключиться к тому устройству, которое у нас сейчас запущено в ВlueStacks.

Набираем ADB можно без .exe, без расширения. Затем набираем Device. 

 

Эмулятор  подключился.  

Набираем такую команду:

Пишем фильтр по Unity.

Теперь мы видим  все логи, которые у нас идут с нашего приложения, которые запущены в эмуляторе.

Пройдём несколько уровней, и проиграем. Опять  же, ищем наш exception.

Та же ошибка, которую сегодня с вами ловили в Unity и в Аndroid studio.

Выставили фильтр по Unity, чтобы нам не слались все события, которые шлются с устройства. Нажмем  Restart. И также ничего не работает. Удалим  эту версию.

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

У нас есть требование, что когда мы попадаем на ячейку с врагом, то количество жизней отнимается. Проверяем: захожу на ячейку с врагом и количество жизни прибавилось. Такое  встречается, когда есть какие-то инкрементирующие, либо наоборот механики в игре, то в этом случае есть большая вероятность, что разработчики сделают что-то не так. Возможно где-то значение, которое должно увеличивать  уменьшает. Это  очень часто происходит с наградой. Например, если игрок выполнив какое-то действие, заработал 100 монет - эти 100 монет могли не начислится на его счётчик и игрок будет не доволен и будет писать в тех. поддержку.

Переходим  снова на ячейку с врагом.  Уже не 4, а 5 жизней, хотя по ГДД должно отниматься значение.

Такие проверки очень легко проверяются и в Аndroid studio и в ВlueStacks.

Для практики вы можете поставить любую игру с google play, попробовать её запустить, и посмотреть, как она будет играть у вас в эмуляторе, и произойдут ли какие-то ошибки, которые не были предвидены.

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

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

 Преимущества  эмуляторов  и симуляторов мобильных устройств на ПК

  1. Большой  выбор, как по цене, так и по качеству.

  2. Большой парк устройств.

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

  4. Можно сохранять тестовое окружение.

Недостатки эмуляторов  и симуляторов мобильных устройств на ПК

  1. Баги, связанные с эмулятором, а не с тестируемым приложением

  2. Нельзя имитировать работу при различном состоянии мобильной сети и аккумулятора, работу камеры мобильного устройства и т.п.

Сейчас у apple на ios появились новые устройства с новыми процессорами и там уже есть игры для мобильных устройств, которые можно запустить и тестировать непосредственно на macbook. Это очень удобно.


Материал подготовлен в рамках курса «Game QA Engineer».

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