Időmilliomos Varázs Ló, avagy variációk tesztadatokra: PICT (1. rész)

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ódorNagy ZolóSebes ÜlésVarázs Ló
FegyverNincsPéklapátBuzoGányBűzBombaMosatlan ZokniÁsó-Kapa-Nagyharang
RuhaNincsÁlca TálcaVaskádGányGúnyaIzomPóló
KépességNincsRugólábPacaCérnahangIdőmilliomosÁlomgyárosVá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.

  1. Beszerzés: A Windows-on futtatható exe-t itt tudod beszerezni:
    https://github.com/microsoft/pict/releases Keresd a legutolsó pict.exe-t.
  2. Tedd egy üres mappába ezt az exe-t. Pl ide.: C:\pict
  3. Hozz létre egy szöveges állományt a bemeneti adatokkal az előbbi mappába. input.txt:
    • 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ó
  4. Indíts egy parancssort
  5. cd c:\pict
  6. 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

  1. 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á! 😊

Megosztás

Kérsz értesítést a legújabb cikkekről?

Kapcsolódó cikkek

Hogyan segíti az AI a tesztesetek generálását?

A modern szoftverfejlesztés egyik legnagyobb kihívása az idő. A sprintek rövidek, a funkciók száma folyamatosan nő, miközben a minőségi elvárások nem csökkennek. Ebben a feszített tempóban a teszt tervezése és a tesztesetek megírása gyakran a fejlesztési folyamat szűk keresztmetszetévé válik. Egy manuális tesztelő órákat tölthet azzal, hogy egy-egy komplex user story alapján pontról pontra kidolgozza

Hol bukik el leggyakrabban a szoftvertesztelés egy projektben? 4 szisztematikus hiba, amit nem szabad elkövetnetek

Minden projektmanager ismeri az érzést: a sprint végi demón minden zöld, az elfogadó tesztek átmentek, a csapat gratulál egymásnak – aztán az élesítés után két nappal becsörög az ügyfél, hogy egy kritikus üzleti folyamat nem működik. De hogyan juthatott keresztül egy ekkora hiba az egész tesztelési rendszeren? A válasz szinte sohasem az, hogy „a tesztelők

Biztosítási jutalékszámítási rendszer AI-alapú tesztelése

Egy biztosítótársaság pénzügyi működésének és értékesítési hálózatának alapköve a jutalékelszámolás. Ha a jutalékszámítási rendszerben hiba lép fel, az nemcsak közvetlen anyagi veszteséget jelent, hanem azonnal erodálja az értékesítési ügynökök bizalmát is. Egy ilyen komplex rendszer teszteléséhez óriási mennyiségű, változatos és élethű életúttal rendelkező adatra van szükség. Ugyanakkor a szigorú adatvédelmi szabályozások (GDPR) miatt az éles

Scroll to Top