Bevezető
Az előző részben egyrészt felvázoltuk a vizsgálat szempontjait és azt, hogy ezeket milyen értékkel fogjuk reprezentálni, másrészt megkezdtük a TestCraft platform részletes vizsgálatát. Értékeltük az eszköz képességeit egy egyszerűbb regisztrációs űrlapon, ahol azt tapasztaltuk, hogy bár az AI gyorsan generál teszteseteket, ezek minősége és lefedettsége még emberi felülvizsgálatot és kiegészítést igényel. Az eszköz használatával azonban a tesztelési idő jelentősen, körülbelül a harmadára-felére csökkenthető.
Ebben a részben folytatjuk vizsgálatunkat, ezúttal egy összetettebb felületen, a Bárdi autó webshopjának kereső rendszerén teszteljük az eszköz képességeit. Emellett részletesen elemezzük a TestCraft automatizálási funkcióit is, különös tekintettel a Playwright-Python környezetben történő használatra. A cikk végén összegezzük tapasztalatainkat, és átfogó értékelést adunk az eszköz gyakorlati alkalmazhatóságáról a mindennapi tesztelési munkában.
Bonyolultabb oldal vizsgálata
Objektumok megtalálása
A teljes oldal kijelölése után:

A területen található és megtalált objektumok:
- 5 tab fül ✘ (Homályos tesztekből kiindulva talán 2-re gondolt az 5-ből.)
- 1 kereső mező ✔
- 1 keresés gomb ✔
- 8 szekció, amely további keresésre szolgál ✘ (Ezekre az objektumra nem gondolt.)
A megtalálás sikeressége (ha beleszámítjuk a homályos „talán 2”-t): 26,6%
Generált tesztek
Az alábbi tesztek lettek generálva:
- Verify that entering a valid vehicle identification number (VIN) displays the correct vehicle details.
- Check that selecting a vehicle from the list of recommendations leads to the appropriate parts or accessories page.
- Confirm that the search functionality works when entering valid part numbers, returning relevant results.(*)
- Ensure that the user can navigate between different tabs (VIN search, car search, part number search) without issues.
- Validate that the „Keresés” button is enabled when a valid VIN or part number is entered.(*)
- Test that the history of VIN searches displays correctly when searches have been previously made.(*)
- Verify that the garage section updates correctly when a VIN is added.
- Enter an invalid VIN and verify that the user receives an appropriate error message.
- Attempt to search with an empty search field and ensure that no results are displayed.
- Test the response when entering a VIN that does not exist in the database and check for a relevant error message.
- Check that the system does not allow the submission of a VIN that is too short or too long.
- Attempt to navigate to a part number search without selecting a vehicle first and confirm that an error or prompt appears.
- Enter invalid characters (e.g., symbols or letters in numeric fields) and verify that the system rejects the input.
- Simulate a user entering a VIN with special characters and observe how the system handles the input.
- Test the system’s behavior when a user tries to search for parts while offline or with a poor internet connection.
- Explore the interface by using a screen reader to ensure accessibility features are functioning correctly.
- Investigate how the application handles multiple rapid searches (e.g., spamming the search button) and whether it can manage the load without crashing.
- Check the functionality of the „Back” button in various contexts, such as after a search or when navigating through tabs, to ensure it always returns the user to the expected page.
- Simulate a scenario where a user enters a VIN, receives an error, and then tries to modify the input quickly to assess the responsiveness of the interface.
Színjelölések:
- piros: azon tesztek, melyeknek semmi értelmük nincs
- kék: valid tesztek lehetnének, de tartalmaznak félig fals információkat, vagy nem megértett működést
- zöld: megfelelőnek ítélt tesztek
Tesztek validsága: 53%
Minőségben való eltérés manuális tesztíráshoz viszonyítva:
- A tesztek 1-2 sorosak. Nem tartalmaznak lépéseket.
- Nem létező objektumra is van teszt.
- Nem a működés szerint zajlik a tesztesetek nagy része.
- Nem számolt azzal, hogy belépés szükséges a funkciók zöméhez.
- Kihagyott tabokat, amelyeken legördülők is vannak és kereshető alkatrészek. (Ez abból a szempontból nem gond, hogy annak nem feltétlenül láthatja a Front End kódját, viszont magát a tabfület látnia kell.)
- A tesztekben írt információ nagyon kevés. Az AI valószínűleg a Front End kódból próbálja kitalálni a működést, így az tervez adott tesztekkel, de nem tudja, hogy annak mik a pontos szabályai. pl.: Invalid adatmegadásra generált összevont tesztet, de nem tudja azt, hogy vajon mi számít invalid adatnak az egyes mezőknél. Ezt manuálisan kell pótolnia a szakembernek.
- Nem tudja, hogy a szekcióknak mi a feladata (amire nem is írt tesztet) a keresés során.
Lefedettség (szubjektív megítéléssel)
A generált tesztek közül 3 db az, amely
- valid
- értékelhető tesztesetként
- a tesztelt funkcionalitás tapasztalat alapján megfelelő kockázatú funkciót fed le
Átböngészve a generált teszteket, az alábbiakat hiányolom hasonló kontextusban:
- A 8 db kihagyott szekcióra külön szűrési teszteset. (8db)
- Ugyanezen szekciókra db-s összevetés hogy feldob-e mindent, amit kell.(8db)
- Bejelentkezés nélküli funkciók tesztje.(tabfülek, cikkszám kereső) (6db)
- + A többi tabfülön található keresések, melyet nem számolok bele a lefedettségbe, mert nem biztos hogy megfelelő információja volt ezekről, de egy szakembernél ez egyértelmű lenne, így mindenképp megemlítem (kb. 20db teszteset).
Ez azt jelenti, hogy a lefedettség 12%.
Befektetett idő
A generálás kb. 5 másodpercig tartott.
Annak ellenére, hogy az esetek nincsenek lépésszinten kidolgozva, mint szakember esetén, az emberi befektetett időt kb. 6-7 órának saccolom egy tényleges projekten megszakítás nélküli munka esetén. (Abból kiindulva, hogy az ember próbálgat, specifikációt elemez, különböző eszközöket vesz igénybe közben, stb stb..)
Ha az AI által generált eseteket veszem alapul és megnézem, hogy azt egy szakember átnézi, valamint lépésszinten kidolgozza, akkor mint korrekciós idő, kb. 5 órára jön ki. (ez azért sok, mert eleve sok a rossz generált eset).
Röviden:
- AI: 5 másodperc
- Szakember: 6-7 óra
- AI+korrekció: 5 óra ✔
Automata tesztek
Egyszerű oldal
Igaz, kritériumként nem szerepelt, de rögtön az elején szembetűnő, hogy az összes generált tesztből (15db) csak 7 db-t generált le. Semmilyen visszajelzést nem kaptam, hogy a többi miért maradhatott le. (Valószínűnek tartom, hogy túl sok AI tokenbe került volna a teljes szövegmennyiség futtatása.)
Generált kód formázottsága ✔
A kód nagyon szépen formázott. Jól használható lehet ahhoz, hogy kiindulási alapként felhasználja egy automata szakember. A lokátorok Page Object Model szerint vannak rendezve, igaz egy állományban vannak az interakciót végző függvényekkel. ( De ez nem probléma, hisz ez bevett szokás volt régebben. Ezeket már inkább külön állományokba szervezzük.)
Generált kód szervezettsége OK
A generált kódban kommentekkel van jelölve mely kódrészlet mely fájlhoz tartozik, így szinte csak copy-paste-re van szükség a futtatásukhoz. Egy komplexebb automata keretrendszerben persze ennél sokkal strukturáltabban kell szervezni az adatokat és függvényeket. Nem mondanám rossznak, de ez önmagában még nem elég egy komolyabb projektmunkához. Itt mindenképp szükség van további szervezésre.
Példák:
- Üzleti adatok külön szervezése
- Config adatok külön szervezése
- Felhasználói kulcsszavak/függvények külön állományba rendezése
Lokátorok minősége OK
A generált lokátorok kb. 60-70%-ban használhatóak. A maradékba bele kellett nyúlni. Itt kiemelném, hogy előfordult nem létező lokátor is (mint ahogy nem létező objektum is 🙂 ).
Objektumokra való várakozás kezelése ✘
A feladatban két várakozás van. Amikor megvárjuk, hogy betöltsön az oldal, a másiknál pedig megvárjuk, hogy megjelenjen egy üzenet, ha kitöltöttük és submit-oltuk az adatlapot.
Ebből előbbit alapból lekezeli a Playwright eszköz, így a generálásnál csak utóbbira kellett volna odafigyelni. Azonban ezt nem sikerült teljesíteni egy releváns teszt esetén sem. Sajnos úgy tűnik, hogy az AI nem figyel a várakozásokra, pedig ez tipikusan egy nehéz része az automatizálásnak.
Mindenképpen szakemberre van szükség ezen lépéseknél.
Alkalmanként megjelenő objektumok kezelése ✘
Mivel a példaoldal nem tartalmaz ilyet, kerestem egy site-ot ahol van dialog, ami néha megjelenik.
Ahogy várható volt, a TestCraft az aktuális oldalra írta a kódot és nem tudta, hogy ez nem mindig jelenik meg. Ez esetben is szakember segítségére van szükség.
Időbeni különbség és korrekciós idő
A generálás kb. 10 másodpercig tartott.
A lokátorok kigyűjtése, a kód megírása 0-ról, valamint annak formázása egy szakembernek becsléseim szerint kb. 8 óra.
A generált kód hibáinak javítása, törlések, módosítások, lokátorok csiszolgatása, időzítések hozzáépítése kb. 4 óra. Ez persze nagyban függ az oldal nehézségétől és a generált kód használhatóságától.
Röviden:
- AI: 10 másodperc
- Szakember: 8 óra
- AI+korrekció: 4 óra ✔
Bonyolult oldal
Ezúttal darabszámra számolva minden teszthez lett generálva automata kód.
Generált kód formázottsága ✔
A kód ezúttal is nagyon szépen formázott. Jól használható lehet ahhoz, hogy kiindulási alapként felhasználja egy automata szakember, hasonlóan az egyszerű oldalhoz.
Generált kód szervezettsége OK
Tulajdonképpen ugyanazok sorolhatóak fel itt is, mint az egyszerű oldalnál. A szétszervezés némileg hiányos.
Példák erre:
- Üzleti adatok kiszervezése
- Config adatok kiszervezése
- Felhasználói kulcsszavak/függvények külön állományba rendezése
Lokátorok minősége ✘
A generált lokátorok egyike sem jó. Vagy nem létező objektumra mutatnak, vagy nem egyértelműen azonosítanak.
Objektumokra való várakozás kezelése ✘
Sajnos azt látom, hogy az AI továbbra sem figyel a várakozásokra, pedig ez tipikusan egy nehéz része az automatizálásnak.
Mindenképp szakemberre van szükség ezek pótlására.
Alkalmanként megjelenő objektumok kezelése ✘
Egyszerű oldal esetén is másik site-ra volt szükség ennek tesztelésére és már ott is megbukott a tesztje ezen pontnak, így nincs értelme külön vizsgálni újra.
Szakember segítségére van szükség továbbra is.
Időbeni különbség és korrekciós idő
A generálás kb. 20 másodpercig tartott.
A lokátorok kigyűjtése, a kód megírása 0-ról, valamint annak formázása egy szakembernek becsléseim szerint kb. 16 óra.
A generált kód hibáinak javítása, törlések, módosítások, lokátorok csiszolgatása, időzítések hozzáépítése kb. 10 óra. (Sajnos ezúttal rosszabb minőségű a kód.)
Röviden:
- AI: 20 másodperc
- Szakember: 16 óra
- AI+korrekció: 10 óra ✔
Összegzés
A fenti eredményekből kiderül, hogy habár a TestCraft sokat tud segíteni a tesztelés során, sajnos sok időt kell szánni arra is, hogy a munkáját ellenőrizni tudjuk.
Röviden a két vizsgálatból kiindulva kb. 37%-kal kerül kevesebb időbe a manuális tesztesetírás, valamint 44%-kal kevesebb időbe az automata kód implementálás. Ezen értékeknek persze elég széles szórása lehet, függően a tesztelt alkalmazástól.
Amitől függhet:
- A tesztelt alkalmazás felhasználóbarátsága (főleg a szövegezések)
- A tesztelt alkalmazás Front End kódjának minősége
- A tesztelt alkalmazás stabilitása
Záró gondolatok és a Mikulás létezésének a bizonyítéka
TestCraft vagy ChatGPT?!
Ez a cikk a TestCraft eszköz használhatóságáról szólt, de a vizsgálat során kiderült, hogy valójában ez inkább magának a chatGPT-nek, és a hasonló AI LLM-nek a megmérettetése.
Ugyanis miközben a kritériumokat ellenőriztem, megpróbáltam rájönni, hogy a generálás hogyan zajlik. Ebből az derült ki számomra, hogy nagy eséllyel ez az eszköz csak egy felhasználói felület, ami kimásolja egy adott oldal aktuális DOM kódját és előre meghatározott sablon alapján ír egy promptot a ChatGPT-hez és a választ visszaformázza a felhasználó számára. Ezt bizonyítja az is, hogy ha megszerkesztek egy generált tesztet, akkor azt is ugyanúgy legenerálja, akár oly módon is, amit az eszköz alapból nem is tudna. Például megkértem arra, hogy generáljon Robot Framework kódot ahhoz hogy létezik-e a Mikulás, (mindezt magyarul). Simán le is generálta robot framework kóddal, „True” válasszal. Némileg megnyugtató, hogy az AI fixen hisz a Mikulásban.
Az eszköz ezt a működést nem is rejti véka alá, ugyanis beállítható mögé saját szerveren futó AI LLM is. Ez esetben az fogja kezelni ezen kérdés hívásokat.
Ez alapján pedig érdemes elgondolkozni azon, hogy hasznos-e az eszköz ahhoz képest, mint ha közvetlenül mi kérdeznénk AI-tól szövegesen. Ugyanis az eszköz nem reklámozta és nem is engedi, hogy a saját maga által „ígért” automata eszközök és nyelvek kombinációja helyett más kódot generáljunk, de a ChatGPT meg tudja ezt csinálni ugyanilyen minőségben azokkal is.
A TestCraft helyett a ChatGPT teljesen jól tud működni. Márcsak egy jó prompt kell… Megvizsgálunk még néhány eszközt, de ezt a prompt-olást még elővesszük.


