Játszunk el a gondolattal, hogy tesztelőként dolgozol egy webshop fejlesztési projekten. Neked kell ellenőrizni azt a követelményt, amely a termékek esetében nem enged egyszerre öt darabnál többet vásárolni. Ameddig csak 10-20 cikk van az oldalon, türelmesen végigkattintgatod minden egyes esetben. Enged öt darabot vásárolni? És hatot? Huszat? Ám hirtelen több száz, esetleg elrettentésképp több ezer új termék jelenik meg, ez a módszer pedig már kevésbé villanyoz fel. Mielőtt kétségbeeesnél, és hanyatt-homlok menekülnél, van egy jó hírünk: ma már az automatizált tesztek világát éljük! Hatékonyabb lenne, ha tudnál olyan programot írni, amely mindezt elvégzi, ugye?
Az 1993-ban alapított USA központú
EPAM Systems, Inc. nemzetközi ügyfelei digitális transzformációját segítő,
platformfejlesztéssel és tanácsadással foglalkozó cég. Több, mint 41 150 szoftvermérnökkel dolgozik a világ több, mint 35 országában. Magyarországon több mint 1700 főt alkalmaz
Budapesten, Debrecenben és Szegeden működő irodáiban. A New York-i tőzsdén jegyzett EPAM
számos elismeréssel rendelkező dinamikusan fejlődő cég, amelynek ügyfelei között több Fortune 500 vállalat is megtalálható. Az EPAM irodái jó hangulatú
digitális laboratóriumok, ahol munkatársaink nemzetközi projekteken dolgoznak a legkorszerűbb technológiákat alkalmazva.
Indulj el Te is a tesztautomatizálási pályán! Az EPAM
Tesztelő Mentor Programja segítségével pár hónap alatt beletanulhatsz a munkakörbe!
Iván József egy évtizedes pályára tekint vissza az EPAM-nál,
Software Testing Managerként nem csak a budapesti tesztelő csapat vezetését látja el, de ő a felelőse a cégen belüli tesztautomatizációs mentorprogramnak is, illetve a vállalat globális tesztelő közösségének (Global Testing Community) útját is egyengeti, ennek keretében rengeteg webinárt, konferenciát szerveznek a tudásmegosztást elősegítve. Példája nagyon jól szemléleti azt a karrierutat, amelyet egy nagyvállalatnál tesztautomatizálási mérnök pozícióból indulva végig lehet járni, felhalmozott tapasztalatából most Te is megismerheted, milyen az élet tesztautomatizálóként!
ITmap: Milyen tanulmányokat folytattál, és azok hogyan kapcsolódnak a tesztautomatizálási szakértő munkakörhöz?
Iván József: Nincs egyetemi képzésben szerzett diplomám, egy OKJ-s, felsőfokú programozói tanfolyamot végeztem el, ezzel a hátam mögött indult a pályám 1998-ban szoftverfejlesztőként.
ITmap: Milyen karrierutat jártál be addig, ameddig végül eljutottál mostani pozíciódba?
Iván József: Nagyon korán, már 2001-ben kapcsolatba kerültem a tesztautomatizálással, amikor a
technológia olyannyira gyerekcipőben járt, hogy igazából még szakszerű elnevezése is alig akadt. Az egyik nagy telekommunikációs vállalat számára fejlesztettünk mai elnevezéssel élve tesztrobotokat külső és belső rendszerekhez egyaránt, lényegében próba-szerencse alapon. Ezt követően az NNG-nél már tudományosabb módszertan szerint működtünk, először tesztelőként dolgoztam náluk, majd csapatvezető lettem. Ez az időszak különösen izgalmas volt, hiszen a csapattal kaptunk egy terméket, beültünk egy autóba, és ún. field (azaz terep) teszteken nem csak hazánkban, de a világ más országain is keresztülutazva teszteltük a navigációs eszközöket. Egy egyéves kitérő után 2011-ben kerültem az EPAM-hoz
szenior tesztelőként, majd
vezető tesztelő lettem, mígnem jelenlegi pozíciómba kerültem.
ITmap: Hogyan jutottunk el a manuális tesztelési metódustól az automata tesztekig, illetve melyek ez utóbbi előnyei?
Iván József: A tesztautomatizálás elterjedése mögött egy
evolúciós folyamat húzódik meg, amely a piaci változásokra adott választ fedi le. A verseny egyre inkább megkövetelte a vállalatoktól, hogy
minél gyorsabban dobják piacra a termékeket, amelynek a fejlesztési folyamatra is óriási hatása volt, és természetesen a tesztelést sem hagyta érintetlenül: a tesztelésre, a funkciókra vonatkozó követelmények teljesülésének ellenőrzésére szánt időt
rövidíteni kellett. Korábban szigorúan először a fejlesztés zajlott le, és csak utána lehetett elkezdeni tesztelni, ami ekkor még leginkább manuális módszert jelentett. Ez az igen időigényes folyamat változott meg úgy, hogy a
fejlesztéssel párhuzamosan írjuk az automata teszteket. Mindez elsősorban
programozói tudást igényel, de nem olyan mélyen, mint fejlesztői pozíciók esetében. Mire egy termékfunkció fejlesztésével elkészül a csapat, az automata teszt is rendelkezésre áll, már lehet is futtatni, illetve, ami nagyon lényeges, bármikor
újrafuttatni. Ezáltal folyamatos visszajelzést kapunk arról is, hogy egy új funkció mennyire van (negatív) hatással a korábbi működésre, a manuális tesztelés jól meghatározott része pedig kiváltható. Nagyon fontos kiemelni, hogy
manuális tesztelésre mindig is szükség lesz, mindössze jól le kell szűkíteni azt a kört, amikor erre időt és erőforrást vetünk be. Már 2011-ben is sok automata tesztet írtunk az EPAM-nál, ekkor azonban még egyértelműen a manuális tesztelés volt a hangsúlyosabb, mára ez megváltozott, de a mai napig sok olyan kollégánk van, aki kifejezetten csak kézi teszteléssel foglalkozik.
ITmap: Mit csinál pontosan egy tesztautomatizálási mérnök?
Iván József: Az évek során óriási
fejlődésen ment át a technológia, régebben megírtuk a kódot, majd fizikailag ott kellett lennünk, meg kellett nyomnunk a megfelelő gombot, hogy lefusson a teszt. Ma a tesztautomatizálási mérnök megírja a kódot az
üzleti igényekből, követelményekből levezetett tesztesetekre
Java-ban, .Net-ben, Python-ban, vagy az éppen szükséges programnyelven, figyel a
clean kódra - azaz a tesztkódok írása során az egyik legfontosabb szempontja az lesz, hogy olyan kódot adjon ki a kezéből, amit bármely más szakember azonnal átlát és képes módosítani vagy továbbfejleszteni - , majd ezeket feltölti egy verziókövető rendszerbe. Onnan az automata tesztek bekerülnek a fejlesztési folyamat meghatározott részeibe, és teljesen automatikusan lefutnak anélkül, hogy bárkinek el kellene indítani azokat. Manapság olyan törekvések is vannak, hogy bizonyos funkciók manuális tesztelés nélkül kerülhessenek ki a felhasználók elé. A szakemberek nem csak kódrészeket írnak,
tesztelési keretrendszereket is készítenek, amely mélyebb, illetve szeniorabb tudást igényel. Ezek célja, hogy az
alkalmazás minden részére átfogó tesztelési megoldást biztosítsanak, majd elkészüljenek azok a riportok, amikből látni lehet, hogy hogyan történt a futtatás, milyen hibák fordultak elő, megfelelő technológiákat használtak-e, hiszen a termék felhasználók által látható, illetve nem látható részeire más-más megoldások vonatkoznak. A
tesztautomatizálási mérnök lényegében pontosan azt csinálja, mint egy fejlesztő: részt vesz a tervezésben, a fejlesztések becslésében, a fejlesztési fázisok átbeszélésében. Az ő fejlesztendő része az, hogy
megírja a tesztautomatizálási scripteket, sok esetben ott van az elért eredmények kétheti kiértékelésénél, riportálja a hibákat, azokra hibajegyet vesz fel, a hibákra tesztet ír, átgondolja, hova lehetne még teszteket felvenni, az első pillanattól az utolsóig jelen van, részt vesz a termék fejlesztésének teljes életciklusában a tervezéstől az élesítésig. Főleg a junior kollégák arcán szoktuk látni a meglepődést, amikor szembesülnek vele, hogy ez a munkakör valójában
milyen közel áll a fejlesztői munkához, ez sokak számára nem ismert.
ITmap: Milyen szakmai ismeretekre van szükség ahhoz, hogy valaki sikeres legyen tesztautomatizálási mérnökként, illetve milyen személyiségjegyekkel rendelkező szakember érzi jól magát a munkakörben?
Iván József: A már említett
programozási alapismereteken, erős
analitikus és logikus gondolkodáson túl ki kell emelni a megfelelő
kommunikációs készséget, ami a fejlesztőkkel való együttműködésben szükséges, illetve sok esetben tudni kell
rugalmasan reagálni a menet közben megváltoztatott követelményekre. A
tesztelői gondolkodásmód adja munkánk legfontosabb alapját: nem elég, ha megállapítjuk, hogy valami működik,
tovább kell vinni a gondolatmenetet, fel kell tenni a kérdést, hogy rendben, működik, de hogyan lehet elérni, hogy ne működjön, hogyan lehetne elrontani a folyamatot, hol vannak a rendszer kritikus pontjai, hol hibázhat a rendszer. Biztosak lehetünk benne, hogy a felhasználók akarva-akaratlanul meg fogják ezeket találni, viszont nekünk meg kell őket előznünk, és felhasználói fejjel is gondolkodva lényegében ki kell tudnunk játszani a rendszert. Ehhez egyfajta kíváncsiság és elszántság sem árt.
A
kommunikációképes angol nyelvismeret nemzetközi környezetben fontos, egyéb esetben nagy előny lehet.
ITmap: Milyen képzéseken lehet elsajátítani a munkakörhöz szükséges ismereteket?
Iván József: Ahogy saját példám is mutatja, nem feltétlenül szükséges felsőfokú végzettség a munkakör betöltéséhez, az ismereteket egyéb úton is el lehet sajátítani. Ettől függetlenül a programtervező informatikus szakok mindenképp jó alapot biztosíthatnak a munkakörhöz, de bármilyen más műszaki irányú szakon is el lehet sajátítani az
algoritmikus gondolkodást, ami a munka alapját képezi. Az
EPAM-nak van saját programja, amelyben egyéni haladástól függően 4-6 hónap alatt dedikált mentor támogatásával megtanítjuk a résztvevőknek azokat az alapismereteket, amelyekkel el tudnak nálunk indulni (Java, JavaScript, Python). Cserébe tanulmányi szerződés keretében azt kérjük, hogy bizonyos időt nálunk töltsenek. A program elvégzése nagyjából heti 20 óra elfoglaltságot jelent, akár az
egyetemről frissen kikerülteknek is ajánlom ezt a lehetőséget, de van olyan kollégánk is, akik korábban repülésirányítóként dolgozott, majd a képzéssorozatot elvégezve csatlakozott hozzánk.
ITmap: Melyek a legnagyobb kihívások a munkakörben?
Iván József: Ha
nem tiszták a követelmények, amelyek mentén a tesztelést el kell végezni, vagy pedig amikor már szinte kész vagyunk a teszteléssel, és akkor derül ki, hogy valami mégsem megfelelő, megfelelő türelmet és rugalmasságot igényel részünkről. Más jellegű kihívás, amikor egy
új technológiát kell megismernünk, ilyen lehet, amikor valaki korábban csak frontend teszteléssel foglalkozott, de a backend tesztelésbe is bele kell tanulnia, vagy, ha korábban csak asztali, desktop környezetben teszteltünk, de érkezik az ügyféltől az igény, hogy
mobilra is automatizálni kell. Rengeteget lehet tanulni abból, amikor az alapoktól kell egy
tesztautomatizálási keretrendszert felépíteni. Ez esetben ki kell választanunk a megfelelő rendszereket, meg kell határoznunk a funkcionalitásokat, illetve el kell döntenünk, hogy egy nagy keretrendszert használjunk, ami tud mindent, amire szükség van, vagy legyen két kisebb, meghatározott közös ponttal, egy frontendre, egy pedig backendre.
ITmap: Milyen továbblépési lehetőségek vannak a munkakörből?
Iván József: A jó hír az, hogy
számos továbblépési lehetőség van, hiszen nagyon sok mindennel kapcsolatba kerülünk tesztautomatizálási mérnökként, legyen az frontend, backend, DevOps. Így átjárási lehetőség van
fejlesztési területre, de tovább lehet menni
Business Analyst, Üzleti elemző munkakörbe is, amely a technikai tudást, illetve a folyamatismeretet egyesíti, és egy sokkal ügyfélközelibb munkakör. Akár a
Scrum master-i szerepkör is megcélozható, ha valaki sokkal inkább az emberi oldallal szeretne foglalkozni. Ezen kívül a
minőségbiztosítási terület (Software Quality Assurance) is gyakori váltási célpont. Természetesen a klasszikus karrierút ugyanúgy nyitva áll a szakemberek előtt, ez az EPAM esetében a
junior – medior – szenior – lead – chief tesztautomatizálási szakértő utat jelenti. Technikai oldalon maradva, a tesztautomatizálási architekt szerepkör lehet egy magasabb szintű pozíció.
ITmap: Miért jó tesztautomatizálási mérnökként dolgozni?
Iván József: Nagyon sok területre rálátunk, és
átfogó, jól kamatoztatható tudásra lehet szert tenni. Egy mondatban összefoglalva, ahogy mondani szoktuk: sokkal jobb megtalálni a hibát más munkájában, mint a sajátunkban. :)
Szeretnél hasonló munkakörben dolgozni? Iván József Téged is vár csapatába!
Először derítsd ki, hogy Neked való-e a munkakör! Regisztrálj, és a Profil menüpontban megtalálod a teszteket, amelyek segítésével többek között erre a kérdésre is választ kaphatsz!