Enhet 9 / 11

Kvalitetssäkring (QA), felsökning och automatiserad testning

Vinster:

  • Förmåga att förstå funktions-, regressions-, kantfalls- och krocktestlager och producera testscenarier och kantfallslistor med artificiell intelligens
  • Möjlighet att påskynda felsökning genom att skriva automatisk testkod med artificiell intelligens och extrahera mönster i logg- och kraschanalys
  • Att kunna förstå att feldiagnos av artificiell intelligens inte är bevis utan hypotes, orsaken måste bevisas med loggar och reproduktion samt vikten av att felrapporten är reproducerbar.

När ett spel släpps, spelar spelare det på sätt som utvecklaren inte föreställt sig: fastnar i väggar, utnyttjar lager, når omöjliga platser, utlöser krascher. Kvalitetssäkring (QA — kvalitetssäkring); Det är processen att systematiskt testa spelet innan det släpps och hitta och åtgärda fel (buggar), krascher, instabiliteter och dåliga upplevelser. Detta är en av de mest arbetsintensiva men kritiska länkarna i spelproduktion. AI accelererar QA på många punkter: generering av testfall, analys av felrapporter, logggranskning, automatisk testkodskrivning, felsökning och förfining av produktionssteg. Men AI ersätter inte en mänsklig testares intuition och utvärdering av spelkänslan.

I den här enheten kommer du att lära dig hur du använder AI i QA och felsökning; Du kommer att lära dig testscenariodesign, logganalys, automatisk testskrivning och felrapporteringsdisciplin.

Lager av QA och plats för AI

QA är flera lager. Funktionstestning: fungerar funktionen (öppnar dörren, belastar inspelningen). Regressionstestning: bröt den nya förändringen det som fungerade innan? Kantfallstestning: ovanliga ingångar (återställ inventering, två nycklar samtidigt, gränsvärden). Prestanda/kraschtestning: är spelet stabilt. Spel-/upplevelsetest: roligt, intuitivt. AI är stark i de fyra första: generera scenarier, lista kantfall, skriva testkod, analysera loggar. Den sista – erfarenheten – tillhör människan.

QA-flöde steg för steg:

  1. Generera testfall (funktions- och kantfallslista med AI).
  2. Skriv automatiserad testning (kod för upprepade kontroller).
  3. Kör och samla in (loggfel, loggar, krascher).
  4. Analysera (undersök logg och felmönster med AI).
  5. Rapportera och verifiera (tydlig, reproducerbar buggrapport; testfix).
Tips: Det är svårt att hitta kantfodral eftersom designern spelar sitt spel "rätt". Fråga AI:n "vad skulle en spelare försöka om de ville bryta det här systemet?" Lista utnyttjande och kantfall.

Automatisk testning: lämna upprepningen till maskinen

Att manuellt testa samma saker i varje utgåva är tröttsamt och felbenäget. Automatiserad testning sätter dessa kontroller i kod: returnerar en funktion rätt resultat varje gång den anropas, är ett system i det förväntade tillståndet. Unity och Unreal erbjuder testramar; AI är snabb på att skriva dessa tester. Det är särskilt värdefullt för regression: om en förändring bryter något som fungerade tidigare, blir testet rött. Granska testerna som AI producerar och se till att de kontrollerar vad som verkligen är meningsfullt - ett blanktest är värre än inget test.

Varning: Vid felsökning producerar AI ibland en påhittad förklaring som en "trolig orsak" (hallucination). Acceptera inte orsaken till en bugg bara för att AI:n sa till dig det; Bevisa orsaken genom att logga, reproducera och testa. Feldiagnostik fördröjer att hitta rätt.

Reproduktion: hjärtat av felsökning

Det första kravet för att fixa ett fel är att återskapa det på ett tillförlitligt sätt. En bugg som beskrivs som "händer ibland" kan inte fixas eftersom du inte kan verifiera om fixen fungerade. Så det mest värdefulla arbetet med att felsöka är att begränsa de exakta förhållandena under vilka felet inträffar (vilka steg, vilken situation, vilken tidpunkt). AI hjälper till att begränsa detta: du kan ge symtomen och partiella reproduktionssteg och säga "föreslå tillstånd och en avsmalningsstrategi som kan utlösa detta beteende." Men du gör faktiskt avsmalningen genom att köra spelet; AI genererar hypoteser, du eliminerar dem.

Speciellt tidsrelaterade (racetillstånd) och minnestillståndsrelaterade fel är lömska; dessa förekommer endast i en viss sekvens eller belastning. För sådana fel är det viktigt att lägga till tidsstämpel och statusinformation i loggen; AI kan analysera denna rika logg och se mönstret ("felet inträffar alltid när dessa två händelser inträffar nyligen"). Kom ihåg den gyllene regeln för felsökning: först förstå och fixa sedan. Rättelse utan att förstå döljer felet men löser det inte och skapar ofta ett nytt fel någon annanstans.

tre minifodral

Fall 1 — Kantfallsjakt. I en RPG testade teamet inventeringssystemet i "normalt" spel och tyckte att det var stabilt. De fick AI att säga "försök att knäcka det här lagret" och genererade 30 edge case-scenarier; 4 av dessa var sanna fel (0 vikt föremålsdelning, samtidig engångs). Rättad före publicering.

Fall 2 — Logganalys löste kraschen. Ett spel kraschade slumpmässigt; krockloggar var hundratals rader. När AI:n fick loggarna och bad om mönstret, avslöjades det att kraschen alltid inträffade vid en specifik scenövergång och lågt minne. Med denna ledtråd hittade programmeraren minnesläckan; Kraschfrekvensen sjönk till noll.

Fall 3 — Återkomst från feldiagnos. En programmerare litade på AI:s förklaring att "det här felet orsakas av den här funktionen" och pysslade med det i en halv dag; inga resultat kom ut. När han förtydligade och loggade produktionsstegen igen var felet på ett helt annat ställe. Lektion: Diagnostik av AI är hypoteser, inte bevis.

Fyra kopierbara mallar

1) Generering av kantfall/exploateringsscenario:

Din roll: skadlig QA-testare. Jag beskriver följande system: [system, regler]. Uppgift: lista 20 edge case-scenarier som kommer att försöka bryta, utnyttja eller kasta detta system till ett oväntat tillstånd. För varje: vad man ska prova, förväntat resultat, eventuellt fel.

2) Automatiserad testskrivning:

Motor: [Unity 2022.3 / Unreal 5.3]. Testramverk: [specificera].Skriv automatiserade tester för följande funktion/system: [beskrivning/kod].Inkludera normalfall, gränsfall och felaktig inmatning. Se till att varje test verifierar något som verkligen är meningsfullt; Att skriva tomma/meningslösa tester.

3) Logg-/kraschanalys:

Nedan är spelets krasch-/felloggar: [logg]. Uppgift: markera återkommande mönster, vanliga tillstånd (scen, minne, timing) och möjliga grundorsaker. Presentera varje orsak som en "hypotes som ska bevisas"; tala tydligt. Berätta också för mig hur man verifierar.

4) Förtydligande av felrapporter:

Gör följande vaga felrapport tydlig och reproducerbar: [rårapport]. Utdata: titel, steg-för-steg-reproduktion, förväntat resultat, faktiskt resultat, frekvens, miljö. Om det saknas information, ange vilken information som behövs.

Svag prompt / Stark prompt

Svag uppmaning:

Det finns en bugg i mitt spel, fixa det.

Inget sammanhang, ingen logg, ingen reproduktion; AI är förutsägande och risken för hallucinationer är hög.

Kraftfull uppmaning:

Det finns en bugg i mitt Unity 2022.3-spel: inventeringen fördubblas ibland när spelaren utför en snabb lagringsladdning. Reproduktion: [steg]. Relaterad kod: [klistra in]. Logga: [klistra in]. Uppgift: lista möjliga grundorsaker som hypoteser som ska bevisas, ge hur man verifierar och möjlig fix för varje. Gör upp en obefintlig orsak; Om du inte är säker, låt mig veta.

Reproduktion, kod, logg och begäran om "presentera som hypotes" gör diagnosen tillförlitlig.

QA-lagertabell

lager

Vad testar det?

AI-bidrag

mänsklig andel

funktionell

Fungerar funktionen?

Skript, testkod

Antagningsbeslut

regression

Är det gamla trasigt?

automatiskt test

Omfattningsbeslut

extremfall

ovanlig ingång

Manusproduktion

prioritet

Krasch/prestanda

beslutsamhet

Logganalys

Bekräftelse av grundorsaken

Erfarenhet

underhållning, intuition

begränsad

helt mänskligt

Vanliga misstag

  • Testar bara "normalt" spel. Kantfodral exploderar efter release.
  • Misstag AI-diagnos som bevis. Varför bevisas genom logg och testning.
  • Skriver tomma automatiserade tester. Meningslösa tester ger en illusion av självförtroende.
  • Vaga felrapporter. Ett icke-reproducerbart fel kan inte korrigeras.
  • Hoppa över regressionstestning. Varje korrigering kan orsaka nya fel.

Sammanfattningsvis

QA är disciplinen som gör spelet redo för spelaren. AI; genererar kantfallsscenarier, skriver automatiserade tester, analyserar loggar och förtydligar felrapporter. Men deras diagnoser är hypoteser, utvärderingen av erfarenhet är mänsklig och varje korrigering kräver omprövning. Replikera "vem kan bryta detta och hur"-reflexen med AI; Du samlar bevisen.

Applikationsuppgift

Välj ett system från ditt spel. Ha 20 scenarier genererade med mallen "generering av kantfall/exploateringsscenario" och testa faktiskt de 5 mest riskfyllda. Skapa en reproducerbar rapport för ett fel som du hittar med mallen "Förfining av felrapporter".

checklista

  • [ ] Jag skapade ett kantfall med "Vem kan bryta detta och hur?"
  • [ ] Skrev och granskade automatiserade tester för återkommande kontroller.
  • [ ] Jag betraktade AI-diagnosen som en hypotes och bevisade den med log/test.
  • [ ] Jag rapporterade fel reproducerbart.
  • [ ] Jag testade om varje fix för regression.