Статью подготовил наш коллега Дмитрий Шадрин, в преддверии старта курса "Game QA Engineer".
Доброго времени суток, коллеги и будущие коллеги в индустрии разработки игр. Хотелось бы рассказать, что сейчас происходит на рынке QA в РФ и какие перспективы существуют для новых специалистов.
Начну с ожидаемых hard skills, которые ожидаются от QA. Глобально ничего не поменялось и список на данный момент такой:
навыки тест-дизайна,
умение тестировать на мобильных устройствах,
знания популярных игровых движков (Unity, Unreal Engine, Defold),
знакомство с популярными система баг трекинга (Jira, Youtrack, Wrike).
Про каждый пункт напишу подробнее.
Тест-дизайн
Навыки тест-дизайна необходимы для минимизации затрат времени на написание по возможности полного тестового покрытия. Смысл и суть этого в том, чтобы написать необходимое и достаточное количество тестовых сценариев без потери качества проверок. Здесь могу выделить наиболее популярные и эффективные техники, вроде “классов эквивалентности”, “граничные значения” и “попарное тестирование”. Вышеперечисленные техники в первую очередь позволяют тестировать эффективно и должны применяться там, где необходимы. Вместо бездумного тестирования каждой игровой сущности и разрастания тестовых сценариев, лучше потратить время на изучение игровой функциональности и применить ранее указанные техники. Это позволяет и сократить время на написание сценариев, и на само тестирование в будущем. Минимизация вариативности одинаковых проверок наглядно покажет вам в работе правило Парето - 80% качества можно достичь всего 20% проверок комбинаций данных.
Автор данной статьи настоятельно рекомендует не пренебрегать тест-дизайном и разобраться в сути вышеперечисленных техник.
Умение тестировать на мобильных устройствах
Это необходимый навык современного тестировщика. Подавляющее большинство игр и в мире, и в РФ составляют мобильные игры. Более 80% вакансий связаны с мобильными играми. Что входит в тестирование на мобильных устройствах?
Понимание разницы между популярными ОС. Android со своими нюансами, iOS зачастую выступающий в качестве “догоняющего” по популярным фичам в ОС. За годы глобально поменялось только одно - с каждым годом приходится поддерживать все меньше “древних” версий мобильных ОС. Уже не встретить игр, в которых есть поддержка Android 5.0 и ниже, равно как и iOS ниже 10-й версии. В свое время поддержка таких ОС доставляла немало головной боли как тестировщикам, так и разработчикам. Сюда же включу умение работать с логами вышеперечисленных ОС: xCode в качестве нативного инструмента для iOS и Android Studio / ADB для Android.
Умение работать с сетевыми снифферами вроде Charles, Fiddler, Wireshark и т.д. Здесь вам просто нужно выбрать наиболее удобный инструмент для вас, т.к. данные инструменты взаимозаменяемы и равно необходимы при тестировании на мобильных устройствах. Спектр их применения, помимо банального анализа сетевого трафика, широко применим. Можно подменять данные с backend, перехватывать и устанавливать задержки. Есть возможность перенаправить трафик на другой сервер, регулировать скорость соединения и работать с прерываниями, имитируя прерывания сигналов.
Знакомство с популярными системами дистрибуции мобильных билдов. Testflight, AppCenter, Crashlytics - наиболее популярные инструменты, которыми пользуется большинство разработчиков по сей день. Эти инструменты позволяют хранить архивы версий ваших игровых приложений, возможностью указать Release notes для более удобного фокусирования внимания на задачах, возможностью автоматического сбора логов для критических ошибок. Со всеми этими системами мы сможем познакомить вас на нашем курсе Game QA.
Умение пользоваться режимами разработчика. Для каждой оси есть возможность использовать фичи для разработчиков при тестировании: смена геолокации, локализации на устройстве, времени устройства, настройки пуш-сообщений и нотификаций.
Знания популярных игровых движков.
Наиболее часто вам придется сталкиваться именно с Unity, отлично зарекомендовавшим себя на рынке мобильных игр. Зачастую тестировать удобнее и быстрее прямо в движке, поскольку нет необходимости ждать мобильного билда. Достаточно сменить ветку в системе контроля версий (например Git) и запустить игру в базовой сцене либо в специальной тестовой сцене. Подробные логи в интерфейсе Unity помогут быстро отловить критические ошибки. Возможность расширенного взаимодействия с игровыми объектами также будут отличным подспорьем. А возможность переключаться между мобильными ОС неплохо сэкономит время на первичное тестирование. И это далеко не все “фишки”, которые помогут вам ускорить тестирование и более глубоко разобраться в том как устроена ваша игра.
Знакомство с популярными системами багтрекинга
На самом деле такие системы как Jira, Youtrack, Wrike и т.д. изначально используются как система планирования задач для всей команды разработки. Для тестировщика же это важнейший инструмент для планирования своего времени и баг репортов. Отсюда и некоторая путаница даже в описании вакансий.
Давайте же рассмотрим как выглядит типичная система планирования задач. Как правило это выглядит следующим образом: для команды разработки создается доска, на которую попадают задачи на ближайший спринт. На доске в базовом варианте есть столбцы To do, In progress и Done. В To do помещаются все задачи, которые запланировано сделать в этом спринте. В In progress отображаются задачи, которые сейчас взяты в работу. И, наконец, в Done уходят задачи, работа над которыми закончена.
Так выглядит доска без участия QA. При участии QA на доске неизменно появляются новые столбцы со статусами To test и/или Test in progress. Это ваши основные столбцы для работы с задачами и именно после ваших проверок задачи могут двигаться в Done. В нашем курсе выделен отдельный блок на знакомство с вышеперечисленными системами. После знакомства с ними у вас уже не будут возникать вопросы, в какой статус помещать созданный вами баг и какова будет его дальнейшая судьба.
Автор упомянул самую необходимую базу для начинающего тестировщика в игровой индустрии. Курс Game QA содержит в себе все вышеперечисленной в подробном рассмотрении и с примерами. Но так же туда входит и огромное количество специфики тестирования игр. Именно специфика не позволяет войти в индустрию так же быстро, как в условное web тестирование. Тестирование игровых механик, юнитов, взаимодействий между игровыми объектами и все это на разных устройствах и разных операционных системах - вот это можно назвать спецификой тестирования игр.
Наш курс актуализирует свои материалы по мере появления новых инструментов и технологий в разработке современных игр. Знания, приобретенные на курсе будут актуальны в ближайшие несколько лет, но в любом случае будут подвержены некоторым изменениям в связи с непрекращающимся прогрессом. Будьте готовы учиться в реальном времени и тогда вы быстро достигнете карьерных высот.
Отдельных слов достойно упоминание текущей ситуации на рынке труда в РФ. В связи с недавними событиями, у многих может возникнуть некоторые сомнения из-за множества новостей об уходе игровых компаний. Однако хочется вас успокоить - российский геймдев жив и вполне неплохо себя чувствует. А статья моего коллеги может показать вам, что в вашем распоряжении довольно большой выбор из игровых компаний, которые несмотря ни на что остаются в РФ. И в этом списке есть и ААА компании, выпускающие по-настоящему крутые и амбициозные проекты, и огромное количество мобильных разработчиков. Статью прикреплю ниже:
Будущим Game QA хочется сказать: “Коллеги, вы на верном пути. Вас ждет крайне интересное время и не менее интересный карьерный путь. В общем количестве IT проектов доля игровых неуклонно растет и ваша специальность всегда будет востребована. Ваша задача крайне проста: держать руку “на пульсе” современных технологий и инструментов тестирования и разработки, а также не забывать наслаждаться процессом. В качестве бонуса делимся записью вебинара от OTUS по теме: "Основы тестирования игр".