Јединице
1. Увод у вештачку интелигенцију у развоју игара: улоге, границе, верификација, ауторска права и етика 2. Прототип и механички дизајн: брза итерација од идеје до језгра за игру 3. НПЦ понашање и системи дијалога: вештачка интелигенција која оживљава лик 4. Процедурално генерисање садржаја (ПЦГ): ниво, мапа, потрага и наратив 5. Средства и визуелна продукција: концепт уметности, 2Д/3Д и текстура 6. Продукција звука, музике и ефеката: Чувени свет игре 7. Генерисање кода и интеграција мотора: Унити (Ц#) и Унреал (Блуепринт/Ц++) 8. Баланс игре, симулација и економија: поштена игра са бројевима 9. Осигурање квалитета (КА), отклањање грешака и аутоматизовано тестирање 10. Ауторска права, оригиналност, лиценца и етика: садржај који се може објавити и одговоран 11. Скроз радни ток, интеграција производне линије, управљање и услуга уживо
Јединица 9 / 11

Осигурање квалитета (КА), отклањање грешака и аутоматизовано тестирање

Добици:

  • Способност разумевања функционалних, регресијских, рубних слојева и тестова на крах и прављење тестних сценарија и листа ивица случајева помоћу вештачке интелигенције
  • Способност убрзавања отклањања грешака писањем кода за аутоматско тестирање са вештачком интелигенцијом и издвајањем образаца у анализи евиденције и пада
  • Будући да смо у стању да разумемо да дијагноза грешке вештачке интелигенције није доказ већ хипотеза, узрок се мора доказати евиденцијама и репродукцијом, а значај извештаја о грешци је поновљив.

Када се игра објави, играчи је играју на начине које програмер није замислио: заглави се у зидовима, искоришћавају инвентар, стижу до немогућих места, изазивају падове. Осигурање квалитета (КА — осигурање квалитета); То је процес систематског тестирања игре пре објављивања и проналажења и поправљања грешака (бугова), рушења, нестабилности и лоших искустава. Ово је једна од најинтензивнијих, али критичних карика у производњи игара. АИ убрзава КА у многим тачкама: генерисање тест случајева, анализа извештаја о грешкама, преглед дневника, аутоматско писање кода теста, отклањање грешака и пречишћавање корака производње. Али вештачка интелигенција не замењује интуицију и процену осећаја игре код људи који тестирају.

У овој јединици ћете научити како да користите АИ у КА и отклањању грешака; Научићете дизајн сценарија теста, анализу дневника, аутоматско писање тестова и дисциплину извештавања о грешкама.

Слојеви КА и место АИ

КА је вишеслојан. Функционално тестирање: да ли функција функционише (да ли се врата отварају, да ли се учитава снимање). Регресионо тестирање: да ли је нова промена разбила оно што је раније функционисало? Тестирање ивица случаја: необични улази (ресетовање инвентара, два кључа одједном, граничне вредности). Тестирање перформанси/пада: да ли је игра стабилна. Тест игре/искуства: забаван, интуитиван. АИ је јак у прва четири: генерисање сценарија, листање рубних случајева, писање кода за тестирање, анализа дневника. Последње — искуство — припада човеку.

КА ток корак по корак:

  1. Генеришите тест случајеве (функционалне и ивице листе случајева са АИ).
  2. Напишите аутоматизовано тестирање (код за понављајуће провере).
  3. Покрени и сакупљај (грешке евиденције, евиденције, падове).
  4. Анализирајте (испитајте дневник и образац грешака са АИ).
  5. Пријавите и проверите (јасан, поновљив извештај о грешци; исправка теста).
Савет: Тешко је пронаћи ивичне случајеве јер дизајнер игра своју игру „како треба“. Питајте АИ "шта би играч покушао да жели да разбије овај систем?" Наведите експлоатације и рубне случајеве.

Аутоматско тестирање: оставите понављање машини

Ручно тестирање истих ствари у сваком издању је заморно и подложно грешкама. Аутоматско тестирање ставља ове провере у код: да ли функција враћа тачан резултат сваки пут када се позове, да ли је систем у очекиваном стању. Унити и Унреал нуде оквире за тестирање; АИ је брз у писању ових тестова. То је посебно вредно за регресију: ако промена поквари нешто што је раније функционисало, тест постаје црвени. Прегледајте тестове које АИ производи, пазећи да провере шта је заиста смислено - празан тест је гори од не теста.

Опрез: У отклањању грешака, АИ понекад даје измишљено објашњење као „вероватан узрок“ (халуцинације). Не прихватајте узрок грешке само зато што вам је АИ тако рекао; Докажите узрок евидентирањем, репродукцијом и тестирањем. Погрешна дијагноза одлаже проналажење правог.

Репродукција: срце отклањања грешака

Први захтев за исправљање грешке је да се она поуздано репродукује. Грешка описана као „понекад се дешава“ не може да се исправи јер не можете да проверите да ли је исправка функционисала. Дакле, највреднији посао отклањања грешака је сужавање тачних услова под којима се грешка јавља (који кораци, која ситуација, који тајминг). АИ помаже да се ово сузи: можете дати симптоме и делимичне кораке репродукције и рећи „предложите услове и стратегију сужавања који би могли да изазову ово понашање“. Али ви заправо радите сужавање покретањем игре; АИ генерише хипотезе, ви их елиминишете.

Грешке које се тичу времена (стање трке) и меморије су посебно подмукле; они се јављају само у одређеном низу или оптерећењу. За такве грешке, кључно је додати временску ознаку и информације о статусу у дневник; АИ може анализирати овај богат дневник и видети образац („грешка се увек дешава када се ова два догађаја недавно десе“). Запамтите златно правило отклањања грешака: прво схватите, а затим поправите. Исправљање без разумевања сакрива грешку, али је не решава и често ствара нову грешку негде другде.

три мини кофера

Случај 1 — Потрага за ивичним случајевима. У РПГ-у, тим је тестирао систем инвентара у "нормалном" игрању и мислио да је солидан. Имали су АИ да каже „покушај да разбије овај инвентар“ и генерисали су 30 сценарија крајњих случајева; 4 од њих су биле праве грешке (0 подела предмета по тежини, истовремена једнократна употреба). Исправљено пре објављивања.

Случај 2 — Анализа дневника је решила пад. Игра се насумично рушила; евиденције пада су биле стотине редова. Када је вештачка интелигенција добила евиденцију и затражила образац, откривено је да је до пада увек долазило при одређеној транзицији сцене и малој меморији. Са овим трагом, програмер је открио цурење меморије; Стопа пада је пала на нулу.

Случај 3 — Повратак са погрешне дијагнозе. Програмер је веровао објашњењу вештачке интелигенције да је „ова грешка изазвана овом функцијом“ и петљао је са тим пола дана; резултати нису изашли. Када је поново разјаснио и забележио производне кораке, грешка је била на сасвим другом месту. Поука: Дијагностика АИ је хипотеза, а не доказ.

Четири шаблона за копирање

1) Генерисање Едге цасе/експлоатационог сценарија:

Ваша улога: злонамерни КА тестер. Описујем следећи систем: [систем, правила]. Задатак: наведите 20 крајњих сценарија који ће покушати да разбију, искористе или доведу овај систем у неочекивано стање. За сваки: шта покушати, очекивани исход, могућа грешка.

2) Аутоматско писање теста:

Мотор: [Унити 2022.3 / Унреал 5.3]. Оквир за тестирање: [наведите]. Напишите аутоматизоване тестове за следећу функцију/систем: [опис/код]. Укључите нормалан случај, гранични случај и неисправан унос. Уверите се да сваки тест верификује нешто заиста значајно; Писање празних/бесмислених тестова.

3) Анализа евиденције/пада:

Испод су евиденције пада/грешке игре: [лог]. Задатак: означите понављајуће обрасце, уобичајене услове (сцена, меморија, тајминг) и могуће основне узроке. Представите сваки узрок као „хипотезу коју треба доказати“; говори јасно. Такође ми реците како да проверим.

4) Појашњење извештаја о грешци:

Учините следећи нејасни извештај о грешци јасним и поновљивим: [необрађени извештај]. Излаз: наслов, репродукција корак по корак, очекивани резултат, стварни резултат, учесталост, окружење. Ако недостају информације, наведите које информације су потребне.

Слаби промпт / Јаки промпт

Слабо обавештење:

Постоји грешка у мојој игри, поправи је.

Без контекста, без дневника, без репродукције; АИ је предиктивни и ризик од халуцинација је висок.

Снажан упит:

Постоји грешка у мојој игри Унити 2022.3: инвентар се понекад удвостручи када играч изврши брзо учитавање. Репродукција: [кораци]. Повезани код: [налепи]. Дневник: [налепи].Задатак: навести могуће узроке као хипотезе које треба доказати, дати како да се верификују и могуће исправке за сваки. Измислити непостојећи узрок; Ако нисте сигурни, јавите ми.

Репродукција, шифра, евиденција и захтев „присутни као хипотеза“ чине дијагнозу поузданом.

Табела КА слојева

слој

Шта тестира?

АИ допринос

људски удео

функционална

Да ли функција функционише?

Скрипта, тест код

Одлука о пријему

регресија

Да ли је стара ствар покварена?

аутоматски тест

Одлука о обиму

екстремни случај

необичан унос

Производња скрипта

приоритет

Пад/перформансе

одлучност

Анализа дневника

Потврда основног узрока

Искуство

забава, интуиција

ограничена

потпуно људски

Уобичајене грешке

  • Само тестирам "нормалну" игру. Рубне кућишта експлодирају након пуштања.
  • Погрешна дијагноза АИ као доказ. Зашто се доказује евиденцијом и тестирањем.
  • Писање празних аутоматизованих тестова. Бесмислено тестирање даје илузију самопоуздања.
  • Нејасан извештај о грешци. Грешка која се не може поновити не може се исправити.
  • Прескакање регресионог тестирања. Свака исправка може изазвати нове грешке.

Укратко

КА је дисциплина која чини игру спремном за играча. АИ; генерише сценарије крајњих случајева, пише аутоматизоване тестове, анализира евиденције и појашњава извештаје о грешкама. Али њихове дијагнозе су хипотезе, процена искуства је људска, а свака корекција захтева поновно тестирање. Поновите рефлекс „ко може ово да прекине и како“ помоћу вештачке интелигенције; Ви прикупљате доказе.

Задатак апликације

Изаберите систем из своје игре. Генеришите 20 сценарија помоћу шаблона „генерисање сценарија крајњег случаја/експлоатације“ и заправо тестирајте 5 најризичнијих. Направите поновљив извештај за грешку коју пронађете помоћу шаблона „Прецизовање извештаја о грешци“.

контролна листа

  • [ ] Направио сам ивични случај са „Ко може ово да разбије и како?“
  • [ ] Написао и прегледао аутоматизовано тестирање за понављајуће провере.
  • [ ] Разматрао сам АИ дијагнозу као хипотезу и доказао је лог/тестом.
  • [ ] Грешке сам пријавио поновљиво.
  • [ ] Поново сам тестирао сваку исправку за регресију.