Обложка статьи «Как происходит тестирование VR программного обеспечения»

Как происходит тестирование VR программного обеспечения

Аркадий Оверин

Аркадий Оверин

технический директор компании-разработчика VR/AR-приложений «Номикс»

Глобальный спрос на качественный контент в VR растет экспоненциально. Способствует этому несколько факторов. Во-первых, рост рынка — по данным PwC, в 2019 году индустрия VR/AR составляла $46 млрд, а к 2030 году она вырастет в 30 раз и достигнет $1,5 трлн. Во-вторых, прогресс в железе — так, Oculus Quest 2 превзошел предыдущую модель по популярности у покупателей в 5 раз. И в-третьих, интерес к индустрии подогревает и внимание IT-гигантов — Apple планирует выпустить свое VR-устройство в 2022 году.

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

Механика тестирования VR/AR-приложений кардинально не отличается от тестирования остального программного обеспечения. Условно процесс можно разделить на 2 ключевые части — это проверка производительности на протяжении всего сценария и функциональное тестирование.

Проверка производительности

На этапе проверки производительности необходимо отрегулировать уровень кадровой частоты (frame per second, FPS) на протяжении всего сценария приложения. Этот показатель критически важен для VR приложений, так как его стабильный уровень обеспечивает тот самый «эффект погружения». В играх, запускаемых на ПК или консоли, кратковременная просадка FPS может остаться незамеченной, но в VR это может разрушить ощущение присутствия, а также вызвать головокружение.

Для VR-приложений золотой стандарт на гарнитуре Oculus Quest FPS 90. Однако, все платформы размещения VR-контента, кроме Oculus Store, не требуют сурового соответствия гайдлайнам, и поэтому допускают контент, который не обязуется соблюдать стабильный fps или иметь определенные правила взаимодействия с пользователем, модерируется только спорный контент, который и так подпадает под общие правила игровых площадок.

При тестировании можно проверять уровень вручную или с помощью алгоритма.

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

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

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

Функциональное тестирование

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

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

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

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

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

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

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

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