Перевод книги «Game QA & Testing». Часть 6

Перевод книги «Game QA & Testing». Часть 6

Продолжение перевода книги по тестированию игр. Эта часть также получилась объемной и довольно насыщенной информацией — в ней подробно разбираются категории багов, используемая в работе документация и работа с багтрекинговыми системами.

Предыдущая часть здесь:

Глава 4. Планируй свою стратегию. Категории багов, инструменты и документация.

Принимающие решения.

Задолго до того как «прогремел гром» и появилось тестирование — были приняты некоторые очень важные решения. Давайте поближе посмотрим кто обычно принимает эти решения. Лягушонок Кермит как-то сказал знаменитое «Не так и просто быть зеленым». Также непросто быть боссом. В этом разделе мы попытаемся описать роли продюсера, QA менеджера, лида тестировщиков и неформального лида. Так как игровая индустрия стремительно развивается, временами сложно отследить кто именно что делает.

QA тестировщики в NCsoft.
QA тестировщики в NCsoft.

QA в процессе планирования.

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

Brandon Adler, QA Lead, Obsidian Entertainment

Продюсер.

Продюсер месяцами (возможно и годами) выполняет надзорную роль за игрой во время разработки. «Главный по срокам” и “Мастер бюджета» — продюсер — будет первым защитником студии от жадного издателя или первым, кто уволит ту же студию, если они завалят сдачу проекта. Когда игра наконец готова к тестированию, продюсер протягивает руку QA менеджеру и запускает процесс.

QA менеджер.

Когда игра готова к тестированию, продюсер передает ее QA менеджеру — тому, кого возможно недавно наняли или перебросили с другого проекта. QA менеджер оценивает ситуацию и рассматривает несколько вопросов:

  • Насколько игра большая? «Размер» игры — для больших консолей или портативных, консолей или ПК — помогает QA менеджеру определиться, какие типы производственного тестирования необходимы и какой размер команды QA требуется на проекте.
  • Сколько у нас в запасе времени? Сколько есть времени или срок выхода игры — помогут QA менеджеру разработать расписание, бесчеловечное или нет. QA менеджер может планировать тестирование на основе информации о сроках, сфокусировавшись на каждом этапе.
  • Как много у нас денег? Без денег не нанять тестировщиков. В MMO без денег не будет и открытого бета-тестирования. В некстген проекте, в особенности если он большой и с фокусом на мультиплеер, как Halo, это может означать меньше времени и человеческих ресурсов на полировку игры.
  • На каких платформах тестируем? Если игра выходит только на консолях, тестирования на совместимость можно избежать. Если игра мультиплатформенная (к примеру выходит на DS, PSP, Xbox 360, PS3 и ПК), тогда нужны очень большие команды. QA менеджер обычно подбирает лида тестировщиков на каждую платформу.

QA менеджеры не живут жизнью рок звезд, они невоспетые герои QA, «волшебники», скрытые за сценой. Если вы потратите время на общение с ними — вы поймете, что они знают очень много о тестировании.

«Дешевая газировка никогда не повредит»: обязанности QA менеджера.

Как у QA менеджера, моей основной обязанностью было обеспечивать рабочую обстановку для сотрудников, чтобы работа выполнялась качественно. Поощрение взаимодействия и способность людей чувствовать себя комфортно при обращении к руководителю с проблемами или решениями — имеет жизненно важное значение, когда требуется обеспечить успешную работу подразделения. Попытки распознать личностный рост и успешность персонала поддерживают мотивацию на должном уровне, как и высокий уровень морали. Ничто так не уронит степень работоспособности подразделения, как сплетни и упавший боевой дух. И наконец, очень важно держать старших сотрудников активными участниками управления подразделением и удостоверяться, что обучение персонала и контрактных сотрудников позволяет подразделению работать гладко. Дешевая газировка никогда не повредит!

Jerome Strach, QA Manager, Sony Computer Entertainment America

Лид тестировщиков.

Лид тестировщиков (lead tester, ведущий тестировщик) может помочь собрать команду из тестировщиков, обычно это один из самых талантливых и наиболее опытных сотрудников. Лиды тестировщиков делают основную работу, необходимую при начале процесса тестирования, а также отвечают за все билды, записанные и в работе — которых может быть довольно много, в зависимости от размера команды. Хотя для современных игр есть возможность записать их на жесткий диск, иногда приходится все же использовать диски. В этот момент испытываются ваши навыки, как лидера. Как вы будете разбираться со всеми этими копиями, одновременно контролируя тестировщиков? Лиды тестировщиков — обычно опытные тестировщики из других подразделений. Как только команда собрана, лид тестировщиков может решить назначить неформального лида, чтобы распределить рабочую нагрузку — так как большие команды автоматически требуют большего надзора.

Наш QA интегрирован в процесс разработки. Улучшение или дополнение не «сделано», пока отвечающий за него и QA лид не решат — добавлять его или нет.

Gordon Walton, Vice President & Studio Co-Director, BioWare Austin

Обязанности помощника QA лида.

Как помощник QA лида, я отвечал за перепроверку всех багов, отправленных моей командой — чтобы убедиться, что в них есть вся необходимая информация и ее легко понять. А также за то, что багу назначен необходимый уровень серьезности. Еще я отвечал за множество отчетов, которые я отправлял как моим непосредственным руководителям, так и руководителям компании. Я присутствовал на множестве ежедневных совещаний по различным аспектам игры. Также я отвечал за постановку задач тестировщикам по их ежедневному расписанию — с частями игры, которые необходимо протестировать. Мы тестировали каждое исправление, расширение и изменение любой игры, над которой я работал. И последнее, но не по важности — я также много тестировал непосредственно сам!

Floyd Billings, Assistant QA Lead, Sony Online Entertainment

Неформальный лид.

Неформальный лид (floor lead) — это «неофициальный» лид тестировщиков. Возможная замена, если дела идут плохо, или ассистент, если все идет хорошо. На некоторых проектах может быть несколько неформальных лидов — например, при мультиплатформенной игре, когда версии для Xbox, PlayStation и Wii тестируются одновременно. Неформальные лиды не имеют реальной власти и могут быть временными работниками (в командах временных тестировщиков). Чем они действительно должны обладать — это опытом и более глубоким пониманием процесса разработки. Поскольку неформальные лиды должны помогать с оценкой каждого тестировщика — хорошие отношения с ними помогут сохранить вам работу. Еще одна вещь, которую необходимо помнить — поначалу работа может показаться очень легкой, но на самом деле это далеко от правды. Чтобы быть эффективным неофициальным лидом, вам необходимо развивать не только технические, но и социальные навыки. Вы будете первой линией обороны при конфликтах во взаимоотношениях и персональных проблемах внутри команды. Так что сначала убедитесь, что вы с этим справитесь.

Категории багов.

Баги могут быть любых форм и размеров. Когда вы заметите баг, первая вещь, которую необходимо сделать — написать о нем. Так что если вы заметите танк в небесах, оставляющий летающий след — как минимум, запишите это. Когда вы полностью поймете этот баг, тогда уже время заполнить все о нем в базе. Вы определяете его серьезность (низкая (low), средняя (medium), высокая (high) или критическая (critical)) и его категорию. Очень важно категоризировать баг правильно. Если вы некорректно распознаете баг — вы отправите разработчиков по «ложному следу», нарушив планы и внеся непредвиденные задержки.

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

Перевод книги «Game QA & Testing». Часть 6

Визуальные (visual).

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

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

Clipping.

Clipping — это когда одни полигоны прорезают другие. Классический пример — это солдат, стоящий за закрытой дверью с оружием, которое торчит через дверь. Это часто встречалось в GoldenEye 007 (N64). Clipping также встречается в транспорте. К примеру, ноги персонажа не должны торчать сквозь джип.

Z-fighting.

В программировании координата Z отвечает за глубину. Когда встречается эта проблема — текстуры различной глубины могут перекрывать и «сражаться» (отсюда и название). Во время QA тестирования Quake 4 в лифтах командного центра часто встречался Z-fighting. Нередко дверь лифта или его стены перекрывают оригинальные текстуры окружения.

Используй движение для выявления Z-fighting.

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

Screen Tearing.

Классический визуальный баг разрыв экрана (screen tearing) — возникает, когда видеокарта не может создать кадр достаточно быстро — в результате возникает отвлекающий эффект тиринга. Обычно, происхождение этого бага — производительность, возможно из-за нехватки времени на обработку или от того, что это слишком сложно для платформы. Если разрывы экрана становятся слишком заметными, разработчики вынуждены снижать фреймрейт до уровня 30 кадров в секунду, вместо 60 — это решение «на скорую руку».

Missing textures.

Когда вы столкнетесь с пропавшими текстурами (missing textures), вы увидите белую поверхность или заглушку (картинку, которая вставляется, если игровой движок видит отсутствие текстуры). Проблема в том, что про пропавшие текстуры забывают даже когда золотой статус уже близко — и часто в игре все равно остается несколько таких. Хотя пропавшие текстуры — обычно низкоприоритетный баг, он может быть приоритезирован как «средний», если вы сталкиваетесь с ним в особо заметном месте. Если же вы столкнетесь с временной текстурой при поздней бете — внесите это как высокоприоритетный баг. Это уже серьезно.

Visible artifacts.

Графические баги могут быть низкоприоритетными, но это не значит, что они не могут быть странными или раздражающими. Визуальные артефакты (visible artifact) — обычно множество маленьких кусочков, разбросанных по экрану, которые ни к чему не присоединены. Они просто здесь — временами летают, а временами прячутся в углу.

«Блуждающие пиксели».

Луис замечал множество видимых артефактов около своего персонажа в Quake 3 в хорошо освещенном ангаре. Он называл их «блуждающие пиксели» — потому как они действительно так выглядели. Чтобы вы поняли какими сложными были эти артефакты — когда Луис двигал своего персонажа вокруг них — они пропадали. Головоломка!

Тестирование внутри игрового мира.

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

David Dawson, Environmental Artist, Snowblind Studios

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

Аудио.

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

Перевод книги «Game QA & Testing». Часть 6

Audio drop.

Разрывы звучания (audio drop) напоминают то, что вы слышите во время разговора по телефону при плохом соединении. Это как украсть слово «люблю”, из фразы “Я люблю тебя”. Вы слышите только “Я ... тебя”, что может значить “Я НЕНАВИЖУ тебя!». Но оставим разрушенные отношения. Разрывы звучания легко слышимы и очень раздражают. Вы можете пропустить важный диалог, многозначительный звук выстрела или любимый момент из песни. Однако, временами разрывы встречаются во время какофонии звуков, так что их становится сложно идентифицировать. Эти баги — самые непростые.

Skipping.

Звучащие словно на поцарапанном CD, пропуски (skipping) легко идентифицировать. В играх пропуски обычно следуют за провалами частоты кадров. Это хороший признак проблем с производительностью, а не с ассетами. Если это только проблема с производительностью, единственное ваше решение — записать их как «производительность» (читайте описание проблем производительности ниже в этой главе). Однако же всегда есть шанс, что звуковой эффект или музыка и правда повреждены.

Distortion.

Представьте, чтобы захватили вражеский флаг, но вместо «Отлично, командир», звуковая дорожка слышится как утка, говорящая с британским акцентом, которую еще и душат. Это баг искажения (distortion). Как и пропуски, искажения могут быть следствием проблем с производительностью — в особенности если CPU подвисает как раз во время воспроизведения.

Звуковое тестирование в игровой музыке и саунд дизайне.

Я руководитель департамента звука. И я работаю тесно с QA департаментом, чтобы быть уверенным — весь звуковой контент исполняется как задумывалось. Когда приходит баг репорт — я в первую очередь проверяю, не является ли причиной бага результаты работы моего подразделения. Если это так — мы правим ошибку, затем тестируем баг. Если проблема повторилась, мы разбираемся подробнее. Если проблема уже за пределами моего подразделения — мы работаем с каждым ответственным подразделением, чтобы помочь отследить проблему и адресовать ее.

Nathan Madsen, Composer & Sound Designer, Madsen Studios/NetDevil

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

Aaron Marks, Composer & Sound Designer, On Your Mark Music Productions

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

Ben Long, Composer & Sound Designer, Noise Buffet

Аудио может быть диким зверем. Множество звуковых эффектов и других аудио ассетов добавляется на поздних этапах процесса разработки (даже если звуковое подразделение включается на ранних этапах — что практически никогда не встречается на низкобюджетных платформах). Как результат — вещи, которые сами собой разумеются на больших консолях (мягкое звучание, множество каналов, бесшовные петли фонового звука) — показывают себя плохо на Nintendo DS, в вебе или на мобильных девайсах. На этих платформах все еще восьмидесятые — так что тестирование является для них более важным!

Jamie Lendino, Composer & Sound Designer, Sound For Games Interactive

Missing Sound Effect.

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

Volume Level.

Уровень звука (volume level). Если в игре имеется звуковой слайдер для каждого элемента — таких как «двигатель”, “шум дороги”, “оппоненты” и “фоновая музыка» — это не баг. Однако, если игра объединяет звуки в определенном виде — и вы не можете это изменить на экране опций — слишком тихий звуковой эффект или слишком громкая музыка — могут быть классифицированы как баги уровня звука.

Aaron Marks и Jamie Lendino о тестировании игрового аудио.

Попавший в игровую индустрию почти 10 лет назад, Aaron Marks накопил опыта в музыке и саунд дизайне на сенсорных аркадных играх, бинго и слот-машинах, компьютерных, консольных играх и более 70 онлайн казино. Аарон также писатель для Game Developer Magazine, Gamasutra.com, Music4Games.net и the Society of Composers and Lyrists. Он автор The Complete Guide to Game Audio — обширной книге по всем аспектам аудио в играх и Game Audio Development, части серии Game Development Essentials. Он написал аккредитованный курс колледжа для Art Institute Online, является членом AES Technical Committee for Games, один из организаторов Game Audio Network Guild (G.A.N.G.) и собственник On Your Mark Music Productions — где он продолжает свое стремление к непревзойденным звуковым эффектам, созданию музыки и звуков для множества проектов.

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

Aaron Marks, Composer & Sound Designer, On Your Mark Music Productions

Jamie Lendino независимый саунд дизайнер и музыкальный композитор с 10-летним опытом в игровой индустрии. Он создавал аудио для 30 игр, включая Monopoly: Here & Now, SpongeBob’s Atlantis SquarePantis: Atlantis Treasures, Elder Scrolls IV: Oblivion, Zoo Tycoon 2: Endangered Species, Mage Knight: Apocalypse и мобильной версии True Crime: New York City. Когда он не создает инопланетные звуковые эффекты и звуковые дорожки для новой композиции, он занят другими своими увлечениями: написанием книг, чтением (художественной и фантастической литературы), быстрыми машинами и астрономией.

Как представителю контрактной аудио компании — довольно часто мне необходимо участвовать в областях тестирования и QA. Если я хочу быть включен в QA и процесс тестирования — использовать мой «профессиональный слух», так сказать, и предлагать как улучшить и отполировать ассеты, которые я уже прислал — я обычно говорю об этом. Для примера, мне приятно слышать, когда клиенты говорят о созданных мной ассетах хорошо и согласуют их, но я также хочу быть уверен, что предоставленные ассеты улучшают игру насколько это возможно (значит ли это дополировать аудиоэффекты или удалить их совсем). Большие компании этот процесс передают в полностью специализированные внутренние подразделения по звуку, тогда это не проблема. Они знают, чего хотят от меня и очень точно. Но молодые и небольшие студии приветствуют, когда ты дополнительно помогаешь удостовериться, как качественно ассеты аудио интегрированы, отбалансированы и смешаны. Это может быть испытанием, если вы работаете удаленно (что часто встречается в случае звука в играх).

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

Jamie Lendino, Composer & Sound Designer, Sound For Games Interactive

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

Левелдизайн.

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

В Darkness невероятно детализированные уровни.
В Darkness невероятно детализированные уровни.

Stuck Spot.

Застревание (stuck spot) — классическое имя для классического бага. Вы можете припомнить самые первые 3D платформеры, такие как Super Mario 64 или Banjo-Kazooie. Было весело прыгать везде, исключая те ситуации, когда вы попадали между тремя деревьями и застревали. В большинстве случаев — виновник левелдизайнер. Плохая геометрия делает невозможным движение персонажа. Однако, застревания также часто встречаются в шутерах от первого лица. Вы можете найти их около углов и между коробками. Если вы наткнулись на такое, лучше загрузить предыдущее сохранение. Хуже, когда необходимо перезапускать игру или перезагружать уровень. Баги застревания — высокоприоритетные, потому что могут остановить геймплей.

Sticky Spot.

Залипание (sticky spot) — «недоразвитый родственник» застревания. Эти баги среднего приоритета, да — вы можете выбраться, просто это занимает время. Залипание может перерасти в застревание, если левелдизайнер примет неверные решения после вашего отчета. С другой стороны, баг застревания может быть понижен до залипания опытным разработчиком.

Invisible Wall.

Невидимые стены — обычно лишняя геометрия без текстуры, которая бы могла сделать ее видимой. Есть шанс, что «стена” — это потерянная геометрия предыдущей версии карты. Однако временами — невидимые стены “спроектированы». Это значит, что разработчики хотели поставить какого-то вида границу. Это очень старая техника, которая предназначена для обмана игрока, думающего, что уровень больше, чем он есть.

Не сделай NAB.
Будь уверен, что изучил необходимость невидимой стены очень хорошо, чтобы избежать NAB (когда разработчики переквалифицируют твой «баг” в “не баг» (Not a Bug)). Кстати, это значит, что вы не знаете, как делать вашу работу! (этот и другие объяснения статусов багов обсудим более детально позднее в этой главе).

Map Hole.

Дыра в карте (map hole) — это звучит весело, но на самом деле очень серьезно. Если игрок провалится через нее, иллюзия присутствия моментально разрушится. Еще хуже, когда дыры в карте неглубокие и позволяют игрокам по-читерски стрелять в других из-под карты. (Это случалось в некоторых загружаемых картах Call of Duty 3. Было огромная дыра в карте на уровне, так что многие тестировщики спрыгивали туда специально, чтобы сделать прицельный хэдшот.) Единственный способ найти все дыры в карте — пройти по каждому ее квадрату. Нет другого пути. Вот почему временами игровое тестирование больше про дисциплину и репетативные действия, а не про навыки.

Missing Geometry.

Пропавшая геометрия (missing geometry) — противоположность невидимой стены. Когда внешне стена или барьер для передвижения отображаются, но на самом деле их нет — потеряна часть геометрии. Самая распространенная вариация этого бага — «секретный проход» точно между стенами замка. (Такой был найден Луисом в Call of Duty 3, на карте Merville. Что забавно, эта пропавшая геометрия была прямо рядом с одним из флагов, так что захватить его становилось намного проще.)

Тестировщики как «убер» игроки: работа с командой дизайна.

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

John Comes, Creative Director, Uber Entertainment

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

Искусственный интеллект.

Название бага «искусственный интеллект» (ИИ) — может заставить вас подумать, что речь о том, что игровые персонажи ведут себя по-умному. На самом деле нет. Когда персонажи делают что-либо абсолютно нелогичное — например, упираются в стену в течение 5 минут — можете быть уверены, что это проблема с кодом ИИ (AI, artificial intelligence). Примеры багов ИИ включают в себя поиск пути и поведение неигровых персонажей. Давайте поближе взглянем на оба типа этих багов.

В Bioshock каждый Большой папочка толково охраняет Маленькую сестричку.
В Bioshock каждый Большой папочка толково охраняет Маленькую сестричку.

Pathfinding.

Если у вас проблема поиска пути (pathfinding) и управляемый компьютером персонаж не может найти путь по карте, у вас есть три возможные объяснения:

1). Невидимая стена преграждает ему путь.

2). Дыра в карте обрывает скрипт.

3). Ошибка ИИ.

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

Non-Player Character Behavior.

Когда ИИ работает, поведение неигрового персонажа (non-player character (NPC) behavior) должно заставлять вас поверить, что это реальный человек играет с вами в игру. Когда есть проблема с ИИ — вы точно понимаете, что персонаж управляется компьютером. Недостаточно просто пожаловаться на этот баг. Вам необходимо объяснить разработчикам, почему определенное поведение (например, утыкание в неправильную дверь лифта) выбивается из игры. Если вы создадите точное описание, разработчики оценят ваш баг с полной серьезностью и попытаются его устранить. Поведение NPC также может иметь эффект на баланс. Если вы полагаетесь на свою команду NPC в убийстве толп и толп врагов — плохая их эффективность может сделать игру слишком сложной. С другой стороны, чрезмерные усердия (или слишком высокая квалификация) помощников NPC могут сделать игру слишком простой.

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

Физика.

Поиск физических багов является частью ежедневной работы тестировщика с тех пор, как физический API (application programming interfaces) был недавно добавлен в игровые движки и инструменты. Физика в игре — это целая подсистема, одна из мощнейших. И геймплей, и анимация напрямую влияют на физический код, так как они принимают участие в физической подсистеме движка. Знание о том, как выявлять физический баги — очень желательный навык. Примеры физических багов — это разрушаемость и динамическое поведение. Давайте поближе рассмотрим оба вида багов.

Breakables.

Часто встречающаяся особенность современных игр — это разрушаемое (breakable) окружение. В Gears of War это называется «разрушаемое укрытие” и и позволяет игрокам до определенной степени защищаться от вражеского огня. Когда же урон слишком мощный, укрытие разлетается на кусочки (так называемые “разрушаемые объекты»). Теперь представьте, что объекты совершенно не разрушаются, или делают это, но осколки зависают где-то в воздухе. Это два вида багов, которые могут возникнуть при разрушении.

Half Life 2 познакомила с физикой широкий круг игроков.
Half Life 2 познакомила с физикой широкий круг игроков.

Самые сложные испытания в тестировании я получил, работая с движком Havok — создавая разрушаемое окружение в игре, над который мы работали. Мне необходимо было тестировать разрушаемость множество раз, чтобы убедиться, что оно выполняется корректно в игре.

David Dawson, Environmental Artist, Snowblind Studios

Реальная физика в сравнении с поддельной физикой.

До того, как компьютеры стали способны легко запускать физические симуляции, решением было — «подделать” их в коде. Идея была том, чтобы обманом заставить игрока подумать, что работают “реальные” физические законы. Однако GPU становятся все более сложными, да и многоядерные процессоры сражаются с ними за это звание — так что наконец стало возможным сопровождать геймплей реальным физическим движком, а не жестко прописанной физикой. Физические движки можно настроить для более “игровых» результатов, но они все равно остаются более реалистичными, чем их альтернативы. Наиболее используемые сейчас движки — это Havok и PhysX.

Dynamic Behavior.

Объекты не обязательно должны быть разрушаемыми, чтобы вести себя «странно» с точки зрения физики. В Quake 4 поддельная физика использовалась для того, чтобы двигать металлические или деревянные ящики. Они постоянно находились под напряжением, результатом которого стало неправильное динамическое поведение. Например, заставьте своего персонажа врезаться в металлический ящик на большой скорости. Ящик должен двигаться определенное количество времени, а затем остановиться. Но в Quake 4 ящик может временами продолжить двигаться. Это хороший признак того, что кое-что в физическом коде неправильно — настоящая это физика или поддельная.

Физические баги будут играть гораздо большую роль в ближайшем будущем. Новейшие игры, такие как Fracture от Lucas Arts, используют физику на полную. Франшиза Half-Life практически полагается на нее. Хорошее понимание физики старшей школьной программы и немного внимания к деталям необходимы, чтобы замечать физические баги — и направлять разработчиков в правильном направлении.

Bioshock: собираем все в одном месте.
Bioshock: собираем все в одном месте.

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

Chris Lenhart, Instructor, ITT Institute of Technology

Стабильность.

Стабильность (Stability) отсылает нас к предсказуемости кода — соответствует ли он намерениям команды разработчиков. Примеры багов стабильности включают в себя зависания, падения и баги загрузки. Давайте взглянем поближе на эти 3 примера.

Франшиза Gran Turismo фактически не содержит багов стабильности.
Франшиза Gran Turismo фактически не содержит багов стабильности.

Freeze.

Вы наверняка это видели. В один момент все идет хорошо, а затем все останавливается и ваш экран замирает. Как будто для него остановилось время, или это просто скриншот. Зависания отбирают весь контроль управления над персонажем, система не отвечает. Это и есть основная причина причина причислить зависания к критическим багам. Когда вы столкнулись с зависанием — удостоверьтесь, что вы записали или скопировали всю информацию для отладки (debug). Все, что вам удастся найти — будет спасением для бедного программиста, ответственного за его исправление.

Crash.

Падение (Crash) отличается от зависания тем, что экран становится черным. Как и при зависании, игрок теряет управление, но также и изображение. Падения не менее скверны — и классифицируются как критический баг.

Crash to Desktop.

Падение на рабочий стол (Crash to Desktop) — баг только для ПК. Он отличается от других падений двумя признаками:

1. Если игра падает, то падает на рабочий стол.

2. Игрок может потерять управление внутри игры, но операционная система все еще работает.

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


Loading.

Игровые уровни занимают какое-то количество мегабайт в памяти консоли. Когда уровень загружается — данные считываются со световой скоростью с игрового диска. Так как процесс загрузки довольно комплексный — любые ошибки в коде могут оборвать его. Баг загрузки (loading) может быть вызван любыми видами причин, начиная от отсутствующих ассетов, заканчивая скриптовой ошибкой. Он оценивается как баг высокого уровня.

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

Производительность.

Под производительностью (Performance) понимается скорость, с которой обрабатывается код на железе. Примеры багов производительности включают в себя фреймрейт, время загрузки, минимальные системные требования и баги установки. Давайте на каждый из них взглянем поближе.

В Gears of War фреймрейт тверд, как скала.
В Gears of War фреймрейт тверд, как скала.

Frame Rate.

Когда игру делают, разработчики ставят себе цель на количество кадров в секунду (фреймрейт, framerate) — какой он должен быть в игре. В первые дни существования PlayStation 3, разработчики нацеливались на 30 кадров в секунду (FPS), в то время, как игры на Xbox360 запускались на 60 кадрах. Низкий фреймрейт — это тот, что находится на значении ниже того, на которое нацелились. Так что если вы нацелились на 30 кадров в секунду, а FPS падает ниже 20 — это низкоприоритетный баг фреймрейта. Основную часть времени разработчики не беспокоятся о производительности, пока не наступит время перед бетой. Причина в том, что необходимо создать игру, а уже затем проверять производительность. Проблема такого подхода в том, что серьезные проблемы с производительностью могут быть слишком сложными, чтобы починить их в последние 2 месяца производственного процесса. Вот почему некоторые студии придерживаются прицельного фреймрейта во время производства — чтобы быть уверенными, что проблемы с производительностью будут замечены как можно раньше.

Load Time.

Хотя точная величина может различаться от игры к игре (или между платформами), долго время загрузки всегда будет проблемой. Хотя разработчики избегают возни с кодом, когда все остальное работает («работает — не трогай»), производители железа могут заставить их исправить проблемы перед выходом. Тестирование багов времени загрузки (load time) может быть ужасно утомительным. Вас могут позвать тестировать время загрузки всех уровней по множеству раз, записывая время загрузки. Другая характеристика багов загрузки — большая разница в продолжительности от раза к разу. Такие ошибки могут быть одними из самых сложных в решении.

Minimum Requirements Machine.

Требования игр на ПК включают минимальные системные требования (minimum requirements machine, min spec) — наименьшие характеристики компьютера, на котором игра будет работать. Баг минимальных системных требований создается, когда игра не работает корректно на таком компьютере. Это прописано в договорных обязательствах. Когда разработчик поставляет игру издателю — он должен быть уверен, что игра идет на минимальной системной конфигурации. Это единственный способ добраться до миллионов потенциальных покупателей, которые не обладают мощной игровой системой. Чаще всего, компьютеры минимальной конфигурации обладают GPU и CPU нижнего уровня, малым количеством памяти. Самым неудачливым тестировщикам приходится играть на компьютерах с минимальной конфигурацией — с фреймрейтом в 12 кадров в Quake!

Installation Time.

Баг времени установки (Installation Time) — это тип бага производительности потому, что это скорее всего связан с проблемой в самом установщике. Размеры игр растут, разработчики продвинулись от дискет на 1,44Мб до blu-ray дисков на 50Гб. Играм всегда необходимо время на установку, обычно около 20 минут. Однако, если игра устанавливается дольше этого времени — что-то случилось. Это не нормальный опыт — долгое время установки.

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

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

Совместимость.

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

Halo: Combat Evolved для ПК требовала тестирования на совместимость, тогда как версия для Xbox - нет.
Halo: Combat Evolved для ПК требовала тестирования на совместимость, тогда как версия для Xbox - нет.

Video Card.

Баги совместимости с видеокартой (Video Card) были очень частыми во время тестирования Quake 4. Драйвера ATI постоянно заставляли игру падать на рабочий стол. В команде тестирования различные тестировщики имели компьютеры с видеокартами Nvidia и ATI, чтобы поймать баги на них. Держите в голове, что только поддерживаемое железо тестируется. Как правило, встроенные видеокарты, как Intel GMA3100, не поддерживаются — так что не ожидайте их увидеть в лаборатории тестирования.

Controller.

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

Operating System.

Ошибка операционной системы (Operating System) довольно частое явление. Всегда будьте уверены, что пишите о проблемах с поддерживаемой операционной системой. Часто можно увидеть, как бетатестеры жалуются на проблемы с совместимостью с Vista 64, тогда как она просто не поддерживается. Хотя временами операционная система поддерживается, но игра все же не запускается — это совершенно точно баг.

Standards.

Всегда убеждайся в том, что стандарты, такие как USB и bluetooth поддерживаются. Если вы слышите моно вместо стерео, когда используете беспроводную гарнитуру — проблема может быть механической (с динамиком) или с проблемой совместимости Bluetooth. Перед тем как написать про этот баг — проверьте это устройство на другом компьютере или консоли.

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

Assassin’s Creed: стилен и отполирован.
Assassin’s Creed: стилен и отполирован.

Лично я считаю Assassin’s Creed одной из самых отполированных игр, что я видел. Геймплей интуитивен, обучение бесшовное, графика впечатляет и я не заметил ни одного бага. Кроме того, игра полностью придерживается своего стиля.

Edward Rotberg, Chief Technology Officer, Mine Shaft Entertainment

Сеть.

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

В Halo 3 невероятно отлаженный сетевой код.
В Halo 3 невероятно отлаженный сетевой код.

Failed Connection.

Ошибка соединения (Failed Connection) — это классический баг Xbox Live. Сообщение на экране может быть разным (например «connection failed,” “failed to connect,” “no connection,” “dropped connection”), но смысл всегда один и тот же: ваша консоль “не видит” или “не слышит” другие консоли. Частота появления этого бага может варьироваться от “всегда повторяется” до “временами возникает» — это важная информация, так что запишите ее обязательно.

Dropped Connection.

Скажем, консоль смогла присоединиться, но у вас все равно обрывается соединение (Dropped Connection ). В этом и есть разница с предыдущим багом. Конечно же, если вы сыграли несколько сессий без проблем с соединением, и оно неожиданно оборвалось — вы без проблем идентифицируете этот баг. Не так очевидно идентифицировать, когда вы встречаетесь с тем, что соединение обрывается сразу же после подключения. Кто-то может это описать как «не подсоединяется», но вы теперь знаете как это описать правильнее.

Unaccepted Invitation.

Баг непринятого приглашения (Unaccepted Invitation) случается только в играх, где есть приглашения в игру. Скажем, вы попросили другого тестировщика пригласить вас в игру. Вы видите приглашение и нажимаете «Принять». Однако в итоге вы остаетесь на главном экране, а не присоединились к игре своего коллеги. Эти ошибки могут стать очень каверзными по мере того, как производство приближается к бета-версии — поскольку большинство руководителей тестирования не обращают на них внимания, так как они не являются частью самой игры. Всегда помни про эти неработающие приглашения в игру.

Lag.

Все знакомы с лагами (задержками, lags). Это раздражающее ощущение, когда вы стреляете из своего оружия, а попадание засчитывается только через полсекунды. Лаг — это симптом более серьезных сетевых проблем, таких как потеря пакетов или чрезмерное использование полосы пропускания. Важно очень подробно написать отчет, когда вы столкнетесь с лагом:

Всегда такая задержка?

Когда начинается?

Пропадает ли он при начале новой игры?

Используете ли вы фаервол?

Invisible Player.

Если вы не видите другого игрока или NPC, вы познакомились с багом «невидимый игрок» (invisible player) — признаком серьезных сетевых проблем. Баг невидимого игрока может оказаться одним из самых больших ваших испытаний, потому что его часто сложно повторить или отследить. Представьте себе необходимость проверки всех игроков в каждой сессии, чтобы убедиться, что все они видны! Как и лаг, баг невидимого игрока следует задокументировать подробно. Запишите все необычное и сравните свои заметки с коллегами. Не так уж редко можно встретить игру в продаже с такими типами багов — которые починят только патчем через пару месяцев после старта продаж.

Scoring Error.

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

Онлайн игры часто требуют настройки и регулировки сетевого соединения. LANForge для этого хорошо подходит. Анализ пакетов важен с точки зрения QA, когда вы отслеживаете сетевые проблемы — и Wireshark для этого отличная утилита по хорошей цене.

Jerome Strach, QA Manager, Sony Computer Entertainment America

Неудачные соединения, обрывы соединений, непринятые приглашения, лаги, невидимые игроки и ошибки в счете — только несколько из багов сетевого соединения, с которыми вы встретитесь во время тестирования. Всегда держите в уме сетевые проблемы, когда тестируете. Даже «прекрасная» игра может пострадать от сетевых проблем.

Наши примеры багов: визуальных, аудио, левелдизайна, ИИ, физики, стабильности, производительности, совместимости и сети — включают только беглый взгляд на множество различных существующих багов, эта глава дает вам основу на будущее. Знание основных типов багов и способов их найти сделают вашу жизнь немного проще, до того, как вы однажды встретите неизвестный баг — «Лохнесское чудовище» багов, если пожелаете.

Документация.

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

Гейм дизайн документ (ГДД).

Мы упоминали гейм дизайн документ (game design document (GDD)) в главе 3. Как тестировщик, вы вероятнее всего не увидите актуальный ГДД. Лиды тестировщиков возможно, чтобы они познакомились с игрой. ГДД описывает все креативные аспекты игры и работает на все команды проекта (включая дизайн, арт, технические и звуковые отделы). Типичный ГДД содержит историю/персонажа, геймплей, интерфейс и описание уровней.

Важнейшая QA документация.

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

«Каждая выпущенная игра имеет баги и дефекты — никакая программа не безупречна.» Стабильные продукты просто так хорошо маскируют ошибки, что их трудно заметить. Лучшее, что тестировщики могут делать — это использовать материалы разработчиков так полно, как это возможно. Эти материалы и (если предоставляется) ГДД должны использоваться для тест-кейсов, чтобы убедиться в должном покрытии игры. Как эти тест-кейсы будут исполнены зависят от двух важных факторов: 1) времени, 2) ресурсов.

Jerome Strach, QA Manager, Sony Computer Entertainment America

Руководство по стилю.

Там, где ГДД описывает словами то, чего должна достигнуть игра, руководство по стилю (art style guide) (временами называемое «библией арта” («art bible»), которую необходимо четко отделять от “игровой библии», описанной в следующем разделе) иллюстрирует ее изображениями и референсами. Если ГДД упоминает церковь в маленьком французском городке, руководство по стилю содержит несколько картинок привлекательных европейских церквей. В гоночных играх руководство по стилю включает описание всех машин, включенных в игру, с картинками и спецификациями. В FPS оно иллюстрирует каждый класс оружия, который может использоваться.

Библия игры.

Библия игры (game bible) — это документ, составленный QA-менеджером или ведущим тестировщиком. Его цель — служить источником знаний для новых сотрудников. Она содержит названия карт, аббревиатуры, как уровень серьезности классифицируется на проекте и основные правила. В настоящее время, игровые библии часто загружаются на Wiki, где становятся «живой документацией».

Чек-листы.

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

Пример чек-листа тестирования игры на Xbox 360.
Пример чек-листа тестирования игры на Xbox 360.

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

Тест план.

Вскоре после начала работы над новым проектом, лид тестировщиков начинает создавать «главу всех чек-листов» — тест план (test plan). Этот документ содержит все чек-листы, содержащиеся в игре. Тест планы, используемые QA, обычно изначально предоставляются командой производственного тестирования, потому как производственная команда уже работает над игрой несколько месяцев, когда QA присоединяется к делу. Тест план должен содержать следующие разделы:

  • Описание игры
  • Функции, которые тестируются
  • Функции, которые не тестируются (если применимо)
  • Используемые техники (смотри главу 6)
  • Используемые дисциплины (смотри главу 3)
  • Описание уровней серьезности
  • Критерии прохождения/непрохождения (стандарт, установленный производителем оборудования)
  • Ожидаемые результаты и этапы тестирования
  • Задачи тестирования
  • Необходимые технологии и окружение (такие как оборудование, программное обеспечение, лаборатории)
  • Ответственность
  • Потребности в персонале и обучении
  • Расписание (должно соответствовать плану производства)
  • Процесс согласования

Подходящие для работы инструменты.

Когда создается игра, разработчикам необходимы инструменты для отслеживания задач, а также багов. Мы называем последние «баг трекеры» (bug trackers). Давайте взглянем поближе на три инструмента, которые стали стандартом индустрии: DevTrack, Bugzilla и TestTrack Pro.

DevTrack.

DevTrack компании TechExcel используется издателями и разработчиками, такими как Activision и Treyarch. Созданная в 1997, DevTrack позволяет разработчикам отслеживать каждый баг, управляя им через центральную базу данных при помощи веб-интерфейса. DevTrack особенно полезна, потому что имеет продвинутую функциональность сортировки, позволяющую искать баги также просто, как гулять по парку.

DevTrack позволяет разработчикам отслеживать каждый баг.
DevTrack позволяет разработчикам отслеживать каждый баг.

Bugzilla.

Bugzilla — это основанная на вебе багтрекинговая система с открытым исходным кодом, разработанная Mozilla Foundation в 1998. Bugzilla в чем-то похожа на DevTrack, но там где DevTrack может быть немного дороговат (как проприетарное, платное программное обеспечение), Bugzilla остается абсолютно бесплатна в использовании. Это делает ее хорошей низкобюджетной заменой DevTrack — с тем преимуществом, что Bugzilla также довольно хорошо известна.

Bugzilla - это основанная на вебе багтрекинговая система с открытым исходным кодом.
Bugzilla - это основанная на вебе багтрекинговая система с открытым исходным кодом.

TestTrack.

Разработанная Seapine Software, TestTrack Pro — это профессиональная багтрекинговая программа, широко используемая в игровой разработке. Также как и DevTrack, TestTrack Pro используется разработчиками и издателями, такими как 2K Games, Atari, Epic Games, and Sega. Некоторые находят эту программу исключительно удобной, поскольку она позволяет лидам и их помощникам получать широчайший набор отчетов.

TestTrack Pro - это профессиональная багтрекинговая программа, широко используемая в игровой разработке.
TestTrack Pro - это профессиональная багтрекинговая программа, широко используемая в игровой разработке.

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

Ниже три функции, которые в идеале должны присутствовать в программе:

- Отслеживание проблем: возможность вести журнал каждой проблемы и назначать на определенного человека, чтобы починить ее.

- Wiki: Место для выкладывания идей на обозрение, чтобы каждый мог их увидеть, изменить, а затем изменить снова, если они не работают. Эта же система работает как «память» для создания таких вещей, как тест план, которые обновляются каждый раз, когда с ними работают.

- Forum: Место для открытого общения со всей командой, или с конкретным человеком, который хочет разобраться с определенной проблемой.

Мы, конечно же, пользуемся собственной программой (Qtask) — основанной в точности по этому концепту.

Baron R.K. Von Wolfsheild, Chief Software Architect, Qtask, Inc.

«Безболезненные» багтрекеры.

Хорошая багтрекинговая система — это необходимость. Их множество, и я пользовался четыремя или пятью к этому моменту. Самое важное в таких системах — быть безболезненными для пользователей. Если никому не нравится эта система — никто ей не будет пользоваться.

Edward Rotberg, Chief Technology Officer, Mine Shaft Entertainment

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

Nathan Madsen, Composer & Sound Designer, Madsen Studios/NetDevil

Как использовать багтрекеры.

Как только вы присоединитесь к проекту, лид тестировщиков предоставит вам всю информацию, имеющую отношение к багтрекинговой системе: номер проекта, логин и пароль и все остальное, что позволит вам начать процесс. Овладейте этой информацией внимательно, потому как если вы забудете базовые понятия — вы получите статус «нуб». Давайте пробежимся по мини-обучению, как использовать DevTrack для примера.

До того, как внесете баг.

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

Когда вносите баг.

Вот короткий список шагов для внесения бага в DevTrack:

1. Зайдите в свой аккаунт, введя логин и пароль.

2. Выберите подходящий проект.

3. Поищите похожие баги. Этот шаг необходим. Надо быть уверенным, что вносите что-то новое.

4. Внесите всю необходимую информацию (такую как заголовок, серьезность, описание).

5. Прикрепите все необходимые файлы.

6. Убедитесь, что ваш баг сохранился в системе.

После внесения бага.

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

Open.

«Открытый» (Open) баг — это тот, который был недавно внесен тестировщиком. Он остается открытым, пока не будет назначен на лида.

Assigned.

«Назначенный» (Assigned) баг — за который отвечает разработчик. Баг назначен на разработчика лидом определенной команды.

Resolved / Fixed.

Когда ответственный разработчик починит баг, он меняет статус на «решено” (resolved) или “починен» (fixed).

Verified.

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

Конечные результаты.

Вам всегда необходимо нацеливаться на устранение своих багов за один заход. Перекидывание бага туда-сюда между тестировщиком и разработчиком чаще всего происходит из-за плохо написанного багрепорта. Хорошие тестировщики — как самонаводящиеся ракеты — просто делают свою работу и все. Давайте взглянем на некоторые описания «последней инстанции» багов.

Closed.

Закрытый (closed) баг — тот, что был исправлен. Здесь его путь заканчивается.

Will Not Fix (WNF).

Не будет починен (Will Not Fix (WNF)) означает, что ваш баг не настолько важен, чтобы его починить. Это обычно случай низкоприоритетных багов. Разработчики просто не имеют достаточно времени, чтобы починить все, что было отправлено — и фокусируются на багах среднего и высокого приоритета.

Not a Bug (NAB).

Описанный ранее в этой главе "Не баг"(Not a Bug (NAB)) — это незабываемый опыт. Если вы видите NAB в своем статусе — разработчики не считают, что вы нашли баг. Чтобы подлить масла в огонь, они обычно приписывают “так задумано" в разделе заметок. Слишком много NAB означают, что вы делаете свою работу не очень хорошо.

Duplicate.

Если вы плохо ищете похожие баги, перед тем, как завести новый, вы создадите дубликат (duplicate). Не стоит говорить, что если такой баг репорт попадет к разработчикам, они немедленно разозлятся или потратят время впустую, чиня одно и то же дважды. Единственный способ избежать дубликатов — тщательно искать похожие проблемы перед заведением.

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

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

4949
5 комментариев

Предыдущая часть здесь:

Хорошо бы общий тег сделать или все ссылки на ранние статьи вставлять

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

1

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

Как-то неловко оставлять багрепорты к тексту о багрепортах, но... почему бы и нет?

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

1

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