Советы от QA-менеджера Crytek по тестированию игр, которые требуют регулярного обновления.
Чем дольше живёт проект — тем критичнее случайные баги. Внезапно появившиеся ошибки могут оттолкнуть значительную часть аудитории. QA-менеджер Crytek Евгений Скачков поделился на конференции Games Gathering 2016 опытом контроля качества проекта Warface, разработанного киевским филиалом компании.
Warface — онлайн free-to-play-шутер. Практически пять лет игра находится на стадии оперирования и больше восьми лет — в разработке. Это самый большой free-to-play-шутер на территории СНГ. Три года назад мы поставили официально зарегистрированный рекорд Гиннесса — 145 тысяч пользователей в онлайне на одном сервере.
Если посчитать по всем территориям, PCU (peak concurrent users) больше — около 200 тысяч человек. Ежедневно в игру заходят около 700 тысяч уникальных пользователей. Каждый год мы выдаём около 12 крупных обновлений.
Как происходит разработка обычного, «коробочного» продукта? Программисты и дизайнеры что-то создают, придумывают креативы, прототипируют и в какой-то момент решают, что игра готова. Её нужно протестировать. Что-то они проверяют своими силами, но этого недостаточно. Собираются QA-команды, и начинается «zerg rush».
Хочу настроить джобы для запуска тестов на разных стендах.
Настройки (адреса, логины, пароли и т.д. - довольно большой список) хранятся в properties-файле.
Какое решение я вижу сейчас:
Генерить properties с помощью windows команды на этапе перед сборкой (pre-steps)
Проблема: отсутствует шаг pre-steps в настройке джоба. Я видела, что на других проектах этот шаг есть в настройках. А что нужно для появления этого шага, я не знаю (наверное, какой-то плагин дженкинс?)
Модуль регистрации / восстановления пароля реализован с помощью API. Регистрация восстановления пароля и регистрации будет производиться с помощью SMS. Но модуль отправки SMS не реализован. Поэтому для получения кодов подтверждения регистрации и смены пароля необходимо использовать инструмент для тестирования web-сервисов - SOAP UI.
Работа с API производится с помощью следующих методов.
GetSmsRegCode используется для получения кода для регистрации. Параметр: Phone [string]. Get запрос.
GetSmsRegPassword используется для получения пароля при регистрации. Параметр: Phone [string] . Get запрос.
GetSmsForgetCode используется для получения кода для восстановления пароля (затем код вводится в соответствующее поле в приложении). Параметр: Phone [string]. Get запрос.
GetSmsForgetPassword используется для получения нового сгенерированного пароля (вызывается после GetSmsForgetCode ). Параметр: Phone [string]. Get запрос.
GetSmsNewPhoneCode. Используется для получения кода подтверждения смены номера телефона. Параметр: Phone [string]. Get запрос.
SetOrderStatus используется для установки статуса заказа. Параметры: Order [int] | Status [int] (1 – processing, 2 – confirmed, 3 – completed, 4 – canceled, 5 – hooky). Post запрос.
Проектной документации нет.
На знакомство с инструментом тестирования Soap UI отведено 4 часа.