Egység 9 / 11

Minőségbiztosítás (QA), hibakeresés és automatizált tesztelés

Nyereség:

  • Képes a funkcionális, regressziós, éles esetek és ütközési tesztrétegek megértésére, valamint tesztforgatókönyvek és élesetek listák készítésére mesterséges intelligenciával
  • Képesség a hibakeresés felgyorsítására azáltal, hogy automatikus tesztkódot ír mesterséges intelligenciával, és mintákat nyer ki a napló- és összeomláselemzésben
  • Annak megértéséhez, hogy a mesterséges intelligencia hibadiagnózisa nem bizonyíték, hanem hipotézis, az okot naplókkal és reprodukcióval kell bizonyítani, és a hibajelentés reprodukálhatóságának fontosságát.

Amikor egy játék megjelenik, a játékosok úgy játszanak vele, ahogyan a fejlesztő nem képzelte: falakba szorulnak, kihasználják a készletet, elérhetetlen helyekre jutnak el, összeomlásokat idéznek elő. Minőségbiztosítás (QA – minőségbiztosítás); Ez a játék szisztematikus tesztelése a kiadás előtt, valamint a hibák (bugok), összeomlások, instabilitások és rossz tapasztalatok megtalálása és kijavítása. Ez az egyik legmunkaigényesebb, de kritikus láncszem a játékgyártásban. Az AI számos ponton felgyorsítja a minőségbiztosítást: tesztesetek generálása, hibajelentések elemzése, naplók áttekintése, automatikus tesztkód írás, hibakeresés és gyártási lépések finomítása. De az AI nem helyettesíti az emberi tesztelő intuícióját és a játék érzésének értékelését.

Ebben az egységben megtanulhatja, hogyan használhatja az AI-t a minőségbiztosításban és a hibakeresésben; Megtanulja a tesztforgatókönyv-tervezést, a naplóelemzést, az automatikus tesztírást és a hibajelentési fegyelmet.

A minőségbiztosítás rétegei és az AI helye

A minőségbiztosítás többrétegű. Funkcionális tesztelés: működik-e a funkció (nyílik-e az ajtó, betölti-e a felvételt). Regressziós tesztelés: az új változtatás megtörte azt, ami korábban működött? Edge case tesztelés: szokatlan bemenetek (leltár visszaállítása, két kulcs egyszerre, határértékek). Teljesítmény/összeomlásteszt: stabil-e a játék. Játékmenet/élményteszt: szórakoztató, intuitív. Az AI erős az első négyben: forgatókönyvek generálása, szélső esetek listázása, tesztkód írása, naplók elemzése. Az utolsó – a tapasztalat – az emberé.

A minőségbiztosítás folyamata lépésről lépésre:

  1. Tesztesetek generálása (funkcionális és éles esetlista AI-val).
  2. Írjon automatikus tesztelést (kód az ismétlődő ellenőrzésekhez).
  3. Futtassa és gyűjtse össze (naplózási hibák, naplók, összeomlások).
  4. Elemzés (napló és hibaminta vizsgálata mesterséges intelligencia segítségével).
  5. Jelentés és ellenőrzés (egyértelmű, reprodukálható hibajelentés; tesztjavítás).
Tipp: Nehéz éles tokot találni, mert a tervező „helyesen” játssza a játékát. Kérdezd meg az AI-t: "Mit próbálna ki egy játékos, ha meg akarná törni ezt a rendszert?" Sorolja fel az exploitokat és az éles eseteket.

Automatikus tesztelés: az ismétlést bízza a gépre

Ugyanazok a dolgok manuális tesztelése minden kiadásban fárasztó és hibás. Az automatizált tesztelés ezeket az ellenőrzéseket a kódba helyezi: a függvény minden meghívásakor a megfelelő eredményt adja vissza, a rendszer a várt állapotban van. A Unity és az Unreal tesztelési keretrendszert kínál; Az AI gyorsan megírja ezeket a teszteket. Ez különösen értékes a regresszió szempontjából: ha egy változtatás megszakít valamit, ami korábban működött, a teszt piros lesz. Tekintse át a mesterséges intelligencia által készített teszteket, és győződjön meg arról, hogy megvizsgálják, mi az igazán értelmes – az üres teszt rosszabb, mint a teszt nélküli teszt.

Figyelem: A hibakeresés során az AI néha kitalált magyarázatot ad „valószínű okként” (hallucináció). Ne fogadd el a hiba okát csak azért, mert az AI mondta neked; Bizonyítsa be az okot naplózással, reprodukálással és teszteléssel. A téves diagnózis késlelteti a megfelelő megtalálását.

Reprodukció: a hibakeresés szíve

A hibajavítás első követelménye a megbízható reprodukálás. A „néha előfordul”ként leírt hiba nem javítható, mert nem tudja ellenőrizni, hogy a javítás működött-e. Tehát a hibakeresés legértékesebb munkája a hiba előfordulásának pontos körülményeinek leszűkítése (mely lépések, melyik szituáció, milyen időzítés). A mesterséges intelligencia segít ennek leszűkítésében: megadhatja a tüneteket és a részleges szaporodási lépéseket, és azt mondja, hogy „feltételeket és szűkítési stratégiát javasol, amelyek kiválthatják ezt a viselkedést”. De valójában a szűkítést a játék futtatásával hajtod végre; Az AI hipotéziseket generál, Ön pedig kiküszöböli őket.

Különösen az időzítéssel (versenyhelyzet) és a memória állapotával kapcsolatos hibák alattomosak; ezek csak egy meghatározott sorrendben vagy terhelésben fordulnak elő. Ilyen hibák esetén kritikus fontosságú időbélyegző és állapotinformáció hozzáadása a naplóhoz; Az AI elemzi ezt a gazdag naplót, és láthatja a mintát („a hiba mindig akkor történik, amikor ez a két esemény a közelmúltban történt”). Ne feledje a hibakeresés aranyszabályát: először értse meg, majd javítsa. A megértés nélküli javítás elrejti a hibát, de nem oldja meg, és gyakran máshol hoz létre új hibát.

három mini tok

1. eset – Edge case vadászat. Egy RPG-ben a csapat "normál" játékmenetben tesztelte a leltárrendszert, és úgy gondolta, hogy szilárd. Azt mondták a mesterséges intelligencia számára, hogy "próbáld meg feltörni ezt a készletet", és 30 szélső eset-forgatókönyvet generáltak; Ebből 4 valós hiba volt (0 súlytétel felosztása, egyidejű eldobható). Közzététel előtt javítva.

2. eset – A naplóelemzés megoldotta az összeomlást. Egy játék véletlenül összeomlott; Az ütközési naplók több száz sort tartalmaztak. Amikor a mesterséges intelligencia megkapta a naplókat, és kérte a mintát, kiderült, hogy az összeomlás mindig egy adott jelenet átmenetnél és kevés memória esetén történt. Ezzel a nyommal a programozó megtalálta a memóriaszivárgást; Az ütközések aránya nullára csökkent.

3. eset – téves diagnózisból való visszatérés. Egy programozó megbízott a mesterséges intelligencia magyarázatában, miszerint "ezt a hibát ez a funkció okozza", és fél napig büszkélkedett vele; nem jött ki eredmény. Amikor újra tisztázta és naplózta a gyártási lépéseket, teljesen más helyen volt a hiba. Tanulság: Az AI diagnosztikája hipotézisek, nem bizonyítékok.

Négy másolható sablon

1) Edge eset/kihasználási forgatókönyv generálása:

Az Ön szerepe: rosszindulatú minőségbiztosítási tesztelő. Leírom a következő rendszert: [rendszer, szabályok]. Feladat: soroljon fel 20 olyan szélső esetet, amelyek megpróbálják feltörni, kihasználni vagy váratlan állapotba dobni a rendszert. Mindegyiknél: mit kell kipróbálni, várható eredmény, lehetséges hiba.

2) Automatizált tesztírás:

Motor: [Unity 2022.3 / Unreal 5.3]. Teszt keretrendszer: [adja meg]. Írjon automatizált teszteket a következő funkcióhoz/rendszerhez: [leírás/kód]. Tartalmazza a normál esetet, a limites esetet és a hibás bemenetet. Győződjön meg arról, hogy minden teszt valami igazán értelmes dolgot igazol; Üres/értelmetlen tesztek írása.

3) Napló/összeomlás elemzése:

Alább találhatók a játék összeomlási/hibanaplói: [napló]. Feladat: jelölje meg az ismétlődő mintákat, a gyakori feltételeket (jelenet, memória, időzítés) és a lehetséges kiváltó okokat. Mutasson be minden okot "bizonyítandó hipotézisként"; beszélj tisztán. Azt is mondja meg, hogyan kell ellenőrizni.

4) A hibajelentés tisztázása:

Tegye egyértelművé és reprodukálhatóvá a következő homályos hibajelentést: [nyers jelentés]. Kimenet: cím, lépésenkénti reprodukció, várható eredmény, tényleges eredmény, gyakoriság, környezet. Ha hiányzik az információ, sorolja fel, milyen információkra van szüksége.

Gyenge felszólítás / Erős felszólítás

Gyenge felszólítás:

Hiba van a játékomban, javítsd ki.

Nincs kontextus, nincs napló, nincs reprodukció; A mesterséges intelligencia előrejelző, és a hallucinációk kockázata magas.

Erőteljes felszólítás:

Van egy hiba a Unity 2022.3 játékomban: a készlet néha megduplázódik, amikor a játékos gyors mentési betöltést hajt végre. Reprodukció: [lépések].Kapcsolódó kód: [beillesztés]. Napló: [beillesztés].Feladat: sorolja fel a lehetséges kiváltó okokat bizonyítandó hipotézisekként, adja meg az ellenőrzés módját és az egyes lehetséges javításokat. Állítson fel egy nem létező okot; Ha nem biztos benne, szóljon.

A reprodukálás, a kód, a napló és a „prezentálás hipotézisként” kérés megbízhatóvá teszi a diagnózist.

Minőségbiztosítási réteg táblázat

réteg

Mit tesztel?

AI hozzájárulás

emberi részesedés

funkcionális

Működik a funkció?

Szkript, tesztkód

Felvételi határozat

regresszió

Elromlott a régi?

automatikus teszt

Hatályhatározat

extrém eset

szokatlan bemenet

Szkript készítés

prioritás

Összeomlás/teljesítmény

elszántság

Napló elemzés

A kiváltó ok megerősítése

Tapasztalat

szórakozás, intuíció

korlátozott

teljesen emberi

Gyakori hibák

  • Csak a "normál" játékmenet tesztelése. Az éles tokok felrobbannak a kiadás után.
  • Az AI-diagnózis tévedése bizonyítékként. Hogy miért, azt naplózás és tesztelés bizonyítja.
  • Üres automatizált tesztek írása. Az értelmetlen tesztelés a bizalom illúzióját kelti.
  • Homályos hibajelentés. A nem reprodukálható hiba nem javítható.
  • A regressziós tesztelés kihagyása. Minden javítás új hibákat okozhat.

Összefoglalva

A minőségbiztosítás az a fegyelem, amely a játékos számára készen teszi a játékot. AI; szélsőséges esetforgatókönyveket generál, automatizált teszteket ír, naplókat elemzi és hibajelentéseket pontosít. De a diagnózisuk hipotézisek, a tapasztalatok értékelése emberi, és minden korrekció újbóli tesztelést igényel. Replikálja a „ki tudja ezt megtörni és hogyan” reflexet az AI-val; Gyűjtöd a bizonyítékokat.

Pályázati feladat

Válassz egy rendszert a játékodból. Készítsen 20 forgatókönyvet az „edge case/exploitation forgatókönyv generálása” sablonnal, és tesztelje az 5 legkockázatosabbat. Hozzon létre reprodukálható jelentést a talált hibáról a „Hibajelentés finomítása” sablon segítségével.

ellenőrző lista

  • [ ] Létrehoztam egy élesetet a "Ki tudja ezt feltörni és hogyan?"
  • [ ] Automatizált tesztelést írt és felülvizsgált az ismétlődő ellenőrzésekhez.
  • [ ] Az AI-diagnózist hipotézisnek tekintettem, és log/teszttel igazoltam.
  • [ ] A hibákat reprodukálhatóan jelentettem.
  • [ ] Minden javítást újra teszteltem a regresszió szempontjából.