Единицы
1. Введение в искусственный интеллект в разработке игр: роли, границы, проверка, авторские права и этика 2. Прототип и механическое проектирование: быстрый переход от идеи к играбельному ядру 3. Системы поведения и диалога NPC: искусственный интеллект, оживляющий персонажа 4. Процедурная генерация контента (PCG): уровень, карта, квест и повествование 5. Производство ассетов и визуальных эффектов: концепт-арт, 2D/3D и текстуры 6. Производство звука, музыки и эффектов: услышанный мир игры 7. Генерация кода и интеграция с движком: Unity (C#) и Unreal (Blueprint/C++) 8. Игровой баланс, симуляция и экономика: честная игра с числами 9. Обеспечение качества (QA), отладка и автоматическое тестирование 10. Авторское право, оригинальность, лицензия и этика: публикуемый и ответственный контент 11. Комплексный рабочий процесс, интеграция производственных линий, управление и оперативное обслуживание
Единица 9 / 11

Обеспечение качества (QA), отладка и автоматическое тестирование

Прибыль:

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

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

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

Уровни контроля качества и место ИИ

Контроль качества является многоуровневым. Функциональное тестирование: работает ли функция (открывается ли дверь, загружается ли запись). Регрессионное тестирование: нарушило ли новое изменение то, что работало раньше? Тестирование на крайних случаях: необычные входные данные (сброс инвентаря, два ключа одновременно, пограничные значения). Тестирование производительности/краш: стабильна ли игра. Тест игрового процесса/опыта: веселый, интуитивно понятный. ИИ силен в первых четырех аспектах: создание сценариев, составление списка крайних случаев, написание тестового кода, анализ журналов. Последнее — опыт — принадлежит человеку.

Последовательность действий по обеспечению качества:

  1. Создавайте тестовые примеры (список функциональных и крайних случаев с помощью ИИ).
  2. Напишите автоматическое тестирование (код для повторных проверок).
  3. Запускать и собирать (журнал ошибок, логов, сбоев).
  4. Анализируйте (изучите журнал и структуру ошибок с помощью ИИ).
  5. Сообщайте и проверяйте (четкий, воспроизводимый отчет об ошибке; тестовое исправление).
Подсказка: трудно найти крайние случаи, потому что дизайнер играет в свою игру «правильно». Спросите ИИ: «Что бы попробовал игрок, если бы захотел сломать эту систему?» Перечислите эксплойты и крайние случаи.

Автоматическое тестирование: оставьте повторение машине

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

Внимание: при отладке ИИ иногда выдает вымышленное объяснение в качестве «вероятной причины» (галлюцинации). Не принимайте причину ошибки только потому, что вам так сказал ИИ; Докажите причину путем регистрации, воспроизведения и тестирования. Неправильный диагноз задерживает поиск правильного.

Воспроизведение: сердце отладки

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

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

три мини-кейса

Случай 1. Поиск крайних случаев. В ролевой игре команда протестировала систему инвентаря в «обычном» игровом процессе и сочла ее надежной. Они попросили ИИ сказать «попробуй взломать этот инвентарь» и сгенерировали 30 крайних сценариев; 4 из них были истинными ошибками (разделение весовых позиций 0, одновременная одноразовая обработка). Исправлено перед публикацией.

Случай 2. Анализ журнала позволил устранить сбой. Игра случайно вылетала; журналы сбоев состояли из сотен строк. Когда ИИ предоставили логи и запросили шаблон, выяснилось, что сбой всегда происходил при переходе конкретной сцены и нехватке памяти. Благодаря этой подсказке программист обнаружил утечку памяти; Число аварий упало до нуля.

Случай 3 — Возврат из-за неправильного диагноза. Программист поверил объяснению ИИ о том, что «эта ошибка вызвана этой функцией», и возился с ней полдня; никаких результатов не последовало. Когда он еще раз уточнил и записал этапы производства, ошибка была совсем в другом месте. Урок: Диагностика ИИ — это гипотезы, а не доказательства.

Четыре копируемых шаблона

1) Генерация крайних случаев/сценариев эксплуатации:

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

2) Написание автоматизированного теста:

Движок: [Unity 2022.3/Unreal 5.3]. Структура тестирования: [укажите]. Напишите автоматические тесты для следующей функции/системы: [описание/код]. Включите нормальный случай, предельный случай и ошибочные входные данные. Убедитесь, что каждый тест проверяет что-то действительно значимое; Написание пустых/бессмысленных тестов.

3) Анализ журналов/сбоев:

Ниже приведены журналы сбоев/ошибок игры: [журнал]. Задача: отметить повторяющиеся шаблоны, общие условия (сцена, память, время) и возможные основные причины. Представьте каждую причину как «гипотезу, которую необходимо доказать»; говорить ясно. Еще подскажите как проверить.

4) Уточнение отчета об ошибке:

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

Слабая подсказка / Сильная подсказка

Слабая подсказка:

В моей игре ошибка, исправьте ее.

Никакого контекста, никакого журнала, никакого воспроизведения; ИИ предсказательный, и риск галлюцинаций высок.

Мощная подсказка:

В моей игре на Unity 2022.3 есть ошибка: инвентарь иногда удваивается, когда игрок выполняет быстрое сохранение-загрузку. Воспроизведение: [шаги]. Связанный код: [вставить]. Журнал: [вставить]. Задача: перечислить возможные первопричины в качестве гипотез, которые необходимо доказать, указать, как проверить и возможно исправить каждую из них. Придумать несуществующую причину; Если вы не уверены, дайте мне знать.

Воспроизведение, кодирование, журнал и запрос «представить как гипотезу» делают диагноз надежным.

Таблица слоев контроля качества

слой

Что он тестирует?

Вклад ИИ

человеческая доля

функциональный

Функция работает?

Скрипт, тестовый код

Решение о приеме

регресс

Старая вещь сломалась?

автоматический тест

Решение по объему

крайний случай

необычный ввод

Производство сценария

приоритет

Сбой/производительность

решимость

Анализ журналов

Подтверждение основной причины

Опыт

развлечение, интуиция

ограниченный

полностью человеческий

Распространенные ошибки

  • Просто тестирую «нормальный» геймплей. Краевые корпуса взрываются после выпуска.
  • Принятие диагноза ИИ за доказательство. Почему доказано журналами и тестированием.
  • Написание пустых автотестов. Бессмысленное тестирование создает иллюзию уверенности.
  • Неопределенный отчет об ошибке. Невоспроизводимую ошибку исправить невозможно.
  • Пропуск регрессионного тестирования. Каждое исправление может вызвать новые ошибки.

В заключение

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

Задача приложения

Выберите систему из своей игры. Создайте 20 сценариев с помощью шаблона «Генерация сценариев крайних случаев/эксплуатации» и протестируйте 5 самых рискованных. Создайте воспроизводимый отчет об обнаруженной ошибке с помощью шаблона «Уточнение отчета об ошибке».

контрольный список

  • [ ] Я создал крайний случай с вопросом «Кто может это сломать и как?»
  • [ ] Написал и проверял автоматическое тестирование для повторяющихся проверок.
  • [ ] Я рассматривал диагноз ИИ как гипотезу и доказал ее лог/тестом.
  • [ ] Я сообщил об ошибках воспроизводимо.
  • [ ] Я повторно проверил каждое исправление на предмет регрессии.