Тестирование видеоигр, или Легкий способ попасть в геймдев — страница 24 из 26

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

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


Схема сертификации тестировщиков International Software Testing Qualification Board

6.2.1. Кто такие тест-аналитик и тест-дизайнер

До сих пор нет единого мнения, стоит ли разделять тест-анализ и тест-дизайн. Однако между ними есть разница.

Цель тест-аналитика – организовать процесс максимально эффективного тестирования с учетом существующих проектных ограничений (как правило, речь идет о недостатке ресурсов, в том числе временных). Для этого специалист должен:

• проанализировать пользовательские истории и продуктовые требования;

• описать в удобном виде и проанализировать объект тестирования (то есть игровой продукт);

• выбрать методы тестирования в конкретной тестовой среде;

• проанализировать тестовое покрытие;

• приоритизировать задачи тестирования.


На основе целей и задач такого специалиста я могу описать эту специализацию примерно так следующим образом.

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


Тест-аналитик – это специалист, планирующий процесс тестирования на основе анализа продукта


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

1. Тест-аналитик анализирует продукт, декомпозирует его на составляющие компоненты для лучшего понимания области тестирования и расставляет приоритеты тестирования исходя из оценки ситуации.

2. Тест-дизайнер на основании информации, полученной от тест-аналитика, разрабатывает тест-кейсы, применяя соответствующие техники тест-дизайна для оптимизации ресурсов.

3. Тестировщик проводит тестирование по уже готовым тест-кейсам и составляет отчет о дефектах.


Однако в реальности такое разделение на специализации встречается довольно редко (только в очень крупных компаниях). Поэтому зачастую анализ и дизайн выполняет один специалист. Я буду здесь называть его тест-аналитиком.

Одна из задач тест-аналитика – определить методы проведения тестирования продукта. Для этого он использует разные инструменты, облегчающие восприятие и анализ объекта тестирования, – например, интеллект-карту (mind map). Ниже представлен пример интеллект-карты для описания одного из элементов игрового продукта.

Процесс построения интеллект-карты связан с декомпозицией продукта на мельчайшие части. При этом есть важное правило декомпозиции: все объекты одного уровня, являющиеся компонентами одной системы (то есть составляющими объекта верхнего уровня), объединяет один общий признак. Например, компонент «Метательное оружие» состоит из подкомпонентов «Лук» и «Копье», а компонент «Пистолеты» – из «Walther» и «Beretta». Декомпозиция нужна для более ясной визуализации продукта и для увеличения покрытия функционала игрового продукта тестами. Описывая процесс тестирования игровых механик, мы говорили о декомпозиции игрового продукта на пользовательские истории с учетом жанровой принадлежности. Глубокая компонентная декомпозиция игры позволяет ясно увидеть объем, который нужно покрыть проверками. Глубина декомпозиции должна быть такова, чтобы четко увидеть все функциональные и нефункциональные области, требующие тестирования.


Пример части интеллект-карты


Пример декомпозиции по объективному признаку


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

Приоритизация чаще всего основывается на следующих факторах.


1. Требования заказчика (владельца продукта).

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

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


Тест-аналитик может использовать следующие методы приоритизации.

1. Оптимизация тестов (в том числе их количества).

Частично этого можно добиться, проанализировав вышеуказанные факторы и выбрав наиболее приоритетные области для покрытия, определяя, какие тесты должны выполняться прежде всего. Другой способ оптимизации – применение техник тест-дизайна. В качестве примера можно привести применение техники попарного тестирования во время проверок производительности и совместимости (P&C), где этот подход оправдан и позволяет существенно сократить время тестирования и количество тестов при незначительном сокращении области покрытия.

2. Оптимизация рабочих процессов.

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

3. Применение инструментов.

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

4. Выбор стратегии тестирования.

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

5. Применение автоматизированного тестирования.

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


После анализа несколько десятков вакансий «Тест-аналитик» у меня получился следующий список ожиданий работодателя от такого специалиста.

• Общее понимание жизненного цикла разработки ПО, особенностей разработки игр и места контроля качества в нем

• Анализ требований, технической документации и тестового покрытия

• Организация сбора и автоматизации игровых данных

• Контроль полноты покрытия требований

• Декомпозиция требований

• Оценка покрытия функционала

• Приоритизация тест-кейсов

• Знание и умение использовать техники тест-дизайна

• Составление графика тестирования

• Выявление причин пропуска инцидентов в релизных сборках

• Понимание принципов командной разработки продукта, в частности игрового

• Передача результатов и составление рекомендаций для заинтересованных лиц


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

6.2.2. Кто такой SDET

Если ты решил развивать навыки программирования, но не хочешь уходить из тестирования, твой вариант карьерного роста – SDET (Software Development Engineer in Test).

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


SDET – это разработчик, специализирующийся на тестировании


Часто такого специалиста путают с тестировщиком, занимающимся автоматизированным тестированием.

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



Другими словами, от SDET в компании, которая занимается разработкой и тестированием игровых продуктов, будут ожидать:

• понимания сути процесса тестирования и пайплайнов проекта;

• способности осуществить проверку работоспособности автотестов;

• умения разрабатывать и поддерживать тест-кейсы для автотестов;

• планирования и реализации автотестов;

• способности разрабатывать фреймворки[44] автоматизации тестирования;

• автоматизации тест-кейсов с использованием фреймворков;

• разработки вспомогательных инструментов для ручного и исследовательского тестирования;

• хорошего владения Python;

• хорошего владения C#/C++;

• помощи в устранении дефектов;

• способности настраивать базы данных;

• взаимодействия со всеми заинтересованными лицами проекта.


Как ты заметил, SDET – это суперпрокачанный QA-инженер. Он играет важную роль в обеспечении высокого качества ПО, помогает сократить время на тестирование и улучшить процесс разработки.

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

6.2.3. Кто такой тест-менеджер

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

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


Тест-менеджер (QA-менеджер) – управленец высшего звена в тестировании


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


1. Планирование и организацию тестирования, включая определение приоритетов, составление тестовых планов, оценку рисков и разработку стратегии тестирования.

Определение приоритетов тестирования – это процесс определения того, какие функции или части приложения должны быть протестированы в первую очередь.

Этот процесс включает в себя несколько шагов.

• Оценка рисков

• Анализ функциональности

• Планирование времени и других ресурсов

• Обработку обратной связи от клиентов

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


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


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

Управление процессом тестирования – планирование, контроль и координация всех этапов процесса тестирования ПО. Он включает в себя определение стратегии тестирования, создание тест-планов и тест-кейсов, управление ресурсами для тестирования, контроль качества процесса тестирования и отчетность о его результатах.

Можно кратко выделить важнейшие этапы управления процессом тестирования.

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

• Создание тест-планов и тест-кейсов. На этом этапе необходимо определить, какие тесты нужно провести, какие данные использовать и какие ожидаемые результаты. Тест-план должен быть основным документом, описывающим все процессы тестирования.

• Выбор и управление ресурсами. Необходимо определить, какие ресурсы понадобятся для тестирования, включая оборудование, программное обеспечение и персонал. Кроме того, необходимо контролировать расходы на тестирование и управлять временем.

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

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

• Управление процессом тестирования. Требует внимания к множеству деталей и умения координировать различные аспекты всего процесса тестирования.


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

Для обеспечения эффективной координации тестировщиков и разработчиков на проекте используются следующие подходы.

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

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

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

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

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

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


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

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


5. Оценка и выбор инструментов тестирования и управления тестированием.

При оценке инструментов необходимо учитывать следующие факторы.

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

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

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

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

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

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


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

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

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

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

• Четкость и краткость. Краткие предложения и параграфы облегчают чтение и понимание информации.

• Объективность: отчет не должен содержать личных мнений или предубеждений. Описываются только факты и результаты тестирования.

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

• Рекомендации: в отчете следует дать рекомендации по улучшению игры на основе результатов тестирования.

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


Ожидания работодателей к тест-менеджеру обычно включают в себя следующие.

• Опыт в области тестирования, чтобы понимать процесс тестирования и управлять им.

• Знание методологий и инструментов тестирования, чтобы выбирать наиболее подходящие для конкретного проекта.

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

• Коммуникативные навыки для взаимодействия с различными участниками проекта, такими как разработчики, бизнес-аналитики, менеджеры и клиенты.

• Аналитические способности для анализа данных тестирования и принятия решений на основе этих данных.

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

• Сертификация в области тестирования типа ISTQB, чтобы продемонстрировать свои знания и навыки в этой области.


Тест-менеджер (руководитель тестирования, QA manager) – это фактически высшая ступень в иерархии тестировщиков.

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

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

Заключение