Unitate 9 / 11

Asigurarea calității (QA), depanare și testare automată

Câștiguri:

  • Abilitatea de a înțelege straturi funcționale, de regresie, de cazuri marginale și de testare a erorilor și de a produce scenarii de testare și liste de cazuri marginale cu inteligență artificială
  • Capacitatea de a accelera depanarea prin scrierea unui cod de testare automat cu inteligență artificială și extragerea modelelor din jurnal și analize de blocare
  • Fiind capabil să înțeleagă că diagnosticul de eroare al inteligenței artificiale nu este o dovadă, ci o ipoteză, cauza trebuie dovedită cu loguri și reproducere, iar importanța ca raportul de eroare să fie reproductibil.

Când un joc este lansat, jucătorii îl joacă în moduri pe care dezvoltatorul nu și le-a imaginat: rămânând blocați în pereți, exploatând inventarul, ajungând în locuri imposibile, declanșând blocări. Asigurarea calității (QA — asigurarea calității); Este procesul de testare sistematică a jocului înainte de lansare și de găsire și remediere a erorilor (bug-uri), blocărilor, instabilităților și experiențelor proaste. Aceasta este una dintre cele mai laborioase, dar critice legături în producția de jocuri. AI accelerează QA în multe puncte: generarea cazurilor de testare, analiza rapoartelor de erori, revizuirea jurnalelor, scrierea automată a codului de testare, depanare și rafinarea pașilor de producție. Dar AI nu înlocuiește intuiția și evaluarea sentimentului de joc a unui tester uman.

În această unitate veți învăța cum să utilizați AI în QA și depanare; Veți învăța proiectarea scenariilor de testare, analiza jurnalelor, scrierea automată a testelor și disciplina de raportare a erorilor.

Straturi de QA și locul AI

QA are mai multe straturi. Testare funcțională: funcția funcționează (se deschide ușa, se încarcă înregistrarea). Testare de regresie: noua modificare a rupt ceea ce funcționa înainte? Testarea cazurilor marginale: intrări neobișnuite (resetare inventar, două chei simultan, valori limită). Testare de performanță/crash: jocul este stabil. Gameplay/test de experiență: distractiv, intuitiv. AI este puternică în primele patru: generarea de scenarii, listarea cazurilor marginale, scrierea codului de testare, analizarea jurnalelor. Ultima — experiența — aparține omului.

Fluxul QA pas cu pas:

  1. Generați cazuri de testare (lista de cazuri funcționale și marginale cu AI).
  2. Scrieți teste automate (cod pentru verificări repetitive).
  3. Rulați și colectați (erori de jurnal, jurnal, blocări).
  4. Analizați (examinați jurnalul și modelul de erori cu AI).
  5. Raportați și verificați (raport de erori clar, reproductibil; remediere de testare).
Sugestie: este greu să găsești carcase de margine, deoarece designerul își joacă jocul „corect”. Întrebați AI „ce ar încerca un jucător dacă ar dori să spargă acest sistem?” Enumerați exploatările și cazurile marginale.

Testare automată: lăsați repetarea pe seama mașinii

Testarea manuală a acelorași lucruri în fiecare lansare este obositoare și predispusă la erori. Testarea automată pune aceste verificări în cod: o funcție returnează rezultatul corect de fiecare dată când este apelată, este un sistem în starea așteptată. Unity și Unreal oferă cadre de testare; AI este rapid la scrierea acestor teste. Este deosebit de valoros pentru regresie: dacă o modificare rupe ceva care funcționa înainte, testul devine roșu. Examinați testele pe care le produce AI, asigurându-vă că verifică ceea ce este cu adevărat semnificativ - un test gol este mai rău decât niciun test.

Atenție: în depanare, AI produce uneori o explicație inventată ca „cauză probabilă” (halucinație). Nu accepta cauza unei erori doar pentru că AI ți-a spus asta; Demonstrați cauza prin înregistrare, reproducere și testare. Diagnosticul greșit întârzie găsirea celui potrivit.

Reproducere: inima depanării

Prima cerință pentru a remedia o eroare este reproducerea lui în mod fiabil. O eroare descrisă ca „se întâmplă uneori” nu poate fi remediată, deoarece nu puteți verifica dacă remedierea a funcționat. Deci, cea mai valoroasă muncă de depanare este restrângerea condițiilor exacte în care apare eroarea (ce pași, ce situație, ce moment). Inteligența artificială ajută la restrângerea acestui lucru: puteți da simptomele și pașii de reproducere parțială și să spuneți „sugerați condiții și strategie de restrângere care ar putea declanșa acest comportament”. Dar, de fapt, îngustați rulând jocul; AI generează ipoteze, tu le elimini.

În special erorile legate de sincronizare (condiția cursei) și erorile legate de starea memoriei sunt insidioase; acestea apar doar într-o anumită secvență sau încărcare. Pentru astfel de erori, este esențial să adăugați date și informații despre stare în jurnal; AI poate analiza acest jurnal bogat și poate vedea modelul („eroarea se întâmplă întotdeauna când aceste două evenimente au loc recent”). Amintiți-vă de regula de aur a depanării: mai întâi înțelegeți, apoi remediați. Corectarea fără înțelegere ascunde eroarea, dar nu o rezolvă și adesea creează o nouă eroare în altă parte.

trei mini cutii

Cazul 1 — Căutare de caz marginal. Într-un RPG, echipa a testat sistemul de inventar în jocul „normal” și a crezut că este solid. Au avut inteligența artificială să spună „încercați să spargeți acest inventar” și au generat 30 de scenarii marginale; 4 dintre acestea au fost erori adevărate (0 împărțire în greutate, de unică folosință simultană). Corectat înainte de publicare.

Cazul 2 — Analiza jurnalului a rezolvat accidentul. Un joc se prăbușea aleatoriu; jurnalele de accidente erau sute de linii. Când AI a primit jurnalele și a cerut modelul, a fost dezvăluit că accidentul a avut loc întotdeauna la o anumită tranziție de scenă și memorie scăzută. Cu acest indiciu, programatorul a găsit scurgerea memoriei; Rata accidentelor a scăzut la zero.

Cazul 3 — Revenirea de la diagnosticarea greșită. Un programator a avut încredere în explicația AI conform căreia „această eroare este cauzată de această funcție” și a schimbat-o timp de o jumătate de zi; nu a iesit niciun rezultat. Când a clarificat și a înregistrat din nou pașii de producție, eroarea a fost într-un loc complet diferit. Lecția: Diagnosticarea IA este ipoteze, nu dovezi.

Patru șabloane copiabile

1) Generare de scenarii marginale/exploatare:

Rolul tău: tester rău intenționat pentru QA. Descriu următorul sistem: [sistem, reguli]. Sarcină: enumerați 20 de scenarii marginale care vor încerca să spargă, să exploateze sau să arunce acest sistem într-o stare neașteptată. Pentru fiecare: ce trebuie încercat, rezultatul așteptat, posibilă eroare.

2) Scriere automată a testului:

Motor: [Unity 2022.3 / Unreal 5.3]. Cadrul de testare: [specificați].Scrieți teste automate pentru următoarea funcție/sistem: [descriere/cod].Includeți caz normal, caz limită și intrare greșită. Asigurați-vă că fiecare test verifică ceva cu adevărat semnificativ; Scrierea de teste goale/fără sens.

3) Analiza jurnalului/avariei:

Mai jos sunt jurnalele de blocare/erori ale jocului: [jurnal]. Sarcină: marcați modele recurente, condiții obișnuite (scenă, memorie, sincronizare) și cauzele principale posibile. Prezentați fiecare cauză ca o „ipoteză care trebuie demonstrată”; vorbește clar. Spune-mi și cum să verific.

4) Clarificarea raportului de eroare:

Faceți următorul raport de eroare vag clar și reproductibil: [raport brut]. Ieșire: titlu, reproducere pas cu pas, rezultat așteptat, rezultat real, frecvență, mediu. Dacă lipsesc informații, enumerați ce informații sunt necesare.

Prompt slab / Prompt puternic

Prompt slab:

Există o eroare în jocul meu, remediați-o.

Fără context, fără jurnal, fără reproducere; IA este predictivă și riscul de halucinații este mare.

Solicitare puternică:

Există o eroare în jocul meu Unity 2022.3: inventarul se dublează uneori când jucătorul efectuează o salvare rapidă. Reproducere: [pași].Cod înrudit: [paste]. Jurnal: [paste]. Sarcină: enumerați cauzele rădăcină posibile ca ipoteze care trebuie dovedite, oferiți cum să verificați și posibilele remedieri pentru fiecare. Alcătuiți o cauză inexistentă; Dacă nu ești sigur, anunță-mă.

Reproducerea, codificarea, jurnalul și cererea de „prezentare ca ipoteză” fac diagnosticul de încredere.

Tabel de straturi QA

strat

Ce testeaza?

Contribuția AI

cota umană

funcţional

Funcționează funcția?

Script, cod de testare

Decizia de admitere

regresie

Este stricat chestia veche?

test automat

Decizia privind domeniul de aplicare

caz extrem

intrare neobișnuită

Producția de scenarii

prioritate

Crash/performanță

determinarea

Analiza jurnalelor

Confirmarea cauzei principale

Experiență

divertisment, intuiție

limitată

complet uman

Greșeli comune

  • Testează doar un joc „normal”. Carcasele marginale explodează după eliberare.
  • Diagnosticul AI greșit ca dovadă. De ce este dovedit prin jurnal și testare.
  • Scrierea de teste automate goale. Testarea fără sens oferă iluzia de încredere.
  • Raport de eroare vag. O eroare nereproductibilă nu poate fi corectată.
  • Omiterea testelor de regresie. Fiecare corectare poate cauza noi erori.

Pe scurt

QA este disciplina care face jocul pregătit pentru jucător. AI; generează scenarii marginale, scrie teste automate, analizează jurnalele și clarifică rapoartele de eroare. Dar diagnosticele lor sunt ipoteze, evaluarea experienței este umană și fiecare corectare necesită retestare. Replica reflexul „cine poate rupe asta și cum” cu AI; Tu colectezi dovezile.

Sarcina de aplicare

Alegeți un sistem din jocul dvs. Aveți 20 de scenarii generate cu șablonul „generare de scenarii de exploatare/cazuri marginale” și testați de fapt cele 5 cele mai riscante. Creați un raport reproductibil pentru o eroare pe care o găsiți cu șablonul „Rafinare raportare erori”.

lista de verificare

  • [ ] Am creat un caz marginal cu „Cine poate sparge asta și cum?”
  • [ ] A scris și a revizuit teste automatizate pentru verificări recurente.
  • [ ] Am considerat diagnosticul AI ca o ipoteză și am demonstrat-o cu log/test.
  • [ ] Am raportat erori reproductibil.
  • [ ] Am retestat fiecare remediere pentru regresie.