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

Test it! Тестируем, играя. Или играем, тестируя)

 Привет-привет! Календарь опять показывает пятницу, а значит настало время для рубрики Test It! В которой можно найти ответы даже на те вопросы, которые ведущие не знают :) И сегодня опять с вами я - Ира Винокурова.

К чему я сказала про то, что не знаем ответы, но публикуемся? Ах, да. Дело в том, что ни я, ни Оля Киселева, ни Таня Зинченко не являются тестировщиками игр. Вот вообще. Но что делать, если на почту пришёл вот такой вот вопрос от Сергея:

"Добрый день!
В этом году я поступил на последний курс физфака. Я бы хотел связать свою будущую деятельность с индустрией видеоигр. И я решил для начала попробовать себя тестером компьютерных/видеоигр, чтобы получше узнать, что происходит внутри индустрии.   Я понимаю, что скорее  это не Ваша специализация, но буду очень благодарен за помощь.
Насколько я понимаю обязанности тестера видеоигр точно такие же как и у тестера  ПО.  Или я ошибаюсь? Это поиск ошибок, их воспроизведение и следить за тем, чтобы они были исправлены. Но у тестировщика игр это все происходит в пределах игрового мира и ему уже необходимо смотреть за тем как работают навыки персонажей, корректно ли выполняются квесты и т.п.  Если Вы знакомы с процессом тестирования игр, можете рассказать как он происходит?
Вопрос:  если компания готова обучать, то меня могут взять без опыта? У меня за плечами только 15-и летний игровой опыт.
И существует ли какая-либо литература по тестированию видеоигр?
Заранее спасибо!"

Ну отвечать же надо? Надо. И тут на помощь приходят друзья и лучшие тестировщики в своей области. На вопрос любезно согласилась ответить Рина Ужевко - лучший тестировщик игр, которого я знаю, а также докладчик и член программного комитета конференции SQADays.
И Рина отвечает...


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Например:

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

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

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

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

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

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

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

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

Требования.

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

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

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

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

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

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



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


20 комментариев:

  1. Первый вопрос...Это ж зачем физфак для тестирования видеоигр? Ведь столько всего сложного (хотя и интересного) было вложено в студента за 5-6 лет...а в итоге физикой человек так и не займется

    ОтветитьУдалить
    Ответы
    1. Вы знаете, не ко мне этот вопрос, а к Сергею, если он появится здесь в комментариях :)

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

      Удалить
  2. 1. Физика -- великая и сложная наука.
    2. Нет, я не тот Сергей. Но тоже учился на физика.

    про тестирование игр:
    http://jnechaeva.podfm.ru/my/1/
    http://habrahabr.ru/post/114140/
    http://www.utest.com/industries-games-gaming-app-testing
    http://electronics.howstuffworks.com/video-game-tester.htm
    http://www.sloperama.com/advice/lesson5.html
    http://barbaricqa.com/blog/?p=1654
    http://inderpsingh.blogspot.ru/2010/02/how-to-test-game-software.html
    http://www.stickyminds.com/sitewide.asp?Function=edetail&ObjectType=COL&ObjectId=17918

    Полезные и интересные материалы по геймдеву:
    http://www.gamedev.ru/tags/%D0%9A%D0%A0%D0%98
    Можно искать про КРИ и записи с этой конференции, раньше там были темы про тестирование, сейчас я за геймдевом как за отраслью не слежу.

    Книги:
    http://www.amazon.com/Testing-Second-Edition-Charles-Schultz/dp/1936420163/
    http://www.amazon.com/Game-Development-Essentials-QA-Testing/dp/1435439473/
    http://www.amazon.com/How-Be-Game-Tester-ebook/dp/B007REQHPY

    Из своего опыта: если у вас нет страсти к игре\жанру игр, которые вы тестируете -- лучше не начинайте с геймдева или ищите именно нишу, которая вам понравится. :-)

    ОтветитьУдалить
  3. Этот комментарий был удален автором.

    ОтветитьУдалить
  4. Сереж, КРИ уже года 3 как конференция ни о чем.
    (Хотя мы там занимали первые места)
    Сейчас это больше рекламная акция - купите у нас игру.

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


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

    Тестирования игр, которые вы же и разрабатываете и тестирования локализации билдов - это совсем иное.

    ОтветитьУдалить
  5. Этот комментарий был удален автором.

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

    Что имеется ввиду под: "русский рынок игр" ? Игры для русских пользователей или игры русских разработчиков?

    Разница в пользовательском рынке есть. Разница в приоритетах есть. Разница в отношении к срокам -- есть. Разница в технологии тестирования -- есть ли?

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

    А производительность серьезно, до тестирования геймплея измеряется?

    ОтветитьУдалить
    Ответы
    1. русский рынок в плане игры русских разработчиков.
      для русских пользователей - это и есть локализация.
      Работала я в этой стезе, проще не придумать.
      И скучнее.(зачеркнуто)

      Разница в технологии тестирования тоже есть.

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

      Что значит производительность до геймплея?

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

      Удалить
  7. эм. Для русских пользователей -- это например игра Аллоды онлайн, Космические рейнджеры -- они делалась для русскоговорящего рынка, с учетом локализации. :)
    http://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%9A%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D0%BD%D1%8B%D0%B5_%D0%B8%D0%B3%D1%80%D1%8B,_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5_%D0%B2_%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D0%B8

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

    Не очень понял почему было взято что локализация -- это только тексты.

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

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

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

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

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


      Менять код (серверный) обычно приходится очень редко, т.к. серверные программисты пишут условно скелет, с которым потом работают геймдизайнеры.
      Они и наращивают все, что надо, и фиксят.
      Без вмешательства в сам код. Работа идет с конфигами. (их назвать кодом у меня язык не повернется)

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




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

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

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

    А тестировщики ещё могут делиться на специализации (особенно в геймдеве), и это не банальная автоматизация/ручник. Если брать пример терминологии ММО, вокруг которого вы так осторожно ходили - то это могут быть "зоны, интерфейс, персонажи, игровая механника, инстансы, монетизация, игровой магазин, клиент, оптимизация, сервер" и ещё куча подвидов. И человек, отлично разбирающийся, например, в интерфейсах, может ничерта не смыслить в игровой механнике. Да он и не обязан, если он интерфейсы на 5+ знает, то в совокупности с таким же 5+ механистом они могут скооперироваться и простестировать всё от А до Я на отлично.
    У вас, безусловно, есть богатый опыт в тестировании... Но явно не в той сфере :)

    Но статья повеселила, спасибо - поржал.

    ОтветитьУдалить
    Ответы
    1. Если Вы видели, то отвечала не я, а тестировщик, который занимается тестированием игр.
      Но я рада, что мой пост поднял вам настроение :) Это так прекрасно - улыбаться ))
      А ещё можно тут в комментариях написать то, как Вы видите тестирование игр. Это будет очень интересно, поверьте

      Удалить
    2. Напишите свой ответ на КОНКРЕТНЫЕ заданные примеры?)

      Зачем углубляться в детали строительства геймдева и видов тестировщиков в них?

      Средняя компания - это количество людей, которая вней работает - до 50.

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

      И, да, не поверите, но во многих игровых компаниях на 1 проекте 1 тестировщик.
      И пофиг что тестировать, он знает все.

      Сам геймплей отличается по себе в каждой игре, я об этом писала.

      Пишите свои статьи.
      Или хотя бы не пишите анонимно.

      С интересом почитаем.

      Удалить
    3. Вот, кстати, в тему нагрузочного тестирования в "большом" геймдеве - http://habrahabr.ru/company/mailru/blog/191378/

      Удалить
    4. Этот комментарий был удален автором.

      Удалить
    5. Не-знаю-как-вас-зовут.
      НО.

      Человек спросил С ЧЕГО НАЧАТЬ жизнь тестировщика с нуля в геймдеве.

      Ему ответили.

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

      Нагрузочное тестирование серверов проводится в каждой компании по-разному.
      Любое тестирование в любой компании проводится по-своему.
      И зависит от кучи факторов.

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

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

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

      (Без нивала, близзардов и прочих "Гигантов_и_претендующих_на_гигантов компаний в гейм-индустрии" )

      Удалить
  9. пардон, коммент выше попал не в ту ветку...

    ОтветитьУдалить
  10. Ну вообще же нечитабельный шрифт выбран для блога.

    ОтветитьУдалить
    Ответы
    1. +1 Абсолютно не читабельно.
      Чтобы прочесть сделал правой кнопкой->просмотр кода элемента->Styles->body { font: normal 15px 'Verdana', ...

      Удалить
    2. Вот видите - вы можете справиться с тем, что вам не нравится мой шрифт.
      Это же так прекрасно!

      Удалить