Enhed 9 / 11

Kvalitetssikring (QA), debugging og automatiseret test

Gevinster:

  • Evne til at forstå funktionelle, regressions-, kantcase- og crashtestlag og producere testscenarier og kantcaselister med kunstig intelligens
  • Evne til at accelerere fejlfinding ved at skrive automatisk testkode med kunstig intelligens og udtrække mønstre i log- og crashanalyse
  • At kunne forstå, at fejldiagnose af kunstig intelligens ikke er bevis, men hypotese, skal årsagen bevises med logs og reproduktion, og vigtigheden af, at fejlrapporten er reproducerbar.

Når et spil udgives, spiller spillere det på måder, som udvikleren ikke havde forestillet sig: sidde fast i vægge, udnytte inventar, nå umulige steder, udløse nedbrud. Kvalitetssikring (QA — kvalitetssikring); Det er processen med systematisk at teste spillet før udgivelse og finde og rette fejl (bugs), nedbrud, ustabiliteter og dårlige oplevelser. Dette er et af de mest arbejdskrævende, men kritiske led i spilproduktion. AI accelererer QA på mange punkter: generering af testsager, analyse af fejlrapporter, loggennemgang, automatisk testkodeskrivning, fejlfinding og raffinering af produktionstrin. Men AI erstatter ikke en menneskelig testers intuition og evaluering af spilfølelsen.

I denne enhed lærer du, hvordan du bruger AI i QA og fejlfinding; Du lærer testscenariedesign, loganalyse, automatisk testskrivning og fejlrapporteringsdisciplin.

Lag af QA og sted for AI

QA er flerlags. Funktionstest: virker funktionen (åbnes døren, belastes optagelsen). Regressionstest: brød den nye ændring det, der virkede før? Kantkassetest: usædvanlige input (nulstil beholdning, to nøgler på én gang, grænseværdier). Ydeevne/crash test: er spillet stabilt. Gameplay/oplevelsestest: sjov, intuitiv. AI er stærk i de første fire: generering af scenarier, liste over edge cases, skrivning af testkode, analyse af logfiler. Den sidste - oplevelse - tilhører mennesket.

QA flow trin for trin:

  1. Generer testcases (funktionel og kantcaseliste med AI).
  2. Skriv automatiseret test (kode til gentagne kontroller).
  3. Kør og saml (logfejl, logfiler, nedbrud).
  4. Analyser (undersøg log og fejlmønster med AI).
  5. Rapporter og verificer (klar, reproducerbar fejlrapport; testfix).
Tip: Det er svært at finde kantkasser, fordi designeren spiller sit spil "rigtigt". Spørg AI "hvad ville en spiller prøve, hvis de ville bryde dette system?" Angiv udnyttelser og kantsager.

Automatisk test: overlad gentagelsen til maskinen

Manuel test af de samme ting i hver udgivelse er trættende og udsat for fejl. Automatiseret test sætter disse kontroller i kode: returnerer en funktion det korrekte resultat, hver gang den kaldes, er et system i den forventede tilstand. Unity og Unreal tilbyder testrammer; AI er hurtig til at skrive disse tests. Det er især værdifuldt for regression: Hvis en ændring bryder noget, der virkede før, bliver testen rød. Gennemgå de test, AI producerer, og sørg for, at de tjekker, hvad der virkelig er meningsfuldt - en blank test er værre end ingen test.

Forsigtig: Ved debugging producerer AI nogle gange en opdigtet forklaring som en "sandsynlig årsag" (hallucination). Accepter ikke årsagen til en fejl, bare fordi AI’en fortalte dig det; Bevis årsagen ved at logge, reproducere og teste. Fejldiagnosticering forsinker at finde den rigtige.

Reproduktion: hjertet af debugging

Det første krav for at rette en fejl er at gengive den pålideligt. En fejl beskrevet som "skeder nogle gange" kan ikke rettes, fordi du ikke kan bekræfte, om rettelsen virkede. Så det mest værdifulde arbejde med at fejlfinde er at indsnævre de nøjagtige forhold, hvorunder fejlen opstår (hvilke trin, hvilken situation, hvilken timing). AI hjælper med at indsnævre dette: du kan give symptomerne og delvise reproduktionstrin og sige "foreslå tilstande og indsnævringsstrategi, der kan udløse denne adfærd." Men du laver faktisk indsnævringen ved at køre spillet; AI genererer hypoteser, du eliminerer dem.

Især timing-relaterede (løbstilstand) og hukommelsestilstandsrelaterede fejl er snigende; disse forekommer kun i en bestemt rækkefølge eller belastning. For sådanne fejl er det afgørende at tilføje tidsstempel og statusoplysninger til loggen; AI kan analysere denne rige log og se mønsteret ("fejlen sker altid, når disse to hændelser sker for nylig"). Husk den gyldne regel for fejlretning: Forstå først, og ret så. Rettelse uden forståelse skjuler fejlen, men løser den ikke og skaber ofte en ny fejl et andet sted.

tre minisager

Sag 1 — Kantsagsjagt. I en RPG testede holdet lagersystemet i "normalt" gameplay og troede, det var solidt. De fik AI til at sige "prøv at knække denne beholdning" og genererede 30 edge case-scenarier; 4 af disse var sande fejl (0 vægt emneopdeling, samtidig engangs). Rettet før offentliggørelse.

Case 2 - Loganalyse løste nedbruddet. Et spil styrtede tilfældigt ned; crash logs var hundredvis af linjer. Da AI'en fik loggene og bad om mønsteret, blev det afsløret, at styrtet altid fandt sted ved en specifik sceneovergang og lav hukommelse. Med denne ledetråd fandt programmøren hukommelseslækagen; Crash rate faldt til nul.

Case 3 — Tilbage fra fejldiagnosticering. En programmør stolede på AI's forklaring om, at "denne fejl er forårsaget af denne funktion" og pillede med den i en halv dag; der kom ingen resultater ud. Da han afklarede og loggede produktionstrinene igen, var fejlen et helt andet sted. Lektion: Diagnostik af AI er hypoteser, ikke bevis.

Fire kopierbare skabeloner

1) Generering af kantscenarier/udnyttelsesscenarier:

Din rolle: ondsindet QA-tester. Jeg beskriver følgende system: [system, regler]. Opgave: liste 20 edge case-scenarier, der vil forsøge at bryde, udnytte eller kaste dette system ind i en uventet tilstand. For hver: hvad skal man prøve, forventet resultat, mulig fejl.

2) Automatisk testskrivning:

Motor: [Unity 2022.3 / Unreal 5.3]. Testramme: [specificér].Skriv automatiserede tests for følgende funktion/system: [beskrivelse/kode].Inkluder normal-case, limit case og defekt input.Sørg for, at hver test verificerer noget, der virkelig er meningsfuldt; At skrive tomme/meningsløse tests.

3) Log/nedbrudsanalyse:

Nedenfor er spillets crash-/fejllogfiler: [log]. Opgave: Marker tilbagevendende mønstre, almindelige tilstande (scene, hukommelse, timing) og mulige grundlæggende årsager. Præsenter hver årsag som en "hypotese, der skal bevises"; tale tydeligt. Fortæl mig også, hvordan jeg verificerer.

4) Fejlrapport afklaring:

Gør følgende vage fejlrapport klar og reproducerbar: [rårapport]. Output: titel, trin-for-trin gengivelse, forventet resultat, faktisk resultat, frekvens, miljø. Hvis der mangler oplysninger, skal du angive, hvilke oplysninger der er nødvendige.

Svag prompt / Stærk prompt

Svag prompt:

Der er en fejl i mit spil, ret det.

Ingen kontekst, ingen log, ingen reproduktion; AI er prædiktiv, og risikoen for hallucinationer er høj.

Kraftig prompt:

Der er en fejl i mit Unity 2022.3-spil: beholdningen fordobles nogle gange, når spilleren udfører en hurtig save-load. Reproduktion: [trin].Relateret kode: [indsæt]. Log: [indsæt].Opgave: angiv mulige grundlæggende årsager som hypoteser, der skal bevises, giv hvordan man verificerer og mulig rettelse for hver. Lav en ikke-eksisterende årsag; Hvis du ikke er sikker, så lad mig det vide.

Gengivelse, kode, log og anmodning om "presenter som hypotese" gør diagnosen pålidelig.

QA lag tabel

lag

Hvad tester det?

AI-bidrag

menneskelig andel

funktionelle

Virker funktionen?

Script, testkode

Optagelsesbeslutning

regression

Er den gamle ting gået i stykker?

automatisk test

Beslutning om omfang

ekstreme tilfælde

usædvanlige input

Manuskriptproduktion

prioritet

Crash/performance

beslutsomhed

Log analyse

Grundårsag bekræftelse

Erfaring

underholdning, intuition

begrænset

fuldstændig menneskeligt

Almindelige fejl

  • Tester bare "normalt" gameplay. Kantsager eksploderer efter frigivelse.
  • Forkert AI-diagnose som bevis. Hvorfor er bevist ved log og test.
  • Skrivning af tomme automatiserede tests. Meningsløs test giver en illusion af selvtillid.
  • Uklar fejlrapport. En ikke-reproducerbar fejl kan ikke rettes.
  • Springer regressionstest over. Hver rettelse kan forårsage nye fejl.

Sammenfattende

QA er den disciplin, der gør spillet klar til spilleren. AI; genererer edge case-scenarier, skriver automatiserede tests, analyserer logfiler og afklarer fejlrapporter. Men deres diagnoser er hypoteser, vurderingen af ​​erfaring er menneskelig, og enhver rettelse kræver gentestning. Repliker "hvem kan bryde dette og hvordan"-refleksen med AI; Du samler beviserne.

Ansøgningsopgave

Vælg et system fra dit spil. Få 20 scenarier genereret med skabelonen "edge case/exploitation scenario generation" og test faktisk de 5 mest risikable. Opret en reproducerbar rapport for en fejl, du finder med skabelonen "Fejlrapportforfining".

tjekliste

  • [ ] Jeg oprettede en kantsag med "Hvem kan bryde dette og hvordan?"
  • [ ] Skrev og gennemgik automatiseret test for tilbagevendende kontroller.
  • [ ] Jeg betragtede AI-diagnosen som en hypotese og beviste den med log/test.
  • [ ] Jeg rapporterede fejl reproducerbart.
  • [ ] Jeg gentestede hver rettelse for regression.