Vienetas 9 / 11

Kokybės užtikrinimas (QA), derinimas ir automatizuotas testavimas

Pelnas:

  • Gebėjimas suprasti funkcinius, regresijos, kraštinių atvejų ir avarijų testų sluoksnius ir sudaryti bandymų scenarijus bei kraštinių atvejų sąrašus naudojant dirbtinį intelektą
  • Galimybė paspartinti derinimą rašant automatinį bandomąjį kodą su dirbtiniu intelektu ir išgaunant šablonus žurnalų ir gedimų analizėje
  • Suvokiant, kad dirbtinio intelekto klaidų diagnozė yra ne įrodymas, o hipotezė, priežastis turi būti įrodyta žurnalais ir atkūrimu, o klaidos ataskaitos atkūrimo svarba.

Kai žaidimas išleidžiamas, žaidėjai žaidžia jį taip, kaip kūrėjas neįsivaizdavo: įstringa sienose, išnaudoja inventorių, pasiekia neįmanomas vietas, sukelia gedimus. Kokybės užtikrinimas (QA – kokybės užtikrinimas); Tai sistemingo žaidimo testavimo procesas prieš išleidžiant ir klaidų (klaidų), gedimų, nestabilumo ir blogos patirties radimas bei taisymas. Tai viena iš daugiausiai darbo reikalaujančių, bet svarbiausių žaidimų gamybos grandžių. AI pagreitina kokybės užtikrinimą daugelyje taškų: bandomųjų atvejų generavimas, klaidų ataskaitų analizė, žurnalo peržiūra, automatinis bandomojo kodo rašymas, derinimas ir gamybos etapų tobulinimas. Tačiau AI nepakeičia žmogaus testuotojo intuicijos ir žaidimo vertinimo.

Šiame skyriuje sužinosite, kaip naudoti AI atliekant QA ir derinant; Išmoksite testo scenarijų kūrimo, žurnalų analizės, automatinio testo rašymo ir klaidų pranešimo disciplinos.

Kokybės užtikrinimo sluoksniai ir AI vieta

QA yra daugiasluoksnė. Funkcinis testavimas: ar funkcija veikia (ar atsidaro durelės, apkrauna įrašą). Regresijos testavimas: ar naujasis pakeitimas sugriovė tai, kas veikė anksčiau? Krašto atvejo testavimas: neįprastos įvesties (iš naujo nustatyti inventorių, du klavišai vienu metu, ribinės reikšmės). Našumo / strigčių testavimas: ar žaidimas stabilus. Žaidimo eigos / patirties testas: įdomus, intuityvus. AI yra stiprus pirmuosiuose keturiuose: scenarijų generavimas, kraštinių atvejų sąrašas, testo kodo rašymas, žurnalų analizė. Paskutinė – patirtis – priklauso žmogui.

Kokybės užtikrinimo eiga žingsnis po žingsnio:

  1. Generuokite bandomuosius atvejus (funkcinių ir kraštinių atvejų sąrašas su AI).
  2. Parašykite automatizuotą testavimą (pasikartojančių patikrinimų kodą).
  3. Vykdykite ir surinkite (logo klaidos, žurnalai, gedimai).
  4. Analizuokite (išnagrinėkite žurnalą ir klaidų modelį naudodami AI).
  5. Praneškite ir patikrinkite (aiški, atkuriama klaidų ataskaita; bandomasis pataisymas).
Užuomina: sunku rasti kraštutinių atvejų, nes dizaineris savo žaidimą žaidžia „teisingai“. Paklauskite AI „ką bandytų žaidėjas, jei norėtų sulaužyti šią sistemą? Išvardykite išnaudojimus ir kraštutinius atvejus.

Automatinis testavimas: palikite kartojimą mašinai

Rankiniu būdu tikrinti tuos pačius dalykus kiekviename leidime yra varginantis ir dažnai pasitaiko klaidų. Automatinis testavimas įtraukia šiuos patikrinimus į kodą: ar funkcija pateikia teisingą rezultatą kiekvieną kartą, kai ji iškviečiama, ar sistema yra laukiamos būsenos. Unity ir Unreal siūlo testavimo sistemas; AI greitai rašo šiuos testus. Tai ypač naudinga regresijai: jei pakeitimas sulaužo tai, kas veikė anksčiau, testas tampa raudonas. Peržiūrėkite AI atliekamus testus ir įsitikinkite, kad jie patikrina, kas iš tikrųjų yra prasminga – tuščias testas yra blogesnis nei jo nebuvimas.

Atsargiai: derinant AI kartais pateikia sugalvotą paaiškinimą kaip „tikėtiną priežastį“ (haliucinaciją). Nepriimkite klaidos priežasties tik todėl, kad AI jums taip pasakė; Įrodykite priežastį registruodami, atkurdami ir išbandydami. Klaidinga diagnozė vėluoja rasti tinkamą.

Reprodukcija: derinimo esmė

Pirmas reikalavimas norint ištaisyti klaidą – patikimai ją atkurti. Klaidos, apibūdintos kaip „kartais atsitinka“, negalima ištaisyti, nes negalite patikrinti, ar pataisymas veikė. Taigi pats vertingiausias derinimo darbas yra susiaurinti tikslias klaidas atsiradimo sąlygas (kurie žingsniai, kokia situacija, koks laikas). AI padeda tai susiaurinti: galite nurodyti simptomus ir dalinio dauginimosi veiksmus ir pasakyti „pasiūlyti sąlygas ir susiaurinimo strategiją, galinčią sukelti tokį elgesį“. Bet jūs iš tikrųjų susiaurinate paleisdami žaidimą; AI generuoja hipotezes, jūs jas pašalinate.

Ypač klastingos yra klaidos, susijusios su laiku (lenktynių būkle) ir su atminties būsena; jie atsiranda tik tam tikra seka arba apkrova. Dėl tokių klaidų labai svarbu į žurnalą įtraukti laiko žymą ir būsenos informaciją; AI gali analizuoti šį turtingą žurnalą ir pamatyti modelį („klaida visada įvyksta, kai šie du įvykiai įvyksta neseniai“). Prisiminkite auksinę derinimo taisyklę: pirmiausia supraskite, tada pataisykite. Taisymas nesupratus paslepia klaidą, bet jos neišsprendžia ir dažnai sukuria naują klaidą kitur.

trys mini dėklai

1 atvejis – krašto dėklo medžioklė. RPG komanda išbandė inventoriaus sistemą „įprastu“ žaidimu ir manė, kad ji yra tvirta. Jie turėjo AI pasakyti „pabandykite nulaužti šią inventorių“ ir sukūrė 30 kraštutinių atvejų scenarijų; 4 iš jų buvo tikros klaidos (0 svorio elementų padalijimo, vienu metu vienkartiniai). Pataisyta prieš publikavimą.

2 atvejis – žurnalo analizė išsprendė avariją. Žaidimas atsitiktinai sudužo; avarijų žurnaluose buvo šimtai eilučių. Kai AI buvo pateikti žurnalai ir paprašytas šablonas, paaiškėjo, kad avarija visada įvykdavo tam tikroje scenoje ir per mažai atminties. Turėdamas šią užuominą, programuotojas rado atminties nutekėjimą; Avarijų skaičius sumažėjo iki nulio.

3 atvejis – grįžimas iš klaidingos diagnozės. Programuotojas pasitikėjo dirbtinio intelekto paaiškinimu, kad „šią klaidą sukelia ši funkcija“, ir pusę dienos tvarkėsi su ja; rezultatų nepasirodė. Kai dar kartą patikslino ir užregistravo gamybos etapus, klaida buvo visai kitoje vietoje. Pamoka: AI diagnostika yra hipotezės, o ne įrodymas.

Keturi kopijuojami šablonai

1) Krašto atvejo / išnaudojimo scenarijaus generavimas:

Jūsų vaidmuo: kenkėjiškas kokybės užtikrinimo tikrintojas. Aprašau tokią sistemą: [sistema, taisyklės]. Užduotis: išvardykite 20 kraštutinių atvejų scenarijų, kurie bandys sulaužyti, išnaudoti arba įvesti šią sistemą į netikėtą būseną. Kiekvienam: ką bandyti, laukiamas rezultatas, galima klaida.

2) Automatinis testo rašymas:

Variklis: [Unity 2022.3 / Unreal 5.3]. Bandymo sistema: [nurodyti].Parašykite automatinius šios funkcijos/sistemos testus: [aprašas/kodas].Įtraukite įprastą, ribinį atvejį ir klaidingą įvestį.Įsitikinkite, kad kiekvienas testas patvirtina kažką tikrai prasmingo; Tuščių/beprasmių testų rašymas.

3) Žurnalo / gedimų analizė:

Žemiau pateikiami žaidimo gedimų/klaidų žurnalai: [log].Užduotis: pažymėkite pasikartojančius modelius, įprastas sąlygas (sceną, atmintį, laiką) ir galimas pagrindines priežastis.Kiekvieną priežastį pateikite kaip "hipotezę, kurią reikia įrodyti"; kalbėti aiškiai. Taip pat pasakykite man, kaip patikrinti.

4) Pranešimo apie riktą paaiškinimas:

Padarykite šią neaiškią klaidų ataskaitą aiškią ir atkuriamą: [neapdorota ataskaita]. Išvestis: pavadinimas, žingsnis po žingsnio atkūrimas, laukiamas rezultatas, tikrasis rezultatas, dažnis, aplinka. Jei trūksta informacijos, nurodykite, kokios informacijos reikia.

Silpnas raginimas / Stiprus raginimas

Silpnas raginimas:

Mano žaidime yra klaida, pataisykite ją.

Jokio konteksto, jokio žurnalo, be reprodukcijos; AI yra nuspėjama, o haliucinacijų rizika yra didelė.

Galingas raginimas:

Mano Unity 2022.3 žaidime yra klaida: žaidėjui greitai įkeliant atsargas kartais padvigubėja. Atgaminimas: [žingsniai].Susijęs kodas: [įklijuoti]. Žurnalas: [įklijuoti].Užduotis: išvardykite galimas pagrindines priežastis kaip hipotezes, kurias reikia įrodyti, nurodykite, kaip patikrinti ir galimas kiekvienos ištaisymas. Sukurkite neegzistuojančią priežastį; Jei nesate tikri, praneškite man.

Reprodukcija, kodas, žurnalas ir „pateikti kaip hipotezę“ užklausa daro diagnozę patikimą.

QA sluoksnių lentelė

sluoksnis

Ką tai tikrina?

AI indėlis

žmogaus dalis

funkcinis

Ar funkcija veikia?

Scenarijus, bandymo kodas

Priėmimo sprendimas

regresija

Ar senas daiktas sugedęs?

automatinis testas

Sprendimas dėl taikymo srities

ekstremalus atvejis

neįprasta įvestis

Scenarijaus gamyba

prioritetas

Avarija / našumas

ryžtas

Žurnalo analizė

Pagrindinės priežasties patvirtinimas

Patirtis

pramoga, intuicija

ribotas

visiškai žmogiška

Dažnos klaidos

  • Tiesiog bandau „įprastą“ žaidimą. Kraštiniai dėklai sprogsta po išleidimo.
  • Klaidinga AI diagnozė kaip įrodymas. Kodėl įrodoma žurnalu ir bandymais.
  • Tuščių automatinių testų rašymas. Beprasmis bandymas sukuria pasitikėjimo iliuziją.
  • Neaiškus pranešimas apie klaidas. Neatkuriamos klaidos ištaisyti negalima.
  • Regresijos testavimo praleidimas. Kiekvienas pataisymas gali sukelti naujų klaidų.

Apibendrinant

QA yra disciplina, kuri žaidėjui paruošia žaidimą. AI; generuoja kraštutinių atvejų scenarijus, rašo automatizuotus testus, analizuoja žurnalus ir paaiškina klaidų ataskaitas. Bet jų diagnozės yra hipotezės, patirties vertinimas – žmogiškas, o kiekvieną korekciją reikia patikrinti iš naujo. Pakartokite refleksą „kas gali tai sulaužyti ir kaip“ su AI; Jūs renkate įrodymus.

Taikymo užduotis

Pasirinkite sistemą iš savo žaidimo. Sugeneruokite 20 scenarijų naudodami „edge case / exploitation scenario generation“ šabloną ir išbandykite 5 rizikingiausius. Sukurkite atkuriamą ataskaitą apie aptiktą riktą naudodami šabloną „Riktos ataskaitos patikslinimas“.

kontrolinis sąrašas

  • [ ] Sukūriau krašto dėklą su "Kas gali tai sulaužyti ir kaip?"
  • [ ] Parašė ir peržiūrėjo automatinius pasikartojančių patikrinimų testus.
  • [ ] AI diagnozę laikiau hipoteze ir įrodžiau ją log/testu.
  • [ ] Pranešiau apie klaidas atkuriamai.
  • [ ] Iš naujo patikrinau kiekvieną pataisą, kad būtų galima nustatyti regresiją.