Dobički:
- Sposobnost razumevanja slojev funkcionalnega, regresijskega, robnega primera in preskusnih trkov ter izdelave testnih scenarijev in seznamov robnih primerov z umetno inteligenco
- Sposobnost pospeševanja odpravljanja napak s pisanjem samodejne preskusne kode z umetno inteligenco in ekstrahiranjem vzorcev v dnevniku in analizi zrušitev
- Biti sposoben razumeti, da diagnoza napake umetne inteligence ni dokaz, temveč hipoteza, vzrok je treba dokazati z dnevniki in reprodukcijo ter pomembnost ponovljivosti poročila o napaki.
Ko je igra izdana, jo igralci igrajo na načine, ki si jih razvijalec ni predstavljal: zataknejo se v stene, izkoriščajo inventar, dosežejo nemogoča mesta, sprožijo zrušitve. Zagotavljanje kakovosti (QA — zagotavljanje kakovosti); Je proces sistematičnega testiranja igre pred izdajo ter iskanje in odpravljanje napak (hroščev), zrušitev, nestabilnosti in slabih izkušenj. To je eden najbolj delovno intenzivnih, a kritičnih členov v proizvodnji iger. Umetna inteligenca pospeši preverjanje kakovosti na številnih točkah: ustvarjanje testnih primerov, analiza poročil o napakah, pregled dnevnika, samodejno pisanje testne kode, odpravljanje napak in izboljšanje proizvodnih korakov. Toda umetna inteligenca ne nadomesti intuicije človeškega preizkuševalca in ocene občutka igre.
V tej enoti se boste naučili uporabljati AI pri zagotavljanju kakovosti in odpravljanju napak; Naučili se boste načrtovanja testnega scenarija, analize dnevnika, samodejnega pisanja testa in discipline poročanja o napakah.
Plasti QA in mesto AI
QA je večplasten. Funkcionalno testiranje: ali funkcija deluje (ali se vrata odprejo, ali se snemanje obremeni). Regresijsko testiranje: ali je nova sprememba pokvarila tisto, kar je prej delovalo? Preizkušanje robnih primerov: neobičajni vnosi (ponastavitev inventarja, dva ključa hkrati, mejne vrednosti). Preizkušanje zmogljivosti/zrušitev: ali je igra stabilna. Preizkus igranja/izkušnje: zabaven, intuitiven. AI je močan v prvih štirih: generiranje scenarijev, seznam robnih primerov, pisanje testne kode, analiziranje dnevnikov. Zadnja - izkušnja - pripada človeku.
Potek QA korak za korakom:
- Ustvari testne primere (funkcionalni in robni seznam primerov z AI).
- Napišite avtomatizirano testiranje (koda za ponavljajoča se preverjanja).
- Zaženi in zbiraj (napake dnevnika, dnevniki, zrušitve).
- Analizirajte (preglejte dnevnik in vzorec napak z AI).
- Poročilo in preverjanje (jasno, ponovljivo poročilo o napakah; testni popravek).
Namig: Težko je najti robne primere, ker oblikovalec igra svojo igro "prav". Vprašajte AI "kaj bi igralec poskusil, če bi želel zlomiti ta sistem?" Seznam izkoriščanj in robnih primerov.
Samodejno testiranje: ponavljanje prepustite stroju
Ročno preizkušanje istih stvari v vsaki izdaji je naporno in nagnjeno k napakam. Avtomatizirano testiranje ta preverjanja postavi v kodo: ali funkcija vrne pravilen rezultat ob vsakem klicu, ali je sistem v pričakovanem stanju. Unity in Unreal ponujata okvire za testiranje; AI je hiter pri pisanju teh testov. To je še posebej dragoceno za regresijo: če sprememba pokvari nekaj, kar je prej delovalo, se test obarva rdeče. Preglejte teste, ki jih izvaja umetna inteligenca, in se prepričajte, da preverjajo, kaj je resnično smiselno – prazen test je slabši kot brez testa.
Pozor: pri odpravljanju napak AI včasih ustvari izmišljeno razlago kot "mogoči vzrok" (halucinacija). Ne sprejmite vzroka napake samo zato, ker vam je tako povedal AI; Dokažite vzrok z beleženjem, reprodukcijo in testiranjem. Napačna diagnoza zamuja pri iskanju prave.
Reprodukcija: srce odpravljanja napak
Prva zahteva za odpravo napake je njena zanesljiva reprodukcija. Napake, opisane kot "se zgodi včasih", ni mogoče popraviti, ker ne morete preveriti, ali je popravek deloval. Torej je najbolj dragoceno delo pri odpravljanju napak zožitev natančnih pogojev, pod katerimi se pojavi hrošč (kateri koraki, katera situacija, kateri čas). AI pomaga to zožiti: navedete lahko simptome in delne korake razmnoževanja ter rečete "predlagajte pogoje in strategijo zoževanja, ki bi lahko sprožila to vedenje." Toda dejansko naredite zoženje z izvajanjem igre; AI ustvarja hipoteze, vi jih odpravite.
Zlasti napake, povezane s časom (stanje tekmovanja) in stanjem pomnilnika, so zahrbtne; ti se pojavijo samo v določenem zaporedju ali obremenitvi. Za takšne napake je ključnega pomena, da v dnevnik dodate informacije o časovnem žigu in stanju; AI lahko analizira ta bogat dnevnik in vidi vzorec (»napaka se vedno zgodi, ko se ta dva dogodka zgodita pred kratkim«). Ne pozabite na zlato pravilo odpravljanja napak: najprej razumeti, nato popraviti. Popravek brez razumevanja prikrije napako, vendar je ne reši in pogosto ustvari novo napako drugje.
trije mini kovčki
1. primer – iskanje robnih primerov. V igri RPG je ekipa preizkusila sistem inventarja v "normalnem" igranju in menila, da je soliden. Umetni inteligenci so rekli "poskusite vdreti v ta popis" in ustvarili 30 robnih scenarijev; 4 od teh so bile resnične napake (0 delitev teže predmeta, istočasno za enkratno uporabo). Popravljeno pred objavo.
2. primer – Analiza dnevnika je odpravila zrušitev. Igra se je naključno zrušila; dnevniki zrušitev so bili na stotine vrstic. Ko je umetna inteligenca dobila dnevnike in vprašala za vzorec, je bilo razkrito, da je do zrušitve vedno prišlo pri določenem prehodu scene in nizkem pomnilniku. S tem namigom je programer odkril puščanje pomnilnika; Stopnja zrušitev je padla na nič.
Primer 3 – Vrnitev po napačni diagnozi. Programer je zaupal razlagi umetne inteligence, da je "to napako povzročila ta funkcija" in se z njo ukvarjal pol dneva; rezultatov ni bilo. Ko je znova razjasnil in zabeležil proizvodne korake, je bila napaka na povsem drugem mestu. Lekcija: Diagnostika AI je hipoteza, ne dokaz.
Štiri predloge za kopiranje
1) Generacija robnega primera/scenarija izkoriščanja:
Vaša vloga: zlonamerni QA tester. Opisujem naslednji sistem: [sistem, pravila]. Naloga: naštejte 20 scenarijev robnih primerov, ki bodo poskušali zlomiti, izkoristiti ali pahniti ta sistem v nepričakovano stanje. Za vsakega: kaj poskusiti, pričakovan rezultat, možna napaka.
2) Samodejno pisanje testa:
Motor: [Unity 2022.3 / Unreal 5.3]. Testno ogrodje: [navedite]. Napišite avtomatizirane teste za naslednjo funkcijo/sistem: [opis/koda]. Vključite normalen primer, omejen primer in napačen vnos. Prepričajte se, da vsak test preveri nekaj resnično pomembnega; Pisanje praznih/nesmiselnih testov.
3) Analiza dnevnika/zrušitve:
Spodaj so dnevniki zrušitev/napak igre: [dnevnik]. Naloga: označite ponavljajoče se vzorce, pogoste pogoje (scena, spomin, čas) in možne temeljne vzroke. Vsak vzrok predstavite kot "hipotezo, ki jo je treba dokazati"; govori jasno. Povejte mi tudi, kako preveriti.
4) Pojasnilo poročila o napakah:
Naj bo naslednje nejasno poročilo o napaki jasno in ponovljivo: [neobdelano poročilo]. Izhod: naslov, reprodukcija po korakih, pričakovan rezultat, dejanski rezultat, pogostost, okolje. Če manjkajo informacije, navedite, katere informacije so potrebne.
Šibek poziv/močan poziv
Šibek poziv:
V moji igri je napaka, popravi jo.
Brez konteksta, brez dnevnika, brez reprodukcije; Umetna inteligenca je napovedna in tveganje za halucinacije je veliko.
Močan poziv:
V moji igri Unity 2022.3 je napaka: inventar se včasih podvoji, ko igralec izvede hitro shranjevanje-nalaganje. Reprodukcija: [koraki]. Sorodna koda: [paste]. Dnevnik: [prilepi]. Naloga: navedite možne temeljne vzroke kot hipoteze, ki jih je treba dokazati, navedite, kako preveriti in možno rešitev za vsako. Izmislite si neobstoječ vzrok; Če niste prepričani, mi sporočite.
Reprodukcija, koda, dnevnik in zahteva "predstavi kot hipotezo" naredijo diagnozo zanesljivo.
Tabela plasti QA
plast
Kaj testira?
Prispevek AI
človeški delež
funkcionalno
Ali funkcija deluje?
Skripta, testna koda
Odločitev o sprejemu
regresija
Je stara stvar pokvarjena?
samodejni test
Odločitev o obsegu
skrajni primer
nenavaden vnos
Izdelava scenarijev
prioriteta
Zrušitev/zmogljivost
odločnost
Analiza dnevnika
Potrditev temeljnega vzroka
Izkušnje
zabava, intuicija
omejeno
popolnoma človeško
Pogoste napake
- Samo preizkušam "normalno" igranje. Edge kovčki eksplodirajo po sprostitvi.
- Napačna diagnoza AI kot dokaz. Zakaj je dokazano z dnevnikom in testiranjem.
- Pisanje praznih avtomatiziranih testov. Nesmiselno testiranje daje iluzijo zaupanja.
- Nejasno poročilo o napaki. Napake, ki je ni mogoče ponoviti, ni mogoče popraviti.
- Preskok regresijskega testiranja. Vsak popravek lahko povzroči nove napake.
Če povzamem
QA je disciplina, ki naredi igro pripravljeno za igralca. AI; ustvarja robne scenarije, piše avtomatizirane teste, analizira dnevnike in pojasnjuje poročila o napakah. Toda njihove diagnoze so hipoteze, ocena izkušenj je človeška in vsak popravek zahteva ponovno testiranje. Replicirajte refleks "kdo lahko to zlomi in kako" z AI; Vi zbirate dokaze.
Aplikacijska naloga
Izberite sistem iz svoje igre. Ustvarite 20 scenarijev s predlogo »generacija robnega primera/izkoriščenega scenarija« in dejansko preizkusite 5 najbolj tveganih. Ustvarite ponovljivo poročilo za napako, ki jo najdete s predlogo »Izpopolnitev poročila o napaki«.
kontrolni seznam
- [ ] Ustvaril sem robni primer z "Kdo lahko to pokvari in kako?"
- [ ] Napisal in pregledal avtomatizirano testiranje za ponavljajoča se preverjanja.
- [ ] Diagnozo AI sem obravnaval kot hipotezo in jo dokazal z dnevnikom/testom.
- [ ] Napake sem prijavil ponovljivo.
- [ ] Vsak popravek sem znova preizkusil za regresijo.