Dobici:
- Sposobnost razumijevanja funkcionalnih, regresijskih, rubnih slojeva i slojeva testiranja sudara i izrade testnih scenarija i lista rubnih slučajeva s umjetnom inteligencijom
- Sposobnost ubrzavanja otklanjanja grešaka pisanjem automatskog testnog koda s umjetnom inteligencijom i izdvajanjem obrazaca u analizi dnevnika i pada
- Kako bismo mogli razumjeti da dijagnoza greške umjetne inteligencije nije dokaz već hipoteza, uzrok se mora dokazati zapisnicima i reprodukcijom, a važnost izvještaja o grešci je ponovljiva.
Kada igra bude objavljena, igrači je igraju na načine koje programer nije zamislio: zaglavi se u zidovima, iskorištavaju inventar, stižu do nemogućih mjesta, izazivaju padove. Osiguranje kvaliteta (QA — osiguranje kvaliteta); To je proces sistematskog testiranja igre prije objavljivanja i pronalaženja i popravljanja grešaka (bugova), padova, nestabilnosti i loših iskustava. Ovo je jedna od radno intenzivnih, ali kritičnih karika u proizvodnji igara. AI ubrzava QA u mnogim točkama: generiranje test slučajeva, analiza izvještaja o greškama, pregled dnevnika, automatsko pisanje koda testa, otklanjanje grešaka i rafiniranje koraka proizvodnje. Ali umjetna inteligencija ne zamjenjuje intuiciju i procjenu osjećaja igre kod ljudi koji testiraju.
U ovoj jedinici ćete naučiti kako koristiti AI u QA i otklanjanju grešaka; Naučit ćete dizajn scenarija testa, analizu dnevnika, automatsko pisanje testova i disciplinu prijavljivanja grešaka.
Slojevi QA i mjesto AI
QA je višeslojan. Funkcionalno testiranje: radi li funkcija (otvaraju li se vrata, opterećuje li se snimanje). Regresijsko testiranje: da li je nova promjena razbila ono što je prije funkcioniralo? Testiranje rubnih slučajeva: neobični ulazi (resetovanje inventara, dva ključa odjednom, granične vrijednosti). Testiranje performansi/crash testa: da li je igra stabilna. Test igre/iskustva: zabavan, intuitivan. AI je jak u prva četiri: generiranje scenarija, listanje rubnih slučajeva, pisanje testnog koda, analiza dnevnika. Posljednje – iskustvo – pripada čovjeku.
QA tok korak po korak:
- Generirajte test slučajeve (funkcionalni i rubni spisak slučajeva sa AI).
- Napišite automatizirano testiranje (kod za ponavljajuće provjere).
- Pokreni i prikupljaj (pogreške u evidenciji, evidencije, padove).
- Analizirajte (ispitajte dnevnik i obrazac grešaka sa AI).
- Prijavite i provjerite (jasan, ponovljiv izvještaj o grešci; ispravak testa).
Savjet: Teško je pronaći rubne slučajeve jer dizajner igra svoju igru "kako treba". Pitajte AI "šta bi igrač pokušao da želi da razbije ovaj sistem?" Navedite eksploatacije i rubne slučajeve.
Automatsko testiranje: prepustite mašini ponavljanje
Ručno testiranje istih stvari u svakom izdanju je zamorno i sklono greškama. Automatsko testiranje stavlja ove provjere u kod: da li funkcija vraća tačan rezultat svaki put kada se pozove, da li je sistem u očekivanom stanju. Unity i Unreal nude okvire za testiranje; AI je brz u pisanju ovih testova. Posebno je vrijedan za regresiju: ako promjena pokvari nešto što je prije funkcioniralo, test postaje crveni. Pregledajte testove koje AI proizvodi, uvjerite se da provjeravaju ono što je zaista značajno - prazan test je gori od ne testa.
Oprez: U otklanjanju grešaka, AI ponekad daje izmišljeno objašnjenje kao "vjerovatni uzrok" (halucinacije). Nemojte prihvatiti uzrok greške samo zato što vam je AI tako rekao; Dokažite uzrok evidentiranjem, reprodukcijom i testiranjem. Pogrešna dijagnoza odlaže pronalaženje prave.
Reprodukcija: srce otklanjanja grešaka
Prvi zahtjev da se popravi greška je da se ona pouzdano reprodukuje. Greška opisana kao "ponekad se dešava" ne može se popraviti jer ne možete provjeriti da li je ispravka uspjela. Dakle, najvredniji posao otklanjanja grešaka je sužavanje tačnih uslova pod kojima se greška javlja (koji koraci, koja situacija, koji tajming). AI pomaže da se ovo suzi: možete dati simptome i parcijalne korake reprodukcije i reći „predložite uvjete i strategiju sužavanja koji bi mogli pokrenuti ovo ponašanje“. Ali vi zapravo radite sužavanje pokretanjem igre; AI generiše hipoteze, vi ih eliminišete.
Greške koje se odnose na vrijeme (stanje utrke) i stanje memorije su podmukle; oni se javljaju samo u određenom nizu ili opterećenju. Za takve greške, ključno je dodati vremensku oznaku i informacije o statusu u dnevnik; AI može analizirati ovaj bogati dnevnik i vidjeti obrazac („greška se uvijek dogodi kada se ova dva događaja nedavno dese“). Zapamtite zlatno pravilo otklanjanja grešaka: prvo razumite, a zatim popravite. Ispravka bez razumijevanja skriva grešku, ali je ne rješava i često stvara novu grešku na drugom mjestu.
tri mini kofera
Slučaj 1 — Potraga za rubnim slučajevima. U RPG-u, tim je testirao sistem inventara u "normalnom" igranju i mislio da je solidan. Imali su AI da kaže "pokušaj razbiti ovaj inventar" i generirali su 30 scenarija krajnjih slučajeva; 4 od njih su bile prave greške (0 podjela težinskih predmeta, istovremena jednokratna upotreba). Ispravljeno prije objavljivanja.
Slučaj 2 — Analiza dnevnika je riješila pad. Igra se nasumično rušila; Dnevnici pada bili su stotine redova. Kada je AI dobio zapisnike i zatražio obrazac, otkriveno je da se pad uvijek dogodio na određenoj tranziciji scene i malo memorije. Sa ovim tragom, programer je otkrio curenje memorije; Stopa pada je pala na nulu.
Slučaj 3 — Povratak iz pogrešne dijagnoze. Programer je povjerovao objašnjenju AI-a da je "ova greška uzrokovana ovom funkcijom" i petljao je s njim pola dana; rezultati nisu izašli. Kada je ponovo razjasnio i zabilježio korake proizvodnje, greška je bila na sasvim drugom mjestu. Pouka: Dijagnostika AI je hipoteza, a ne dokaz.
Četiri šablona za kopiranje
1) Generacija scenarija Edge case/eksploatacije:
Vaša uloga: zlonamjerni QA tester. Opisujem sljedeći sistem: [sistem, pravila]. Zadatak: navedite 20 scenarija krajnjih slučajeva koji će pokušati da razbiju, iskoriste ili dovedu ovaj sistem u neočekivano stanje. Za svaki: šta pokušati, očekivani ishod, moguća greška.
2) Automatsko pisanje testa:
Motor: [Unity 2022.3 / Unreal 5.3]. Okvir za testiranje: [navedite]. Napišite automatizirane testove za sljedeću funkciju/sistem: [opis/kod]. Uključite normalan slučaj, granični slučaj i pogrešan unos. Provjerite da li svaki test potvrđuje nešto zaista značajno; Pisanje praznih/besmislenih testova.
3) Analiza dnevnika/pada:
Ispod su zapisnici padova/grešaka igre: [log]. Zadatak: označite ponavljajuće obrasce, uobičajene uslove (scena, memorija, vrijeme) i moguće uzroke. Predstavite svaki uzrok kao "hipotezu koju treba dokazati"; govori jasno. Također mi recite kako da provjerim.
4) Pojašnjenje izvještaja o greškama:
Učinite sljedeći neodređeni izvještaj o grešci jasnim i ponovljivim: [neobrađeni izvještaj]. Izlaz: naslov, reprodukcija korak po korak, očekivani rezultat, stvarni rezultat, učestalost, okruženje. Ako nedostaju informacije, navedite koje su informacije potrebne.
Slaba prompt / Jaka prompt
Slab upit:
Postoji greška u mojoj igri, popravi je.
Bez konteksta, bez dnevnika, bez reprodukcije; AI je prediktivni i rizik od halucinacija je visok.
Snažan upit:
Postoji greška u mojoj igri Unity 2022.3: inventar se ponekad udvostruči kada igrač izvrši brzo spremanje. Reprodukcija: [koraci]. Povezani kod: [zalijepi]. Zapisnik: [zalijepi]. Zadatak: navesti moguće uzroke kao hipoteze koje treba dokazati, dati kako provjeriti i moguće popravke za svaki. Izmisliti nepostojeći uzrok; Ako niste sigurni, javite mi.
Reprodukcija, šifra, zapisnik i zahtjev "prisutni kao hipoteza" čine dijagnozu pouzdanom.
QA tabela slojeva
sloj
Šta testira?
AI doprinos
ljudski udeo
funkcionalan
Da li funkcija radi?
Skripta, test kod
Odluka o prijemu
regresija
Je li stara stvar pokvarena?
automatski test
Odluka o opsegu
ekstremni slučaj
neobičan unos
Proizvodnja skripte
prioritet
Pad/performanse
odlučnost
Analiza dnevnika
Potvrda osnovnog uzroka
Iskustvo
zabava, intuicija
ograničeno
potpuno ljudski
Uobičajene greške
- Samo testiram "normalnu" igru. Rubne kućišta eksplodiraju nakon puštanja.
- Pogrešna dijagnoza AI kao dokaz. Zašto je dokazano evidencijom i testiranjem.
- Pisanje praznih automatizovanih testova. Besmisleno testiranje daje iluziju samopouzdanja.
- Nejasan izvještaj o grešci. Greška koja se ne može reproducirati ne može se ispraviti.
- Preskakanje regresijskog testiranja. Svaka ispravka može uzrokovati nove greške.
Ukratko
QA je disciplina koja čini igru spremnom za igrača. AI; generiše scenarije rubnih slučajeva, piše automatizirane testove, analizira dnevnike i pojašnjava izvještaje o greškama. Ali njihove dijagnoze su hipoteze, procjena iskustva je ljudska, a svaka korekcija zahtijeva ponovno testiranje. Ponovite refleks "ko ovo može slomiti i kako" pomoću AI; Vi prikupljate dokaze.
Zadatak aplikacije
Odaberite sistem iz svoje igre. Neka se generira 20 scenarija pomoću predloška “Edge case/exploitation scenario generation” i zapravo testirajte 5 najrizičnijih. Kreirajte reproducibilan izvještaj za grešku koju pronađete pomoću predloška "Preciznost izvještaja o greškama".
kontrolna lista
- [ ] Napravio sam rubni slučaj sa "Ko može ovo razbiti i kako?"
- [ ] Napisao i pregledao automatizirano testiranje za ponavljajuće provjere.
- [ ] Razmatrao sam AI dijagnozu kao hipotezu i dokazao je log/testom.
- [ ] Ja sam prijavio greške reproducibilno.
- [ ] Ponovo sam testirao svaku ispravku za regresiju.