Тестирование видеоигр, или Легкий способ попасть в геймдев
Шрифт:
А что делать, если ты не накопил тысяч игровых часов? Источниками информации, формирующими ожидания об игре, могут быть:
• более опытные коллеги, которые могут подсказать и помочь в сложной ситуации;
• эксперты индустрии, которые пишут и снимают различные игровые обзоры, из которых мы можем почерпнуть сведения об игровом продукте;
• похожие между собой игры (Doom, Quake, Unreal и т. д.);
• ранние версии игры (серии игр Diablo, Warcraft, Call of Duty и т. д.);
• общие знания (например, в области физики, химии, истории и т. д.);
• знания в области игровой разработки (например, понимание процесса создания 3D-моделей, анимации, гейм-дизайна, левел-дизайна и т. д.).
Как ты догадываешься, все вышеперечисленное
Вадим Луковатый, заместитель руководителя отдела Bytex
Профессия тестировщика игр требует уникального сочетания навыков и качеств. Среди них выделяются внимание к деталям для выявления неочевидных ошибок и багов, терпение и настойчивость, необходимые для многократного выполнения задач и обнаружения неполадок. Важны логическое мышление и аналитические способности для анализа сложных систем и предсказания потенциальных проблем, а также коммуникативные навыки для четкой документации найденных ошибок и взаимодействия с командой разработчиков. Страсть к играм значительно помогает в понимании игровых процессов и повышает мотивацию. Не менее важно умение работать в команде, гибкость и адаптивность к быстро меняющимся технологиям, инструментам и методологиям тестирования, а также знание игровых платформ и технологий для повышения эффективности тестирования.
Тут тебе пригодятся знания в следующих областях.
• Теория тестирования (нужно знать методологию, разные виды тестирования, терминологию и многое другое).
• Игровое «железо», от которого в игре зависит многое, начиная от невозможности выставить желаемый графический режим при слабой видеокарте до недостатка оперативной памяти, из-за которого игру вообще не удается запустить.
• Организация рабочего процесса и базового цикла тестирования (чтобы правильно организовать свое рабочее место в зависимости от платформы тестирования, планирования тестовых активностей, анализа рисков, проектирования тест-кейсов, применения техник тест-дизайна для оптимизации времени и т. д.).
• Инструменты тестирования (например, для поддержки и управления процессом тестирования или снятия скриншотов с экрана, записи видео или сохранения необходимой информации).
• Модели разработки (чтобы понимать место тестирования в процессе разработки).
1.2. 7 принципов и 5 мифов тестирования
А еще как дважды два ты должен знать семь принципов тестирования, которые помогут тебе выполнять свои обязанности и продуктивно общаться со всеми, кто заинтересован в твоей работе. Конечно, это не значит, что ты должен вывесить их на своем рабочем месте и повторять их как мантру ежедневно или начать свою профессиональную карьеру, поклявшись жить по этим принципам. Но по мере приобретения опыта ты будешь убеждаться в их правдивости и справедливости, что поможет тебе обобщить свой опыт и сделает выбранную профессию понятнее. Итак, вот они.
1. Тестирование демонстрирует наличие дефектов, а не их отсутствие
Это означает, что, потратив 150 часов на тестирование игры, ты все равно не сможешь сказать, что в ней нет дефектов. Как ни тяжело это признавать, но ты просто на текущий момент не нашел их. Уверен, что у тебя для этого были веские причины: не было всего нужного оборудования (во всех его многочисленных конфигурациях) или не было достаточно времени. Одним словом, гарантировать, что в игре нет багов или того, что они не появятся на каком-то оборудовании или при каких-то очень
2. Исчерпывающее тестирование недостижимо
Этот принцип логически вытекает из предыдущего. Тебе физически не хватит времени провести тестирование, которое полностью покроет весь функционал игры и все ее части во всех возможных вариантах и случаях ее использования. Такое тестирование возможно только в очень незначительном количестве тривиальных случаев. Поэтому вместо того чтобы пытаться объять необъятное, стоит научиться использовать различные подходы и методологии, чтобы, распределив силы и расставив приоритеты, сосредоточиться на максимально возможной в плане эффективности проверке. В некоторых случаях (например, когда мало времени) тестирование, основанное на анализе рисков, будет наиболее эффективным и предпочтительным.
3. Раннее тестирование сохраняет время и деньги
Большинство проектных менеджеров подтвердят, что ресурсов всегда не хватает. Не хватает квалифицированных сотрудников, необходимого аппаратного обеспечения, денег и времени, чтобы с минимумом проблем завершить проект. Они также подтвердят, что ошибка, сделанная на раннем этапе разработки, может привести к серьезным последствиям на более поздних этапах. А учитывая то, что ресурсов и так не хватает, последствия ранних ошибок могут стать катастрофическими. Одна из главных задач и одно из самых ценных умений тестировщика – понимание и обнаружение первопричин дефекта, то есть самых ранних действий, которые и привели к возникновению в игре бага. И поскольку любой проект развивается в рамках определенных стадий, то можно только представить, к каким последствиям приведет ошибка, сделанная на этапе разработки требований. Все усилия разработчиков по реализации задач, основанных на ошибочных требованиях гейм-дизайнера, будут перечеркнуты, поскольку они будут также ошибочными по определению. Есть ли выход из подобной ситуации? Конечно! Тестирование должно начинаться как можно раньше. В разработке игр – часто даже раньше разработки требований, еще на этапе концепции (идеи), а иногда и еще раньше – на этапе гипотезы, когда принимается решение о том, стоит ли вообще начинать разработку продукта на текущем этапе.
4. Кластеризация дефектов
Многие тестировщики замечают, что дефекты могут «кучковаться», как жучки, выползающие на теплый камень в солнечную погоду. Часто это объясняется тем, что определенные области игрового продукта особенно подвержены «заражению», и, обнаружив такую область, мы найдем большее количество багов, чем в других местах. Знания, где начинать поиски багов в игре, могут помочь в тех ситуациях, когда нам серьезно не хватает времени. Например, в мобильной игре мы можем начать с проверки реализации адаптации игры под разные разрешения экрана. Другой пример – проверка настроек моделей персонажей и их взаимодействия между собой.
5. Парадокс пестицида
Впервые аналогию между тестированием программного обеспечения и обработкой полей пестицидами в сельскохозяйственной практике провел Борис Бейзер еще в 1990 году. Под парадоксом он имел в виду то, что постоянное использование одного и того же набора тест-кейсов для поиска дефектов приводит к тому, что он перестает обнаруживать баги так же, как использование одних и тех же пестицидов для борьбы с вредными насекомыми. Они попросту адаптируются к яду, и он постепенно перестает на них действовать. Красивая аналогия. Но почему это происходит в действительности? Прежде всего потому, что невозможно использовать все тест-кейсы: это противоречит одному из ранее изложенных принципов тестирования. Но даже простые приложения, например «Тетрис», требуют использования довольно большого количества тест-кейсов для проверки всех возможных сценариев и комбинаций данных. Кроме того, функциональность продукта изменяется со временем, и, внося изменения в один из элементов системы, мы не можем не изменить всю систему. А раз система меняется, то следует искать новые способы обнаружения дефектов в ней. Ну и, наконец, тестировщик должен модифицировать тест-кейсы, исходя из человеческой психологии. Причем не своей, а разработчика и конечного пользователя.