DataLife Engine > Новости > Визитки и тестирование программного обеспечения на платформе Xbox 360
Визитки и тестирование программного обеспечения на платформе Xbox 36010 марта 2010. Разместил: deeper2k |
На моем столе стоит коробка с визитками. На них написано мое имя, стоит логотип Xbox 360, мой тэг игрока, адрес электронной почты и другая важная информация. На обратную сторону каждой из этих карточек нанесен красивый шаблон или рисунок из одной из наиболее популярных игр Xbox. Иногда во время поездок, связанных с наймом новых работников, во время различных собраний или при посещении родственников, я встречаю кого-то, кому интересно, чем я занимаюсь. В таких случаях я роюсь в своем бумажнике и достаю одну из этих карточек. Глядя на эту карточку, человек видит мое имя, классный логотип Xbox 360, мой тэг игрока и мой адрес электронной почты. После того, как он посмотрит на рисунок на обратной стороне карты, мне хочется думать, что теперь этот человек действительно впечатлен.
А затем они добираются до названия моей должности, "Software Development Engineer in Test", (с англ. тестовый инженер) и я вижу, что они немного запутались.
Видите ли, для многих других инженеров в области видео-игр или другого программного обеспечения название их должности довольно четко отражает суть их профессии. В моем случае, в Microsoft это общая инженерная дисциплина. Мы даже сокращаем ее, называя людей в этой должности просто SDET. Однако для человека со стороны, на которого я стараюсь произвести впечатление, этот заголовок не объясняет, что же именно я так хорошо умею делать. Часть "Software Development Engineer" в целом означает, что я имею какое-то отношение к производству программного обеспечения. Это правда. С толку людей сбивают слова "in Test".
Иногда я слышу: "О! Тестирование! И Xbox!? Должно быть вы тестируете игры?
Не совсем. Тестирование игры - это важная часть разработки игры, но это не то, что я делаю. Фактически, я вообще не работаю с играми в отдельности. Я работаю над платформой Xbox.
Хотя меня должно немного раздражать наличие столько запутанного названия у моей должности, на самом деле оно довольно точно передает основную тенденцию, с доказательствами которой я часто сталкивался - преобладающее заблуждение о том, что если вы хотите работать в игровой индустрии, вы должны быть либо разработчиком или дизайнером в игровой студии, либо тестером игр. Так как это довольно небольшой набор возможностей, я волнуюсь, что люди по ошибке думают, что игровая индустрия не для них, или же что эти должности являются единственным вариантом для людей, которые хотят поработать на пользу игровой индустрии.
Так что в сегодняшней своей публикации я буду рассказывать о двух вещах:
Платформа Xbox
Неигровые сценарии и системное программное обеспечение
Инструменты разработчика игр
Служебное программное обеспечение
Помимо тех команд разработчиков, о которых я уже говорил, есть и другие группы, все вместе составляющие команду Xbox. Они включают (но не ограничиваются) команду инженеров аппаратного обеспечения консоли, команду разработчиков дополнений, команду поддержки разработчиков, операционную группу, которая обслуживает сервисы и машины, на которых они работают, а также команды, занимающиеся разработкой дополнительных функций платформы, таких как Netflix для Xbox 360.
Достижения - пример функций платформы
Прежде всего, платформа обязана обеспечивать положительный опыт работы для разработчиков игр, которые работают над играми, использующими достижения. Так, частью Xbox 360 SDK является инструмент, который разработчики игр используют для описания и определения их игровых достижений. В дополнение к этому комплект разработчика содержит программные библиотеки, которые разработчики игр включают в каждую игру для того, чтобы при достижении игроком определенного момента, игра давала консоли указание наградить игрока соответствующим достижением. Функция достижений также имеет сценарии использования для конечных пользователей. В дополнение к функционалу Compare Games (сравнение вашего списка игр с играми других пользователей консоли) основного меню, достижения доступны для конечных пользователей и из других областей консоли, сообщая нам с их помощью об очередном разблокированном достижении.
Другой стороной функции достижений, непосредственно взаимодействующей с конечными пользователями, является ее интеграция с программным обеспечением сервиса Xbox LIVE. Например, когда вы используете основное меню или сайт Xbox.com для сравнения игр с вашим другом, консоль или сайт xbox.com просят сервис Xbox LIVE узнать список достижений других пользователей и отослать их назад, чтобы ваша консоль или ваш ПК могли отобразить этот список.
Сделав достижения превосходной функцией для пользователей и разработчиков, люди из команды разработчиков платформы внесли большой вклад в улучшения процесса использования консоли пользователями, охватывающий сотни игр.
SDET
В целом, SDET призваны обеспечить высокое качество программного обеспечения и сервисов платформы, о которых я говорил выше. Другими словами, SDET служат своего рода адвокатами для клиентов - обычно это конечные пользователи, или команды партнеров, или разработчики игр. Работая в тесном сотрудничестве с другими членами команд разработчиков функций (программными менеджерами и инженерами по разработке программного обеспечения), SDET используют их знание программного обеспечения, чтобы сделать этот продукт лучше. Ладно, а что вы понимаете под словом "лучше"?
Критерии релиза
Автоматизированное и ручное тестирование
Например, для функции Friends простым тестовым случаем может быть следующий сценарий:
Для тестирования библиотек консоли, которые мы предоставляем разработчикам игр, SDET пишут тестовые приложения, которые запускаются на консолях разработчиков для проверки того, будет ли библиотека вести себя так, как надо. Эти тестовые приложения используют библиотеку точно так же, как ее будут использовать игры. Для тестирования программного обеспечения, которое будет выполняться на серверах в дата-центре, SDET пишут инструменты тестирования, которые симулируют активность одной или нескольких консолей или веб-браузеров. Разрабатывая и тестируя эти инструменты, команда тестеров может определить, насколько продукт соответствует критериям релиза.
В идеале множество тестовых случаев охватывается с помощью написания тестового программного обеспечения, как я уже писал выше. Мы называем такие тестовые случаи "автоматизированными". Однако, также бывает необходимо протестировать продукт вручную. Иногда временные или технические ограничения не позволяют SDET создать автоматические средства проверки для определенных сценариев, так что для этих случаев приходятся выполнять проверку вручную. Естественно, что в дополнение к автоматизированным и ручным тестовым случаям, за которые он или она несут ответственность, любой любящий свою работу SDET должен потратить на использование продукта столько же времени, сколько потратит на это потребитель. Это еще одно важное средство для поиска дефектов, проведения дискуссий в рамках команды и определения качества продукта. В дополнение к непосредственному тестированию продукта, многие SDET также создают инструментарий написания программ и фреймворки, которые могут позволить другому SDET работать более эффективно. Если те или иные сценарии сложно автоматизировать, команда SDET может решить эту проблему путем создания технологии, которая поможет в автоматизации сценария. Кроме того, команды SDET могут работать с инструментарием над созданием фреймворков, чтобы унифицировать процесс создания отчетов о результатах теста, благодаря чему команда может более точно оценить результаты тысяч тестов.
Регистрация ошибок Однако мы все можем согласиться, что это что-то плохое.
Когда люди, работающие с программным обеспечением, говорят слово "ошибка", обычно они подразумевают под этим что-то вроде "Эй, здесь что-то работает не правильно, и мы будем стараться отследить источник проблемы, пока не решим ее". Часто ошибки не являются просто дефектами кода, как можно было ожидать. Ошибка может выражаться в отсутствии связи между людьми, определяющими сценарии работы продукта, или в работе, которая просто не была закончена.
Как только ошибка была обнаружена, SDET расследует ее возможные причины, находит разработчика, который может быть ответственен за появление ошибки и с помощью внутренней системы распределения работ, назначает этой ошибке человека, который ответственен за ее исправление. Многие SDET будут работать совместно с этим человеком, обсуждая и отыскивая лучший способ по устранению данной проблемы. Этот процесс регистрации, исследования и поручения ошибок, наряду с окончательной проверкой факта устранения ошибки, означает, что SDET работают с техническими деталями широкого набора функций определенного продукта. Поэтому многие SDET очень хорошо осведомлены о технических деталях некоторых функций продукта.
Управление высококачественным программным обеспечением
Арбитражное тестирование - пример усложненного теста программного обеспечения
Очень часто бывает так, что само тестовое ПО оказывается более интересным, чем проблема с продуктом, которую SDET пытается решить. Хорошим примером здесь является функция, которую я тестировал на первых этапах своей карьеры - арбитраж (Arbitration). Арбитраж - это способ, с помощью которого консоль и сервис обрабатывают и подтверждают счет многопользовательских матчей в сервисе Xbox LIVE. Логика продукта очень проста - каждая участвующая в матче консоль сообщает о результатах матча сервису Xbox LIVE. Сервис исследует эти результаты, и, если обнаруживаются какие-то аномалии, сервис принимает за истинный результат тот, который был передан большинством консолей. Такие результаты заносятся в таблицу рекордов этой игры каждого игрока.
Хотя код данного продукта не тривиален, он менее сложен, чем реализация полной проверки его работы в автоматическом режиме. Команда тестеров должна была создать код, который позволил бы тестерам описать тестовые случаи и затем отправить соответствующие инструкции на несколько консолей в одно и то же время, что напоминает работу разработчиков игр. Тестовые консоли синхронно входили в систему под своими учетными записями, использовали функцию создания онлайн-матчей для создания и присоединения к многопользовательской игре, генерировали счет матча, использовали функцию арбитража для отправки результатов на сервис, после чего проверяли, чтобы консоль и сервис сделали именно то, что от них ожидали в этой тестовой ситуации.
Это произошло на ранних этапах моей карьеры и показало мне, что SDET решают интересные и сложные проблемы с помощью программного обеспечения. Надеюсь, что эта статья пролила свет на ту роль, которую играют люди, являющиеся членами команды разработчиков платформы Xbox, в развитии индустрии видеоигр. Кроме того, я надеюсь, что вам стало более понятно, какую важную роль играют тестеры в развитии проектов программного обеспечения Xbox и Microsoft.
Если вас заинтересовала эта тема, я приглашаю вас посмотреть открытые вакансии в нашей компании. Посмотрите на доступные предложения из области Software Engineering and Testing!
Я надеюсь, что в следующий раз, когда я буду раздавать свои визитки, я встречу меньше смущенных лиц.
Вернуться назад |