Szuperhősök testreszabása
Egy számítógépes játékban a hősöket testreszabhatjuk. A következő táblázat tartalmazza a lehetőségeinket:
Hős | Izom Tódor | Nagy Zoló | Sebes Ülés | Varázs Ló | |||
Fegyver | Nincs | Péklapát | BuzoGány | BűzBomba | Mosatlan Zokni | Ásó-Kapa-Nagyharang | |
Ruha | Nincs | Álca Tálca | Vaskád | GányGúnya | IzomPóló | ||
Képesség | Nincs | Rugóláb | Paca | Cérnahang | Időmilliomos | Álomgyáros | Vágyokozó |
A kérdés, hogy hogyan teszteljük le a testreszabás funkciót?
Időmilliomos küldetés
Ha nagyon sok időnk van, akkor vehetjük az összes kombinációt:
- Van 4 hős, mindegyiknek választhatunk 6 féle fegyver közül. 4*6=24 kombináció
- Az előző 24 kombináció mindegyikét kipróbálhatjuk 5 féle ruhában: 24*5 = 120 kombináció
- A 120 kombináció mindegyikét 7 féle képességgel ruházhatjuk fel: 120*7 = 840 kombináció
Ha minden próbálgatás csak 3 perc (össze kell állítani a hőst, meg kell vizsgálni, hogy működik-e, le kell jegyezni a tapasztaltakat), akkor 42 óra alatt tudjuk letesztelni ezt a funkciót.
Ennyi időt nem szoktak adni egy ilyen funkció egyszeri letesztelésére. Mit lehet tenni?
Tesztelő 1. szuperereje: intuíció
- Vegyünk ki néhány gyanús kombinációt. Milyen az, ha nincs ruha a hősön? Milyen az, ha a hősön se ruha, se képesség, se fegyver? Mit kezd egy Paca az Álca Tálcával?
- Vegyünk ki néhány véletlen kombinációt, amire lesz idő.
Ha van 2-3 tesztelő, akkor ezt már elég tesztelésnek vehetjük.
Általában körülbelül ez a gyakorlat. Sajnos ezen a gyakorlaton sok hiba átszökik. Túl sok.
Tesztelő 2. szuperereje: elmélet + gyakorlat
A megfigyelések alapján a legtöbb hiba valamilyen paraméterpár következménye. Tehát esetünkben valószínűsíthető, hogy a legtöbb hiba valami olyasmiből fakad, hogy például egy fegyver nem fér össze egy képességgel vagy például egy ruha nem fér össze egy hőssel. Ezekben az esetekben a másik két paraméter „mindegy”.
Akkor érdemes lenne úgy összeállítani a teszteseteket, hogy meglegyen az összes ilyen párosítás. Oké, de ezt mégis hogyan?
Microsoft PICT
Alapozás
A nyílt forrású, ingyenes Microsoft PICT pont ilyen feladatra lett kitalálva. Lássuk a fenti példányát hogyan lehet a segítségével megoldani.
- Beszerzés: A Windows-on futtatható exe-t itt tudod beszerezni:
https://github.com/microsoft/pict/releases Keresd a legutolsó pict.exe-t. - Tedd egy üres mappába ezt az exe-t. Pl ide.: C:\pict
- Hozz létre egy szöveges állományt a bemeneti adatokkal az előbbi mappába. input.txt:
Hős: IzomTódor,NagyZoló,SebesÜlés,VarázsLó
Fegyver: Nincs,Péklapát,BuzoGány,BűzBomba,MosatlanZokni,Ásó-Kapa-Nagyharang
Ruha: Nincs,ÁlcaTálca,Vaskád,GányGúnya,IzomPóló
Képesség: Nincs,Rugóláb,Paca,Cérnahang,Időmilliomos,Álomgyáros,Vágyokozó
- Indíts egy parancssort
- cd c:\pict
- pict input.txt
Készen vagyunk. Kaptunk 45 rekordot a képernyőre.
Megjegyzés: Windows-on a terminál a 852-es kódlapot használja, ezért érdemes a bemeneti tesztadatokat is ilyen karakterkódolással tárolni. Ezt például a Notepad++ programmal könnyen be lehet állítani (Közép-európai karakterkódolások között található a 852-es).
Kis szöszmötölés FAQ
- Hogyan kapjuk meg ezt az előző eredményt egy állományban?
Ehhez kis DOS ismeretre van szükség. Így:
pict input.txt > eredmeny.csv
A „>” jel az jelenti, hogy a keletkező eredményt át kell irányítani. Az „eredmeny.csv” mondja meg, hogy hova. Az eredmeny.csv tartalma ezután egy TAB-okkal elválasztott táblázat. Excelbe is beilleszthető.
- Ki lehet számolni előre mennyi eset lesz?
Igen. Így:
pict input.txt /s
Az első érték azt mutatja, hogy hányféleképpen tudná elkészíteni a kért összeállítást, a második érték azt mutatja, hogy egy összeállítás hány rekordot tartalmaz. (Esetünkben 45 rekordról van szó és ezt 179 féleképpen tudná előállítani.)
- Egy másik összeállítást szeretnék ugyanezekkel az adatokkal
Két módszer van. Az előbbi kérdésnél látható mennyiféleképpen tudja előállítani a kért összeállítást. Vagy megmondod hányadik ilyen összeállítást szeretnéd: Pl. 14.-et:
pict input.txt /r:14 > eredmeny.csv
Vagy kérsz egy véletlenszerűt:
pict input.txt /r > eredmeny.csv
Megjegyzés: Hogy mennyi rekord lesz az attól is függ, hogy a variáció előállító algoritmus honnan indul. Így előfordulhat, hogy bizonyos eredmények kevesebb, vagy több rekordot fognak tartalmazni az alapesetben generált 45 rekordnál.
- Csak paraméterpárokra lehet ilyet csinálni?
Nem csak paraméterpárokra, hanem paraméterhármasokra is, vagy bármilyen számú paraméter együttállásra tudunk készíteni tesztadatsorokat. Maximum a paraméterek száma. Ez esetünkben 4. Ha 4 paraméterre állítunk elő tesztadatsorokat, akkor lényegében az összes paraméterkombinációt megkapjuk:
pict input.txt /o:4 > eredmeny.csv
3-ra:
pict input.txt /o:3 > eredmeny.csv
Összefoglaló
Természetesen nem minden esetben lesz elég a 45 eset. Vagy lehet, hogy ezekből lesz olyan, ami nem kell, viszont mindenképpen szeretnénk belevenni, hogy a hősöknek semmilyük sincs. Szóval a tesztelői megérzés és kockázatok felmérése nem hagyható el. Ugyanakkor, mint látni fogjuk, a PICT-be bele lehet írni, hogy ezeket is vegye figyelembe.
A PICT remek eszköz. A manuális tesztelőknek és a tesztautomatizálóknak is. Csak az alapoknál tartunk és máris remek tesztadat összeállításokat tudunk gyártani a segítségével. Ez a szerény, egyszerű kis program ennél jóval többet tud. A következő részekben szeretném megmutatni a PICT nagyszerűségét. Tartsatok továbbra is velem! 😊
Előzetes
Mi van akkor, ha Izom Tódor-ra mindenképpen kell ruha? Az is megoldható, hogy ha nincs ruha, nincs fegyver sem? Ha ebben a tesztkörben csak Varázs Ló-vat akarjuk tesztelni Rugóláb képességgel, akkor mit tudunk tenni? Arra is van megoldás, ha 1 hősnek 3 különböző képességet kell választani? Hogyan lehet multiplayer teszteléshez 2 hőst egyidejűleg előállítani?
Nagyon jó kérdések! (Hiszen én írtam ide 😊) Ezekre a következő részben találjátok meg a választ!
Addig is jó tesztadatot mindenkinek!
Hajrá! 😊