Ieguvumi:
- Spēja izprast funkcionālos, regresijas, malas gadījumu un avāriju testa slāņus un izveidot testa scenārijus un malu gadījumu sarakstus ar mākslīgo intelektu
- Iespēja paātrināt atkļūdošanu, rakstot automātisku testa kodu ar mākslīgo intelektu un izgūstot modeļus žurnālu un avāriju analīzē
- Lai saprastu, ka mākslīgā intelekta kļūdu diagnoze nav pierādījums, bet gan hipotēze, iemesls ir jāpierāda ar žurnāliem un reprodukciju, un ir svarīgi, lai kļūdas ziņojums būtu reproducējams.
Kad spēle tiek izlaista, spēlētāji to spēlē tā, kā izstrādātājs nav iedomājies: iestrēgstot sienās, izmantojot inventāru, sasniedzot neiespējamas vietas, izraisot avārijas. Kvalitātes nodrošināšana (QA — quality assurance); Tas ir sistemātiskas spēles testēšanas process pirms izlaišanas un kļūdu (bugs), avāriju, nestabilitātes un sliktas pieredzes atrašana un labošana. Šī ir viena no darbietilpīgākajām, bet kritiskajām saitēm spēļu ražošanā. AI paātrina kvalitātes nodrošināšanu daudzos punktos: testa gadījumu ģenerēšana, kļūdu ziņojumu analīze, žurnālu pārskatīšana, automātiska testa koda rakstīšana, atkļūdošana un ražošanas posmu uzlabošana. Bet AI neaizstāj cilvēka testētāja intuīciju un spēles izjūtas novērtējumu.
Šajā nodaļā jūs uzzināsit, kā izmantot AI kvalitātes nodrošināšanā un atkļūdošanā; Jūs apgūsit testa scenāriju izstrādi, žurnālu analīzi, automātisko testu rakstīšanu un kļūdu ziņošanas disciplīnu.
QA slāņi un AI vieta
QA ir daudzslāņu. Funkcionālā pārbaude: vai funkcija darbojas (vai atveras durvis, vai ieraksta slodze). Regresijas pārbaude: vai jaunās izmaiņas sabojāja to, kas darbojās iepriekš? Malu gadījuma pārbaude: neparastas ievades (atiestatīt krājumus, divas atslēgas vienlaikus, robežvērtības). Veiktspējas/avārijas pārbaude: vai spēle ir stabila. Spēles/pieredzes pārbaude: jautra, intuitīva. AI ir spēcīgs pirmajos četros: scenāriju ģenerēšana, malu gadījumu uzskaitīšana, testa koda rakstīšana, žurnālu analīze. Pēdējā — pieredze — pieder cilvēkam.
Kvalitātes nodrošināšanas plūsma soli pa solim:
- Ģenerējiet pārbaudes gadījumus (funkcionālo un malu gadījumu sarakstu ar AI).
- Uzrakstiet automatizētu testēšanu (kods atkārtotām pārbaudēm).
- Palaist un apkopot (reģistrācijas kļūdas, žurnāli, avārijas).
- Analizēt (izpētiet žurnālu un kļūdu modeli ar AI).
- Ziņojiet un pārbaudiet (skaidrs, reproducējams kļūdu ziņojums; testa labojums).
Padoms: ir grūti atrast malas gadījumus, jo dizaineris spēlē savu spēli "pareizi". Pajautājiet AI: "Ko spēlētājs mēģinātu, ja viņš vēlētos izjaukt šo sistēmu?" Uzskaitiet ekspluatācijas un malas gadījumus.
Automātiskā pārbaude: atstājiet atkārtošanu mašīnai
Manuāli pārbaudīt vienas un tās pašas lietas katrā laidienā ir nogurdinoša un ar kļūdu iespējamība. Automatizētā testēšana ievieto šīs pārbaudes kodā: vai funkcija atgriež pareizo rezultātu katru reizi, kad tā tiek izsaukta, vai sistēma ir paredzētajā stāvoklī. Unity un Unreal piedāvā testēšanas ietvarus; AI ātri raksta šos testus. Tas ir īpaši vērtīgs regresijai: ja izmaiņas izjauc kaut ko, kas darbojās iepriekš, tests kļūst sarkans. Pārskatiet AI veiktos testus, pārliecinoties, ka tie pārbauda, kas ir patiesi jēgpilns — tukšs tests ir sliktāks nekā bez testa.
Uzmanību! Atkļūdošanas laikā AI dažreiz rada izdomātu skaidrojumu kā "iespējamo cēloni" (halucinācijas). Nepieņemiet kļūdas cēloni tikai tāpēc, ka AI jums to teica; Pierādiet cēloni, reģistrējot, reproducējot un pārbaudot. Nepareiza diagnoze aizkavē īstā atrašanu.
Reproducēšana: atkļūdošanas sirds
Pirmā prasība, lai novērstu kļūdu, ir tā uzticama atveide. Kļūdu, kas aprakstīta kā "dažreiz notiek", nevar novērst, jo nevarat pārbaudīt, vai labojums darbojās. Tāpēc visvērtīgākais atkļūdošanas darbs ir sašaurināt precīzus apstākļus, kādos kļūda rodas (kuras darbības, kura situācija, kāds laiks). AI palīdz to sašaurināt: varat norādīt simptomus un daļējas reprodukcijas darbības un teikt: “Ieteikt apstākļus un sašaurināšanas stratēģiju, kas varētu izraisīt šo uzvedību”. Bet jūs faktiski veicat sašaurināšanos, palaižot spēli; AI ģenerē hipotēzes, jūs tās novēršat.
Īpaši mānīgas ir kļūdas, kas saistītas ar laiku (sacīkšu stāvoklis) un ar atmiņas stāvokli; tie notiek tikai noteiktā secībā vai slodzē. Šādām kļūdām ir ļoti svarīgi žurnālam pievienot laikspiedolu un statusa informāciju; AI var analizēt šo bagātīgo žurnālu un redzēt modeli (“kļūda vienmēr notiek, kad šie divi notikumi notiek nesen”). Atcerieties atkļūdošanas zelta likumu: vispirms saprotiet, pēc tam izlabojiet. Labošana bez izpratnes slēpj kļūdu, bet neatrisina to un bieži vien rada jaunu kļūdu citur.
trīs mini futrāļi
1. gadījums — malu medības. RPG spēlē komanda pārbaudīja uzskaites sistēmu "parastā" spēlē un uzskatīja, ka tā ir stabila. Viņi lika AI teikt "mēģināt uzlauzt šo inventāru" un ģenerēja 30 malas scenārijus; 4 no tām bija patiesas kļūdas (0 svara vienības sadalīšana, vienlaikus vienreizēja lietošana). Labots pirms publicēšanas.
2. gadījums — žurnāla analīze atrisināja avāriju. Spēle bija nejauši avārija; avāriju žurnālos bija simtiem līniju. Kad AI tika doti žurnāli un tika lūgts paraugs, atklājās, ka avārija vienmēr notika konkrētas ainas pārejas laikā un maz atmiņas. Izmantojot šo pavedienu, programmētājs atrada atmiņas noplūdi; Avāriju biežums nokritās līdz nullei.
3. gadījums — atgriešanās no nepareizas diagnozes. Kāds programmētājs uzticējās mākslīgā intelekta skaidrojumam, ka "šo kļūdu izraisa šī funkcija", un pusi dienas lāpīja ar to; nekādi rezultāti neiznāca. Kad viņš vēlreiz noskaidroja un reģistrēja ražošanas posmus, kļūda bija pavisam citā vietā. Nodarbība: AI diagnostika ir hipotēzes, nevis pierādījumi.
Četras kopējamas veidnes
1) Edge gadījuma/ekspluatācijas scenārija ģenerēšana:
Jūsu loma: ļaunprātīgs kvalitātes nodrošināšanas testētājs. Es aprakstu šādu sistēmu: [sistēma, noteikumi]. Uzdevums: uzskaitiet 20 malas scenārijus, kas mēģinās salauzt, izmantot vai novest šo sistēmu neparedzētā stāvoklī. Katram: ko mēģināt, sagaidāmais rezultāts, iespējamā kļūda.
2) Automatizēta testa rakstīšana:
Dzinējs: [Unity 2022.3 / Unreal 5.3]. Testa ietvars: [norādīt].Rakstiet automatizētus testus šādai funkcijai/sistēmai: [apraksts/kods].Ietveriet parasto reģistru, ierobežojuma gadījumu un kļūdainu ievadi.Pārliecinieties, vai katrs tests pārbauda kaut ko patiesi nozīmīgu. Tukšu/bezjēdzīgu testu rakstīšana.
3) žurnālu/avāriju analīze:
Tālāk ir norādīti spēles avāriju/kļūdu žurnāli: [žurnāls]. Uzdevums: atzīmējiet atkārtotus modeļus, izplatītākos apstākļus (ainu, atmiņu, laiku) un iespējamos pamatcēloņus. Katru cēloni norādiet kā "pierāda hipotēzi"; runāt skaidri. Pastāstiet man arī, kā pārbaudīt.
4) Kļūdu ziņojuma precizējums:
Padariet šādu neskaidru kļūdu ziņojumu skaidru un reproducējamu: [neapstrādāts ziņojums]. Rezultāts: nosaukums, pakāpeniska reproducēšana, sagaidāmais rezultāts, faktiskais rezultāts, biežums, vide. Ja trūkst informācijas, norādiet, kāda informācija ir nepieciešama.
Vāja uzvedne / spēcīga uzvedne
Vāja uzvedne:
Manā spēlē ir kļūda, izlabojiet to.
Bez konteksta, bez žurnāla, bez reprodukcijas; AI ir paredzama, un halucināciju risks ir augsts.
Spēcīga uzvedne:
Manā Unity 2022.3 spēlē ir kļūda: inventārs dažkārt dubultojas, kad spēlētājs veic ātru saglabāšanas ielādi. Reproducēšana: [soļi].Saistītais kods: [ielīmēt]. Žurnāls: [ielīmēt].Uzdevums: uzskaitiet iespējamos pamatcēloņus kā pierādāmas hipotēzes, norādiet, kā pārbaudīt un iespējamos labojumus katram. Izveidojiet neesošu cēloni; Ja neesat pārliecināts, dariet to man zināmu.
Reproducēšana, kods, žurnāls un pieprasījums "uzrādīt kā hipotēzi" padara diagnozi ticamu.
QA slāņu tabula
slānis
Ko tas pārbauda?
AI ieguldījums
cilvēka daļa
funkcionāls
Vai funkcija darbojas?
Skripts, testa kods
Lēmums par uzņemšanu
regresija
Vai vecā lieta ir saplīsusi?
automātiskā pārbaude
Lēmums par darbības jomu
ekstrēms gadījums
neparasta ievade
Skriptu veidošana
prioritāte
Avārija/veiktspēja
apņēmība
Žurnāla analīze
Pamatcēloņa apstiprinājums
Pieredze
izklaide, intuīcija
ierobežots
pilnīgi cilvēcisks
Biežas kļūdas
- Vienkārši pārbaudu "normālu" spēli. Malu korpusi pēc atbrīvošanas eksplodē.
- Kļūdaina AI diagnoze kā pierādījums. Kāpēc to pierāda žurnāls un testēšana.
- Tukšu automatizētu testu rakstīšana. Bezjēdzīga pārbaude rada pārliecības ilūziju.
- Neskaidrs kļūdu ziņojums. Neatkārtojamu kļūdu nevar labot.
- Regresijas pārbaudes izlaišana. Katrs labojums var radīt jaunas kļūdas.
Rezumējot
QA ir disciplīna, kas padara spēli gatavu spēlētājam. AI; ģenerē malas gadījumu scenārijus, raksta automatizētus testus, analizē žurnālus un precizē kļūdu ziņojumus. Bet viņu diagnozes ir hipotēzes, pieredzes novērtējums ir cilvēcisks, un katra korekcija prasa atkārtotu pārbaudi. Atkārtojiet refleksu "kas to var lauzt un kā" ar AI; Jūs savācat pierādījumus.
Lietojumprogrammas uzdevums
Izvēlieties sistēmu no savas spēles. Izveidojiet 20 scenārijus, izmantojot veidni “edge case/exploitation scenario generation”, un faktiski pārbaudiet 5 riskantākos. Izveidojiet reproducējamu ziņojumu par atrasto kļūdu, izmantojot veidni “Kļūdu ziņojuma precizēšana”.
kontrolsaraksts
- [ ] Es izveidoju malas lietu ar "Kas un kā to var salauzt?"
- [ ] Uzrakstīja un pārskatīja atkārtoto pārbaužu automātisko testēšanu.
- [ ] Es uzskatīju AI diagnozi par hipotēzi un pierādīju to ar log/testu.
- [ ] Es ziņoju par kļūdām reproducējami.
- [ ] Es atkārtoti pārbaudīju katru labojumu, lai noteiktu regresiju.