A tesztelés legalább annyira fontos egy szoftver létrehozása során, mint maga a fejlesztés. Ma már ez a feladatkör is két részre oszlik: a manuális és az automatizált tesztelésre. Blogposztunkból kiderül, mi a különbség, és hogy kiből lehet automata tesztelő.
A szoftvertesztelés jóval több egyszerű hibakeresésnél. Napjainkban olyan sok új szoftver jelenik meg nap mint nap, hogy a hagyományos (manuális) tesztelésük egyszerűen fizikai képtelenség lenne. Ezért kialakult a tesztautomatizálás, vagyis az, hogy a hibakeresést programok (szkriptek) végzik el. Ugyanakkor emberekre továbbra is szükség van, hiszen az automata tesztelők azok a jól képzett szakemberek, akik képesek az adott esetre szabott programot megírni és futtatni.
Mi a különbség az automata és a manuális tesztelés között?
A manuális tesztelés során egy erre képzett szakember maga vizsgálja át az adott szoftver vagy alkalmazás működését. Sok esetben a laikus felhasználók szemével keresi a hibákat. A szaktudása és a tapasztalata révén azonban olyan lehetőségeket is figyelembe vesz, amire a fejlesztők vagy akár egy átlagos felhasználó nem mindig gondolna. Az automata tesztelésnél viszont a szakember nem maga ellenőrzi, hogy minden megfelelően működik-e, hanem egy speciális programot használ ehhez.
Mi a jó az automata tesztelésben?
Az automatizált tesztet (gondos bevezetés után) gyorsan és állandó emberi beavatkozás nélkül is lehet futtatni, ami sok időt és költséget takaríthat meg. Ha például csak azt akarjuk kideríteni, hogy egy frissítés után is működik-e minden korábbi funkció, akkor ezt a megfelelő program pár másodperc alatt ellenőrizheti. Emellett például a teljesítmény vizsgálatánál, a nagy terheléssel járó helyzetek szimulálásánál jelent nagy segítséget az automatizálás.
Minden tesztet lehet automatizálni?
Nem, a manuális tesztelésre továbbra is szükség van, például a felhasználói élmény vizsgálatánál. De az üzleti logika folyamatait vagy az interaktív elemeket is érdemes inkább manuálisan ellenőrizni. A legjobb eredményt tehát úgy lehet elérni, ha a szoftverfejlesztés során manuális és automata tesztelést is használunk.
Mit kell tudnia az automata tesztelőnek?
A tesztelés alapjai mellett legalább egy programozási nyelvet is ismernie kell, hiszen csak így lehet létrehozni és karbantartani a szkripteket. A manuális tesztelésben szerzett gyakorlat előnyt jelenthet ezen a pályán, de nem előfeltétel. Fontosabb a tanulás iránti elkötelezettség, mivel ez a terület nagyon gyorsan fejlődik és változik.
Nem lehet mesterséges intelligenciával íratni a tesztprogramokat?
A mesterséges intelligencia (AI) alapú technológiák használata a tesztautomatizálás területén is egyre gyakoribb. Vannak olyan rendszerek, amelyek képesek azonosítani a vizuális elemeket, például a képernyőn megjelenő gombokat és mezőket, ezáltal lehetővé teszik a felhasználói felület tesztelését is. Továbbá egyszerűen lehet teszteseteket generálni megadott paraméterek alapján, így a teszteset tervezésének ideje jelentősen csökkenhet. Ugyanakkor ez is csak egy újabb eszköz a tapasztalt szakemberek kezében a hatékonyság növelésére. A tesztelési stratégia kialakítása és tervezése, a tesztfeladatok meghatározása továbbra is a tesztautomatizálási szakértők feladata lesz.
Miért érdemes automata tesztelőnek lenni?
Az automata tesztelők iránt egyre nagyobb a kereslet az IT világában, hiszen a hatékonyság és a minőség javítása érdekében újabb és újabb projekteknél vezetik be az automatizált tesztelést. Ennek megfelelően már egy junior pozíció is a hazai átlagkereset feletti bérrel jár, néhány év tapasztalattal pedig ennek kétszerese vagy háromszorosa is elérhető. Ráadásul ezen a területen folyamatos a fejlődés, mindig vannak új kihívások és megoldásra váró feladatok, mint például az előbb említett mesterséges intelligencia kapcsán.
Hogyan lehet valakiből automata tesztelő?
Ahhoz, hogy valakiből automata tesztelő lehessen, először is el kell sajátítania legalább egy olyan programnyelvet, amelyet a szkriptek írásához használhat, valamint az ehhez kapcsolódó tesztelési keretrendszert. Érdemes megismerni a webes technológiákat, valamint a szoftverfejlesztéshez kapcsolódó módszertanokat és gyakorlatokat (verziókezelés, agilis fejlesztés stb.) A sokféle tanfolyam közül érdemes olyat választani, ahol mindezt a gyakorlatban is ki lehet próbálni, és minél szélesebb körű ismeretet nyújt (pl. a manuális tesztelés alapjait is tartalmazza a programozási ismeretek mellett).