A címben feltett kérdésre két különböző, de nem egymásnak ellentmondó válasz adható. Kérlek, légy türelmes az olvasással, írok konkrét nyelvet is a cikkben, de szeretnék valamire rávilágítani, ami fontosabb, mint a konkrét programnyelv. Szóval jöjjön a két válasz.
Válasz: majdnem mindegy
Na jó, nem mindegy teljesen. Jelenleg a tesztautomatizáláshoz olyan programnyelvek ismeretére lehet szükség, amik
a. eljáráselvű programozási nyelvek
b. objektumorientált programozási nyelvek
A lényeg, hogy elsőre inkább ne logikai programozási nyelvet vagy funkcionális vagy kiterjesztő nyelveket válassz. Szóval lehetőleg ne a Prolog-gal vagy a Lisp-pel ismerkedj meg első körben.
Ha mélyebben érdekel a téma, ITT olvashatsz róla bővebben.
Miért majdnem mindegy?
Ha egy számítógépnek “megtanítanánk” a magyar nyelv összes, létező szabályát, attól ez a számítógép még nem igazán tudna velünk magyarul beszélgetni. Nem tudna miről beszélgetni. Nem tudná, hogy mit, miért kell vagy érdemes mondani. Így van ez a programozási nyelvekkel is. Ha megtanulod egy programnyelv összes szintaktikai szabályát, attól még nem fogsz tudni programot írni.
Ahhoz, hogy tudj programot írni, szükséges lesz megértened, hogy egy feladatot, hogyan érdemes részekre bontani, hogyan lehet “algoritmizálni”, hogyan érdemes és hogyan lehet az adatokat kezelni.
Mondok egy példát. Tegyük fel, hogy egy mozijegy alkalmazás székfoglalását kell tesztautomatizálnod. Hogyan fogod megtalálni, hogy egy 5 fős családnak hol van egymás mellett hely, lehetőleg a moziterem közepéhez a legközelebb?
Hiába tudod, hogyan kell értékeket beolvasni, vagy kiírni, hiába tudod, hogy egy program adott pontján használhatsz IF utasítást vagy FOR-t. A tudásod semmit nem fog érni a feladattal szemben. Itt már tervezni kell. Adat-struktúrákban kell gondolkodni, néhány alap algoritmust kell már ismerned (például kigyűjtés, minimum keresés) és ezeket jól kell tudnod összelegózni. Ezután ezt a tervet kell megvalósítani egy programnyelv segítségével. Ez utóbbi lépéshez kell az adott programnyelv ismerete.
Amire első sorban szükséged van hát: programozási alapismeretek, algoritmus, alap algoritmusok, adat-struktúrák és kezelésük.
Válasz: Javascript, Python, Java
Helyben vagyunk. Ha majdnem mindegy, akkor miért pont e hármat ajánljuk?
Az alcímben szerepelő három nyelvet (vagy valamilyen alváltozatukat) használják a legtöbb helyen, amikor tesztautomatizálni kell.
Javascript
Több tesztautomatizáló eszköz nyelve (Cypress, Puppeteer, Playwright, Protractor, TestComplete…)
Python
- Könnyen tanulható, kezdőknek is jól érthető nyelv.
- Sok ismert, nyílt forráskódú eszköz együtt tud működni a Python-nal: Robot Framework, Selenium, Playwright…
- A mesterséges intelligencia nyelve. Sokan gondolják, hogy az MI a tesztelés jövője is.
Java
- A legtöbben ezt használják, amikor 0-ról építenek tesztelési keretrendszert.
- Nehéz olyan eszközt találni, amivel nem tud együttműködni.
Összefoglalás
A tesztautomatizálás is igényli a programozási ismereteket. A programozási ismeret nem egy programnyelv ismeretét jelenti, hanem azt, hogy ismered a programtervezés logikáját és különböző feladatokra meg tudod tervezni a megfelelő algoritmust és adatszerkezetet.
A programozási alapismeretek megtanulását össze lehet kötni egy programnyelv alapszintű megismerésével. Szubjektív véleményem, hogy ha a tesztautomatizálás a célod és még nem tanultál programozni, akkor válassz Python-t első nyelvnek.
Jó tanulást! Hajrá! 😊