7. Tesztelési Követelmények¶
7.1 Funkcionális Tesztek¶
7.1.1 Atomikus Mentés¶
Cél: Ez a teszt ellenőrzi, hogy a fájlok mentése atomikusan
történik-e: a rendszer először egy ideiglenes fájlba (.tmp
) írja az adatokat,
majd egy átnevezéssel (rename(2)) cseréli le a végleges fájlt.
Tesztelési lépések: Linux alatt az aláppi paranccsal tesztelhető:
strace -p $game_pid -e trace=openat,rename,renameat,write
Az alábbi példa a jelenlegi prototípusból származik, amikor a játék elmenti a
settings.ini
fájlt:
openat(AT_FDCWD, "/home/laptopgamer/.local/share/godot/app_userdata/SzakGyak/settings.ini.tmp", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 31
write(31, "[volume]\n\nmaster=0\nsfx=30\nmusic="..., 139) = 139
rename("/home/laptopgamer/.local/share/godot/app_userdata/SzakGyak/settings.ini.tmp", "/home/laptopgamer/.local/share/godot/app_userdata/SzakGyak/settings.ini") = 0
Elvárt eredmény: A lényeg, hogy a rename(2) rendszerhívás végzi a fájl cseréjét, mivel ez garantálja az atomikus frissítést: a végleges fájl csak teljes, sértetlen tartalommal kerül a helyére.
Ha a Godot Linuxon ezt a módszert használja, akkor nagy valószínűséggel macOS-en és Windows-on is hasonlóan működik, mivel mindkét rendszer biztosít hasonló, atomikus fájlcsere-funkciót.
7.1.2 Config fájl kezelése és mentése¶
Biztosítani, hogy a konfigurációs fájl (settings.ini
) helyesen töltődik be,
módosul, és atomikusan mentődik, így a beállítások megőrződnek és nem sérülnek.
Cél: Biztosítani, hogy a konfigurációs fájl helyesen töltődik be, módosul, és elmentődik, így a beállítások megőrződnek és nem sérülnek.
Tesztelési lépések:
- Betöltés ellenőrzése:
- Indítsd el a játékot, és ellenőrizd, hogy a
settings.ini
fájlban tárolt beállítások helyesen töltődnek be - Teszteld, hogy ha a fájl nem létezik, a játék létrehozza az alapértelmezett beállításokat.
- Indítsd el a játékot, és ellenőrizd, hogy a
- Módosítás és mentés:
- Végezz módosításokat a beállításokban a játék felületén
- Mentsd el a beállításokat.
- Ellenőrizd, hogy a mentett
settings.ini
tartalma megfelel a módosításoknak (tartalom, formátum, karakterkódolás).
- Hibakezelés:
- Teszteld, hogy sérült vagy hiányzó
settings.ini
esetén a játék helyesen reagál
- Teszteld, hogy sérült vagy hiányzó
Elvárt eredmény:
- A
settings.ini
beállítások helyesen töltődnek be és módosulnak. - Hibás vagy hiányzó fájl esetén a játék stabilan működik, és helyes alapbeállításokat használ.
7.1.3 Fordítások kezelése és működése¶
Cél: Ellenőrizni, hogy a játék helyesen kezeli a fordításokat, megfelelően betölti a translations mappában lévő nyelvi fájlokat, és a szövegek helyesen jelennek meg a támogatott nyelveken.
Tesztelési lépések:
- Fordítási fájlok jelenléte:
- Ellenőrizd, hogy a translations mappában megtalálhatók az adott nyelvi
almappák (
en_US
,hu_HU
, etc.). - Biztosítsd, hogy ezek az almappák tartalmazzák a megfelelő fordítási
fájlokat (
.csv
forrás és Godot által generált.translation
).
- Ellenőrizd, hogy a translations mappában megtalálhatók az adott nyelvi
almappák (
- Nyelv betöltése:
- Indítsd el a játékot egy nyelven (pl. angol), ellenőrizd, hogy a megjelenő szövegek angolul jelennek meg.
- Váltsd át a játék nyelvét magyarra a beállításokban.
- Ellenőrizd, hogy a szövegek magyar fordításban jelennek meg.
- Teljesség és konzisztencia:
- Ellenőrizd, hogy nincs hiányzó vagy hiányosan fordított szöveg (pl. nem jelenik meg kulcsszó vagy angol szöveg marad magyar nyelven).
- Biztosítsd, hogy a formázások (pl. sortörések, speciális karakterek) helyesen jelennek meg mindkét nyelven.
- Új nyelv hozzáadása:
- Teszteld, hogy újabb nyelvi almappa hozzáadása esetén (pl.
de_DE
) a játék felismeri és betölti a fordítást, ha a fájlok megfelelőek.
- Teszteld, hogy újabb nyelvi almappa hozzáadása esetén (pl.
- Hibakezelés:
- Teszteld, hogy hiányzó fordítás esetén a játék nem omlik össze, hanem a
kulcs nevét adja vissza. (pl.
BTN_PLAY
,BTN_QUIT
)
- Teszteld, hogy hiányzó fordítás esetén a játék nem omlik össze, hanem a
kulcs nevét adja vissza. (pl.
Elvárt eredmény:
- A fordítások helyesen töltődnek be és jelennek meg.
- A nyelvváltás zökkenőmentes és minden szöveg fordított.
- A hiányzó vagy hibás fordítások nem okoznak játékhibát.
7.2 Alapjáték Mechanikák¶
7.2.1 Játékos állapotváltozások tesztelése¶
Cél: Annak ellenőrzése, hogy a játékos fő mutatói (éhség, stressz, alkohol, reputáció) megfelelően változnak a játékmenet során, a beállított logika szerint.
Tesztelési lépések:
- Indítsd el a játékot új mentéssel, minden mutató alapértéken.
- Éhség tesztelése:
- Ne végezz étkezési cselekményt a játékban.
- Idő gyorsítása (ha van ilyen funkció) vagy várakozás természetes módon.
- Figyeld, hogy az éhség értéke folyamatosan nő
- Stressz tesztelése:
- Végezz olyan cselekményeket, amelyek növelik a stresszt (pl. kudarc munkahelyen, negatív esemény bekövetkezése).
- Ellenőrizd, hogy a stressz értéke a megadott mértékben nő.
- Alkoholszint tesztelése:
- Fogyassz alkoholt a játékban.
- Ellenőrizd, hogy az alkoholszint növekedjen.
- Várakozz, és figyeld, hogy az alkoholszint idővel csökken.
- Reputáció tesztelése:
- Hajts végre pozitív és negatív hatású cselekményeket (pl. segítés szomszédnak vs. lopás).
- Ellenőrizd, hogy a reputáció a megfelelő irányban változik.
Elvárt eredmény:
- Éhség: az érték folyamatosan változik az idő múlásával, és étkezés után visszaáll az előírt mértékre.
- Stressz: növekszik negatív események hatására, csökken pihenés vagy pozitív események után.
- Alkohol: fogyasztáskor azonnal nő, majd az idő előrehaladtával folyamatosan csökken.
- Reputáció: a játékos döntései közvetlen hatással vannak rá.
7.2.2 Családtagok éhség- és halálmechanikájának ellenőrzése¶
Cél: Annak ellenőrzése, hogy a családtagok éhségmutatója helyesen változik, és hogy a halálmechanika a tervezett feltételek szerint aktiválódik.
Tesztelési lépések:
- Indítsd el a játékot új mentéssel, minden családtag éhségértékét alaphelyzetbe állítva.
- Éhség növekedésének tesztelése:
- Ne etesd a családtagokat egy teljes játéknapig.
- Jegyezd fel minden időegységben (pl. óránként vagy naponta) az éhség értékét.
- Ellenőrizd, hogy az éhségmutató folyamatosan nő a beállított szabályok szerint.
- Éhség csökkenésének tesztelése:
- Etesd meg a családtagot a megfelelő étellel.
- Ellenőrizd, hogy az éhségérték azonnal csökken a specifikált mértékben.
- Halálfeltétel tesztelése:
- Hagyd, hogy a családtag éhsége elérje a maximális értéket.
- Ellenőrizd, hogy a halálmechanika aktiválódik, és a családtag állapota “halott”-ra vált.
- Halál hatásának tesztelése a játékmenetre:
- Figyeld meg, hogy a családtag halála befolyásolja-e a játékos mutatóit (pl. stressz növekedése, reputáció változása).
- Ellenőrizd, hogy a halott családtaggal már nem lehet interakcióba lépni (pl. etetés, beszélgetés).
Elvárt eredmény:
- Az éhség értéke idővel folyamatosan nő, ha nem történik etetés.
- Etetés hatására az éhség azonnal csökken a tervezett mértékben.
- Ha az éhség eléri a halálküszöböt, a családtag állapota „halott”-ra vált.
- A halál közvetlen hatással van a játékos állapotára és a játékmenetre, a tervezett logika szerint.
7.2.3 Morális döntések megfelelő működése és következmények nyomon követése¶
Cél: Annak ellenőrzése, hogy a játékbeli morális döntések megfelelően aktiválódnak, a játékos döntése rögzül, és a későbbi játékmenetben a tervezett következmények jelentkeznek.
Tesztelési lépések:
- Kezdőállapot rögzítése:
- Indítsd el a játékot új mentéssel.
- Győződj meg róla, hogy a releváns mutatók (pl. reputáció, stressz, pénz, családtagok állapota) ismert kezdőértéken vannak.
- Morális döntés kiváltása:
- Lépj be egy olyan eseménybe, amely morális döntést kínál (pl. lopás lehetősége, besúgás, családtag éheztetése más cél érdekében).
- Első opció tesztelése (pl. erkölcsös választás):
- Válaszd a pozitív, erkölcsös döntést.
- Jegyezd fel az azonnali változásokat a mutatókban.
- Játssz tovább addig, amíg a döntés hosszú távú következményei meg nem jelennek.
- Második opció tesztelése (pl. erkölcstelen választás):
- Ugyanebből a kiindulási állapotból ismételd meg a döntést, de válaszd a negatív, erkölcstelen opciót.
- Jegyezd fel az azonnali változásokat.
- Figyeld meg, hogy a hosszú távú következmények (pl. reputáció romlása, rendőrségi nyomozás, családi kapcsolatok romlása) megjelennek-e.
7.3 Munkavégzési szegmensek működése¶
7.3.1 Autószerelés¶
Cél: Annak ellenőrzése, hogy az autószerelés folyamatában az alkatrészek fogyása, az idő előrehaladása és a munkafolyamat logikája megfelelően működik.
Tesztelési lépések:
- Indítsd el a játékot egy olyan mentéssel, ahol elérhető az autószerelési munkalehetőség.
- Ellenőrizd az aktuális alkatrészkészletet és a rendelkezésre álló időkeretet.
- Indíts el egy javítási folyamatot.
- Figyeld meg, hogy az alkatrész a megfelelő mennyiségben fogy-e.
- Ellenőrizd, hogy a játékidő megfelelő mértékben halad-e előre a munka során.
- Fejezd be a munkát, majd hasonlítsd össze az eredményt a várttal (bevétel, készletcsökkenés, időmúlás).
Elvárt eredmény:
- Az alkatrészek pontosan annyival csökkennek, amennyit a feladat előír.
- Az idő múlása konzisztens a feladat időigényével.
- A munka bevétele és kimenetele megfelel a specifikációnak.
7.3.2 Bolti eladás¶
Cél: Annak ellenőrzése, hogy a boltban a vásárlók viselkedése, a készletkezelés és a pénzmozgások helyesen működnek.
Tesztelési lépések:
- Indítsd el a bolti munkarészt ismert kezdő készlet- és pénzállapottal.
- Kövesd nyomon a vásárlók érkezését és termékválasztását.
- Adj el terméket a vásárlónak.
- Ellenőrizd, hogy a készlet csökkenése pontos, és a pénzösszeg megfelelően növekszik.
- Figyeld meg, hogy a vásárlók logikája (pl. várakozás, elhagyás, impulzusvásárlás) a specifikáció szerint működik-e.
Elvárt eredmény:
- A készlet pontosan a vásárolt termék mennyiségével csökken.
- A bevétel pontosan a termék árának megfelelően növekszik.
- A vásárlói viselkedés megfelel az előre megadott logikai szabályoknak.
7.3.3 Irodai részleg¶
Cél: Annak ellenőrzése, hogy az irodai feladatok helyesen működnek, az interakciók rögzülnek, és a feladatok teljesítése után a jutalmak és következmények megfelelőek.
Tesztelési lépések:
- Lépj be az irodai részlegbe.
- Végezz el egy adminisztratív feladatot (pl. papírok kitöltése, adatbevitel).
- Ellenőrizd, hogy a feladat befejezése után a jutalom (pl. pénz, reputáció) pontosan jóváírásra kerül.
- Figyeld meg, hogy a feladat közbeni döntések (ha vannak) rögzülnek-e és befolyásolják-e a későbbi játékmenetet.
Elvárt eredmény:
- A feladat sikeres teljesítése után a jutalmak és következmények a specifikáció szerint jelentkeznek.
- A feladat során hozott döntések maradandó hatással bírnak.
7.4 Interakciók és Események¶
7.4.1 Véletlenszerű események aktiválása és változatai¶
Cél: Biztosítani, hogy a játékban megjelenő véletlenszerű események mind aktiválódnak, és a különböző változataik helyesen jelennek meg, működnek.
Tesztelési lépések:
- Előkészítés:
- Indíts el egy új játékot vagy tölts be egy olyan mentést, ahol a véletlenszerű események aktiválódásának feltételei adottak (pl. idő eltelt, adott állapotok).
- Automatizált eseménygenerálás:
- Használj egy teszt scriptet vagy játékmódot, amely többször (pl. 1000-szer) lefuttatja az eseménygenerálást.
- Minden alkalommal naplózd az aktivált esemény azonosítóját és a változatot.
- Változatok lefedettségének ellenőrzése:
- Ellenőrizd, hogy az összes definiált esemény és az összes ismert variáció legalább egyszer aktiválódott-e a futtatások során.
- Funkcionális helyesség:
- Véletlenszerűen válassz ki néhány eseményt és variációt.
- Játsszd le manuálisan vagy automatikusan az eseményt, ellenőrizve, hogy az esemény ténylegesen a specifikációnak megfelelő hatást váltja ki (pl. mutatók változása, játékállapot módosulása).
- Edge esetek vizsgálata:
- Teszteld, hogy a véletlenszerű események nem lépnek fel olyan körülmények között, amelyek nem megengedettek (pl. nem aktiválódnak, ha a játékos állapota nem felel meg).
Elvárt eredmény:
- Az összes véletlenszerű esemény és variáció legalább egyszer előfordul a tesztek alatt.
- Az események hatásai megfelelnek a játéktervezői szándéknak és specifikációnak.
- Nem történik nem kívánt esemény aktiválás nem megfelelő körülmények között.
7.4.2 Lopási mechanika működése¶
Cél: Tesztelni, hogy a lopási mechanika működése helyes, beleértve az első és második lebukás következményeit, illetve hogy ezek a játékállapotra és a karakterre gyakorolt hatások megfelelnek a specifikációnak.
Tesztelési lépések:
- Indítsd el a játékot egy olyan helyzetből, ahol lopás lehetséges.
- Végezzen el egy lopási kísérletet, amely sikeres vagy lebukással járhat (szimuláld mindkét esetet).
- Ha az első lopás lebukással jár:
- Ellenőrizd, hogy a játék megfelelően kezeli az első lebukás következményeit (pl. reputáció csökkenése, büntetés, figyelmeztetés).
- Végezzen el egy második lopási kísérletet, és ha ez is lebukással jár:
- Ellenőrizd a második lebukás súlyosabb következményeit (pl. jogi eljárás, családtagok reakciója, játékállapot módosulása).
- Ellenőrizd a játékos állapotváltozóit, a játék világának reakcióit mindkét eset után.
- Figyeld meg, hogy a lopási mechanika nem engedélyezi a lopást indokolatlan helyzetben (pl. ha a játékos már túl sokszor bukott le).
Elvárt eredmény:
- Az első lebukás következményei az előírtak szerint jelentkeznek, és a játék állapota megfelelően frissül.
- A második lebukás súlyosabb, hosszabb távú következményekkel jár.
- A lopás lehetősége és kimenetele logikusan, a játékszabályok szerint történik.
- Nem fordul elő inkonzisztens vagy váratlan viselkedés a lopási mechanika során.
7.4.3 Alkoholhasználat hatása a mutatókra¶
Cél: Biztosítani, hogy az alkohol fogyasztása a játékban helyesen módosítja a játékos és családtagok mutatóit (pl. stressz, éhség, reputáció, reakcióidő), és hogy ezek a változások idővel megfelelően visszaállnak vagy tovább hatnak.
Tesztelési lépések:
- Előkészítés:
- Indíts el egy játékot olyan állapotból, ahol a játékos és családtagok mutatói normál értékeken vannak.
- Alkohol fogyasztása:
- Fogyassz alkoholt a játékban a megfelelő mennyiségben
- Mutatók változásának ellenőrzése:
- Közvetlenül az alkohol fogyasztása után mérd meg a releváns mutatókat (pl. stressz csökken vagy nő, reakcióidő romlik, éhség szintje változik, reputáció módosul). Rögzítsd az értékeket, hogy össze tudd hasonlítani a várható és a tényleges hatást.
- Időbeli hatás vizsgálata:
- Játssz tovább, figyeld meg, hogyan változnak a mutatók idővel (pl. az alkohol hatásának csökkenése, hosszú távú következmények).
- Ellenőrizd, hogy az alkohol hatása nem marad fenn örökre, illetve hogy az esetleges negatív következmények megfelelően érvényesülnek (pl. reggeli másnaposság).
- Különböző helyzetek tesztelése:
- Teszteld, hogy az alkohol hatása eltérő-e különböző karaktereken (pl. játékos vs családtagok).
- Vizsgáld, hogy az alkoholhasználat nem okoz hibás viselkedést, vagy nem vezet játék összeomláshoz, hibákhoz.
Elvárt eredmény:
- Az alkohol fogyasztása után a mutatók az előírt módon változnak.
- A hatások idővel csökkennek, nem maradnak fenn tartósan.
- Az eltérő adagok különböző hatásokat eredményeznek.
- Nincs nem kívánt viselkedés vagy játékhiba az alkoholhasználat miatt.