Печалби:
- Способност за разбиране на функционални, регресионни, крайни и краш тестови слоеве и създаване на тестови сценарии и списъци с крайни случаи с изкуствен интелект
- Възможност за ускоряване на отстраняването на грешки чрез писане на автоматичен тестов код с изкуствен интелект и извличане на модели в журнал и анализ на сривове
- Да бъдеш в състояние да разбереш, че диагностицирането на грешки на изкуствения интелект не е доказателство, а хипотеза, причината трябва да бъде доказана с регистрационни файлове и възпроизвеждане, както и важността докладът за грешка да бъде възпроизводим.
Когато дадена игра бъде пусната, играчите я играят по начини, които разработчикът не е представял: засядане в стени, използване на инвентар, достигане до невъзможни места, задействане на сривове. Осигуряване на качеството (QA — осигуряване на качеството); Това е процес на систематично тестване на играта преди пускане и намиране и коригиране на грешки (бъгове), сривове, нестабилности и лоши преживявания. Това е една от най-трудоемките, но критични връзки в производството на игри. AI ускорява QA в много точки: генериране на тестови случаи, анализ на доклади за грешки, преглед на регистрационни файлове, автоматично писане на тестов код, отстраняване на грешки и прецизиране на производствените стъпки. Но AI не замества интуицията на човешкия тестер и оценката на усещането от играта.
В този модул ще научите как да използвате AI в QA и отстраняване на грешки; Ще научите дизайн на тестов сценарий, анализ на журнал, автоматично писане на тест и дисциплина за докладване на грешки.
Слоеве на QA и място на AI
QA е многопластова. Функционално тестване: работи ли функцията (отваря ли се вратата, зарежда ли се записът). Регресионно тестване: новата промяна наруши ли това, което работеше преди? Тестване на крайни случаи: необичайни входове (нулиране на инвентара, два ключа наведнъж, гранични стойности). Тестване на производителност/краш: стабилна ли е играта. Игра/тест за опит: забавен, интуитивен. AI е силен в първите четири: генериране на сценарии, изброяване на крайни случаи, писане на тестов код, анализиране на регистрационни файлове. Последното — опитът — принадлежи на човека.
Поток на QA стъпка по стъпка:
- Генериране на тестови случаи (списък с функционални и крайни случаи с AI).
- Напишете автоматизирано тестване (код за повтарящи се проверки).
- Изпълнявай и събирай (грешки в регистрационни файлове, регистрационни файлове, сривове).
- Анализирайте (разгледайте регистрационния файл и модела на грешки с AI).
- Докладвайте и проверете (ясен, възпроизводим доклад за грешка; тестова корекция).
Съвет: Трудно е да се намерят крайни случаи, защото дизайнерът играе играта си „правилно“. Попитайте AI "какво би опитал играчът, ако иска да разбие тази система?" Избройте експлойти и крайни случаи.
Автоматично тестване: оставете повторението на машината
Ръчното тестване на едни и същи неща във всяка версия е уморително и предразполага към грешки. Автоматичното тестване поставя тези проверки в код: дали дадена функция връща правилния резултат всеки път, когато бъде извикана, дали системата е в очакваното състояние. Unity и Unreal предлагат рамки за тестване; AI е бърз в писането на тези тестове. Това е особено ценно за регресията: ако промяната повреди нещо, което е работило преди, тестът става червен. Прегледайте тестовете, които AI произвежда, като се уверите, че те проверяват за това, което е наистина смислено - празният тест е по-лош от липсата на тест.
Внимание: При отстраняване на грешки AI понякога създава измислено обяснение като „вероятна причина“ (халюцинация). Не приемайте причината за грешка само защото AI ви е казал така; Докажете причината чрез регистриране, възпроизвеждане и тестване. Грешната диагноза забавя намирането на правилната.
Възпроизвеждане: сърцето на отстраняването на грешки
Първото изискване за коригиране на грешка е да се възпроизведе надеждно. Грешка, описана като „случва се понякога“, не може да бъде коригирана, защото не можете да проверите дали корекцията работи. Така че най-ценната работа по отстраняването на грешки е стесняването на точните условия, при които възниква грешката (кои стъпки, коя ситуация, какъв момент). AI помага да стесните това: можете да дадете симптомите и частичните стъпки за възпроизвеждане и да кажете „предложете условия и стратегия за стесняване, които могат да предизвикат това поведение“. Но вие всъщност правите стесняването, като стартирате играта; AI генерира хипотези, вие ги елиминирате.
Коварни са особено грешките, свързани с времето (състезание) и свързаните със състоянието на паметта; те се появяват само в определена последователност или натоварване. За такива грешки е изключително важно да добавите клеймо за време и информация за състоянието към дневника; AI може да анализира този богат дневник и да види модела („грешката винаги се случва, когато тези две събития се случат наскоро“). Запомнете златното правило за отстраняване на грешки: първо разберете, след това коригирайте. Корекция без разбиране скрива грешката, но не я решава и често създава нова грешка на друго място.
три мини калъфа
Случай 1 — Търсене на крайни случаи. В RPG екипът тества системата за инвентаризация в "нормален" геймплей и смята, че е солидна. Те накараха изкуствения интелект да каже „опитайте се да разбиете този инвентар“ и генерираха 30 крайни сценария; 4 от тях бяха верни грешки (0 разделяне на артикули с тегло, едновременна употреба). Коригирано преди публикуване.
Случай 2 — Анализът на регистрационния файл разреши срива. Една игра случайно се срива; журналите за сривове бяха стотици редове. Когато на AI бяха дадени регистрационните файлове и поиска моделът, беше разкрито, че сривът винаги се е случвал при преход на конкретна сцена и недостатъчна памет. С тази следа програмистът откри изтичането на памет; Процентът на сривовете падна до нула.
Случай 3 — Връщане след погрешна диагноза. Програмист се довери на обяснението на AI, че „тази грешка е причинена от тази функция“ и се занимаваше с нея половин ден; не излязоха резултати. Когато той изясни и регистрира производствените стъпки отново, грешката беше на съвсем друго място. Урок: Диагностиката на AI е хипотеза, а не доказателство.
Четири копируеми шаблона
1) Граничен случай/генериране на сценарий за експлоатация:
Вашата роля: злонамерен QA тестер. Описвам следната система: [система, правила]. Задача: избройте 20 крайни сценария, които ще се опитат да счупят, експлоатират или хвърлят тази система в неочаквано състояние. За всеки: какво да опитате, очакван резултат, възможна грешка.
2) Автоматизирано писане на тестове:
Двигател: [Unity 2022.3 / Unreal 5.3]. Тестова рамка: [посочете]. Напишете автоматизирани тестове за следната функция/система: [описание/код]. Включете нормален случай, ограничен случай и грешен вход. Уверете се, че всеки тест проверява нещо наистина смислено; Писане на празни/безсмислени тестове.
3) Анализ на регистрационен файл/срив:
По-долу са регистрационните файлове за сривове/грешки на играта: [дневник]. Задача: маркирайте повтарящи се модели, общи условия (сцена, памет, време) и възможни първопричини. Представете всяка причина като „хипотеза, която трябва да бъде доказана“; говорете ясно. Кажете ми също как да проверя.
4) Пояснение на доклада за грешка:
Направете следния неясен доклад за грешка ясен и възпроизводим: [суров доклад]. Изход: заглавие, възпроизвеждане стъпка по стъпка, очакван резултат, действителен резултат, честота, среда. Ако има липсваща информация, избройте каква информация е необходима.
Слаба подкана / Силна подкана
Слаба подкана:
Има грешка в играта ми, поправете я.
Без контекст, без дневник, без възпроизвеждане; AI е предсказващ и рискът от халюцинации е висок.
Мощна подкана:
Има грешка в моята игра Unity 2022.3: инвентарът понякога се удвоява, когато играчът извършва бързо запазване-зареждане. Възпроизвеждане: [стъпки]. Свързан код: [поставяне]. Регистрационен файл: [поставяне].Задача: избройте възможните основни причини като хипотези, които трябва да бъдат доказани, дайте как да проверите и възможно решение за всяка.Измислете несъществуваща причина; Ако не сте сигурни, уведомете ме.
Възпроизвеждането, кодът, дневникът и заявката „представяне като хипотеза“ правят диагнозата надеждна.
Таблица със слоеве за качество
слой
Какво тества?
Принос на AI
човешки дял
функционален
Функцията работи ли?
Скрипт, тестов код
Решение за прием
регресия
Старото счупено ли е?
автоматичен тест
Решение за обхват
краен случай
необичаен вход
Производство на сценарий
приоритет
Срив/производителност
решителност
Анализ на регистрационния файл
Потвърждение на първопричината
опит
забавление, интуиция
ограничен
напълно човешки
Често срещани грешки
- Просто тествам "нормален" геймплей. Калъфите Edge експлодират след освобождаване.
- Заблуждаване на AI диагнозата като доказателство. Защо се доказва с дневник и тестване.
- Писане на празни автоматизирани тестове. Безсмислените тестове създават илюзията за увереност.
- Неясен доклад за грешка. Невъзпроизводима грешка не може да бъде коригирана.
- Пропускане на регресионно тестване. Всяка корекция може да причини нови грешки.
В обобщение
QA е дисциплината, която прави играта готова за играча. AI; генерира крайни сценарии, пише автоматизирани тестове, анализира регистрационни файлове и изяснява доклади за грешки. Но техните диагнози са хипотези, оценката на опита е човешка и всяка корекция изисква повторен тест. Повторете рефлекса „кой може да разбие това и как“ с AI; Вие събирате доказателствата.
Задача за приложение
Изберете система от вашата игра. Генерирайте 20 сценария с шаблона „генериране на краен случай/сценарий на експлоатация“ и действително тествайте 5-те най-рискови. Създайте възпроизводим доклад за открита грешка с шаблона „Уточняване на доклада за грешка“.
контролен списък
- [] Създадох ръбов случай с „Кой може да счупи това и как?“
- [ ] Написа и прегледа автоматизирано тестване за повтарящи се проверки.
- [ ] Разгледах диагнозата на AI като хипотеза и я доказах с дневник/тест.
- [ ] Съобщих за грешки възпроизводимо.
- [ ] Тествах повторно всяка корекция за регресия.