пятница, 23 августа 2013 г.

О тестировании игр. Отвечаем в проекте Test it!

С чего появилась данная статья - вы найдете тут.

Тестирование видеоигр - с чего начать?

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

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

Что такое, собственно, видеоигры?

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

Комьютерная игра (она же, видеоигра) может принадлежать к одной платформе или быть мультиплатформенной.
Может быть однопользовательской и многопользовательской.
Собственно - платформа и пользователи - и есть особенность и отличие между видами игр.

Если говорить простым языком, то:
- есть игры через приставку
- есть игры на компьютере
(есть еще автоматы и прочее, но мы их рассматривать не будем)

Собственно, тестирование игр на приставках отличается от компьютерных дополнительным тестированием оборудования (сама приставка, джойстики и их виды : пистолеты, руль и прочие)

В остальном - разница незначительна.

С чего начинать?

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

Далее потребуется провести нагрузочное тестирование. Оно проводится во всех онлайн играх. Вне зависимости однопользовательские они или многопользовательские.

После всего этого, обычно начинается тестирование, непосредственно, геймплея.

Как ни странно, но это - самая сложная часть, хотя те, кто играет активно в игры - часто считают иначе.

От того на какой стадии игры вы начинаете работать - зависит очень многое.

Если это игра, которая только разрабатывается - то тестирование будет одно из двух:
1. если достаточно времени - это последовательные тесты разрабатываемого функционала, с четкой и понятной документацией. Такие тесты проходят в основном  без пожарных ситуаций (по крайней мере вначале).
Случается, что такое тестирование длится какое-то определенное время, а потом оказывается, что в сроки не укладываются, и переходят во второй вариант.
2. хаотичное тестирование кусочков функционала в случае нехватки времени, которые вот тут сделали- кинули на тест, все происходит в пожарном режиме (зачастую)  и потом все кусочки пазла нужно соединить между собой и провести еще много времени тестируя уже, казалось бы, проверенный функционал. В таком режиме сложно и  рискованно , но интересно работать. Пройдя такую “практику” все остальное будет уже не так сложно даваться.
В этом варианте тестирования может совершенно не быть времени даже на чек-лист, не говоря уже о тест-планах.

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

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

Тестируем геймплей.



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

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

Например:

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

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

Любая игра - коммерческий продукт.
Т.е. в игре существует монетизация.
А значит - она также  в приоритете.

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

Дальнейшие приоритеты расставляются в зависимости от требований.
Если это игра ПВП - то и упор нужно в тестах сделать на него.

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

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

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

Требования.

Требования к тестировщику игры - у каждого свое.
С моей точки зрения - тестировщик должен  уметь хорошо играть, и любить проект, над которым работает. Естественно, что при этом он должен знать основы и методы тестирования. Я об этом писала недавно ( 1  и 2 ).
Но в целом, отличия от тестировщика ПО - нет.
Единственное, что требования к документации в играх все же менее требовательно, чем в тестировании ПО. Хотя опять же, все зависит от руководителя и вас лично.

Учиться и работать?

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

А устроиться работать тестировщиком без опыта - можно. Сейчас имеется не одна компания, которая пришла к “опыту”, что проще обучить самим своего сотрудника, чем искать уже специалиста.
Специалистов мало, компаний много. Да и зарплата у начинающего тестировщика все же пониже, и компаниям это также выгодно.
Поищите вакансии, например, на сайте dtf.

Закругляемся.

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

P.S. 
Есть понятие тестирование разрабатываемых игр, и есть понятие тестирование локализации игр.
Вот их не нужно путать.

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

Тестирование же игры, которую разрабатывают в вашей компании - это совсем иные процессы.

Для общего кругозора можете почитать книги (Спасибо Сергею Атрощенко за ссылки)

Testing-Second-Edition-Charles-Schultz
Game-Development-Essentials-QA-Testing
How-Be-Game-Tester-ebook