A tesztautomatizálás alapjai, mobilalkalmazások, játékok és a mobilweb estenén – 1. rész

A tesztautomatizálás alapjai, mobilalkalmazások, játékok és a mobilweb estenén – 1. rész

A professzionális automatizált teszt keretrendszer egy megoldás a nagy közös problémára: hogyan fejleszthetünk magas minőségű, robusztus, megbízható alkalmazásokat a folyamatosan fejlődő technológia és a hihetetlen verseny nyomása alatt. Az automatizált szoftvertesztelés egy költséghatékony válasz lehet erre a kérdésre.

A mobil alkalmazás ökoszisztémák — vegyük ide az Androidod és az iOS-t — mindegyik hihetetlenül dinamikus, de ugyanakkor folyamatosan küzdenek a szoftver és hardver fregmentációval. Ez főleg az Androidokra igaz, de az iOS esetén is jelen van, gondoljunk csak az iOS8 megjelenésére. Ahogy az iOS verzió megjelent, a meglévő alkalmazások sutává váltak a frissített operációs rendszerű készülékeken.

Még az új iPhone6 és iPhone6 Plus eszközöknek is voltak hasonló típusú problémái. Ehhez még hozzájött az is, hogy a régebbi készülékekkel rendelkező felhasználóknak gyakorlatilag az a választásuk maradt, hogy megvásárolják az újat, ha azt akarják, hogy minden addigi alkalmazásuk jól működjön.

Az Android világában más a helyzet. Mint eszközszállítóknál (OEM eszközök), a szoftverfrissítések és testre szabások megvalósítása sok fejtörést okozott az alkalmazás- és játékfejlesztőknek. A fejlesztők megpróbálták a terméküket a lehető legtöbb hardver és szoftververziónál teljesen kompatibilisen tartani. Az hogy egy új alkalmazás, vagy játék csak a legújabb platformokon működik úgy gondolom, nem tartozik most ide. Miért akarna a fejlesztő egy nagy felhasználói csoporttól megszabadulni, mint potenciális felhasználó?

A professzionális automatizált teszt keretrendszer egy megoldás a nagy közös problémára: hogyan fejleszthetünk magas minőségű, robusztus, megbízható alkalmazásokat a folyamatosan fejlődő technológia és a hihetetlen verseny nyomása alatt. Az automatizált szoftvertesztelés egy költséghatékony válasz erre a kérdésre, nem megfeledkezve a következő üzleti előnyökről:

  • tesztelés hatékonyságának a növelése
  • a tesztelés eredményességének a növelése
  • gyorsabb piacra jutás

1. ábra Az automatizáció több ezer valós eszközön való párhuzamos tesztelést tesz lehetővé (Testdroid)

Ez a cikk végigmegy a használati eseteken a tesztautomatizálásban és gyakorlatias példákat, segítségeket ad az elinduláshoz. Ezek mellett fókuszálunk majd a mobiltesztelés különböző megközelítéseire is és feltárjuk, hogy ez a relatív friss topik hogyan segíthet az alkalmazásfejlesztőknek a hatékonyabb, robusztusabb fejlesztésben. A haladóknak szóló példa majd később a cikkben rávilágít majd, hogyan segít a képfelismerés a mobiltesztelésben. Különösképpen majd akkor, amikor az Appium’s test automation framework-ön futtatjuk a Supercell’s Clash of Clan játékot, hogy megmutassuk, hogyan működik a beépített képfelismerés a gyakorlatban.

A tesztautomatizálás tökéletes a mobilalkalmazás fejlesztéshez

A mobilalkalmazás fejlesztése nagyon eltér a számítógépre fejlesztett, vagy a beágyazott szoftverektől. A mobilfejlesztés gyakorlatilag agilis fejlesztést jelent, mely agilitást már számtalan eszköz és módszer támogatja napjainkban. Ehhez képest valamit manuálisan tenni – mint például egy applikációt manuálisan tesztelni – soha nem agilis, ami miatt a teszt automatizálás borzasztóan sok fejlődést hozott az alkalmazás- és játékfejlesztők életébe. Felgyorsítva ezzel a dolgokat, és iszonyatos hozamot hozva a területnek.

Az agilis folyamatok részeként a tesztautomatizálás segítségével elérni a kompatibilitást a felhasználók, az eszközök és a piac között, mostanára tipikusnak tekinthető. Szerencsére rengeteg eszköz elérhető és tökéletesen használható a tesztautomatizálásban. Például vegyünk egy tipikus 2 hetes fejlesztői sprintet. Minden nap van stand-up és egy csomó scrum feladat, te tartod kézben a fejlesztést, rajtad múlik, mikor lesz végtermék. A tesztautomatizálás kézzelfogható értéket képvisel már akkor, amikor a tesztelés a fejlesztéssel párhuzamosan végezhetővé válik — például, egy éjszakai teszt futtatása. A következő reggelen a teszt lefutott, a regressziók eredményei készen állnak az elemzésre. Egy hiba minél korábbi megoldása egy csomó időt és pénzt spórol a fejlesztésben, valamint a végtermék hamarabb előállítható. A legfontosabb tényező azonban az, hogy magasabb minőséget érhetünk el és kevesebb hiba lesz az alkalmazásban.


2. ábra Az automatizálás értéket ad az agilis projektnek.

A tesztautomatizálás megadja a lehetőséget a mobil alkalmazások hatékonyabb és gyorsabb tesztelésére. Ha egyszer egy folyamat automatizálva lett, akkor az bármikor újra és újra, gyorsan lefuttatható. Majdhogynem minden esetben ez a legjobb, leghatékonyabb módja a regressziós tesztelésnek a hosszú életciklusú alkalmazásoknál. Tény, hogy az automatizálás bármelyik mobil alkalmazásnál a leghatékonyabb és a legjobb módja a hatékonyság növelésének, valamint a tesztekkel történő eredményesebb lefedésnek. Az igazi előny mégsem a gyors és ismétlődő lefuttathatóságban rejlik, hanem abban a lehetőségben, hogy automatizálva lehet olyan teszteket futtatni, amelyeket manuálisan például lehetetlen volna.


3. ábra Mobil applikáció tesztelés folyamatos integrációval együtt

Miket kell figyelembe venni egy mobil alkalmazás automata tesztelésekor

Nézzük meg, hogyan lehet a fejlesztői folyamatot a tesztautomatizálással (a manuális teszteléssel szemben) javítani és hogyan lehet lerövidíteni a fejlesztés időtartamát.

1. KÖLTSÉGEK ÉS ERŐFORRÁSOK

Mindegy, hogy manuális vagy automata tesztelésre adjuk a fejünket, a költségeket és az erőforrásokat mindenképpen szem előtt kell tartani (minden pénzbe kerül). Idő, fejlesztők, tesztelők, infrastruktúra, eszközök, tréningek. A projekt és az alkalmazás méretétől függően az automatizálás majdhogynem nyilvánvalóan jó megtérülést hoz. Például, ha egy automata teszt kialakításra kerül, akkor az akárhányszor futtatható különösebb többletköltség nélkül, valamint sokkal gyorsabb, mint bármelyik manuális teszt. Az automata tesztek csökkentik a tesztelésre szánt időt, néha akár hetekről órákra. Az az igazán időtakarékos megoldás, amely könnyen átfordítható költségtakarékossá.

2. INTEGRÁLT APP FEJLESZTÉSI ÉS TESZTELÉSI CIKLUS

Az automatizálással történő hatékonyság és termelékenység növelése valójában egy új gondolkodásmód felvételével indul. Minden fejlesztési ciklus során a szoftvert tesztelni kell, hogy ezáltal biztosítsuk a lehető legjobb minőségű terméket. Minden egyes alkalommal, amikor az alkalmazás kódjában módosítás történik, a tesztelést meg kell ismételni. Minden kiadásnál a szoftvert meg kell vizsgálnunk az összes lehetséges támogatott operációs rendszer és hardver konfiguráción. Ennek a feladatnak a manuális tesztelése költséges és időigényes lenne. Például az összes támogatott eszközön minden támogatott Android-os verzión való manuális tesztelés nagyon sok időt venne igénybe.

3. ESZKÖZÖK ÉS TECHNOLÓGIA: TESZT KERETRENDSZEREK

Ahhoz, hogy a lehető legtöbbet hozd ki a felhasználható erőforrásokból és maximalizáld a tesztelés lefedettségét, válaszd ki a legerősebb és a leginkább platformfüggetlen módszert. Egy ilyen módszerrel egyaránt lehet a követelményeket validálni és csökkenteni a költségeket a jól ismert automatikus teszteset generáláson keresztül. Azonban a teljes automatizálás a nagy alkalmazásoknál magasabb költségeket is eredményez, amelyet számos vállalat nem volt hajlandó megfizetni. Túl azon a feltevésen, hogy a használt fejlesztési módszerhez nem megfelelő integrálhatóak ezek a teszt keretrendszerek, a cégek aggodalmának egyik oka leginkább a költségek növekedése volt.

4. TESZT LEFEDETTSÉG ÉS ÚJRAHASZNOSÍTÁS: NYÍLT SZABVÁNYOK AZT JELENTIK, NINCS SZÁLLÍTÓ

Az automatizált tesztelés növeli a tesztelés mélységét és kiterjedését, valamint jelentősen javítja a szoftver minőségét. A hosszadalmas és alapos tesztek – melyek manuális teszteléssel gyakran nem megvalósíthatóak – automatikusan futhatnak. Ideális esetben a teszteknek teljes hozzáféréssel kell rendelkezniük az applikációhoz, hogy tesztelni tudják annak különböző tulajdonságait – memória tartalom, adatbázis táblák, fájlok tartalma és különböző belső állományok – annak megállapítására, hogy a termék az elvárásoknak megfelelően viselkedik-e. Minden egyes tesztfuttatás során az automata tesztek könnyedén végrehajthatnak ezernyi komplex esetet, mely manuális teszteléssel egyszerűen nem lehetséges. A fejlesztők megszabadulnak az ismétlődő manuális tesztektől, több idejük marad az új automatizált tesztek kialakítására, a termék funkcióinak továbbépítésére és bővítésre (valamint újabb automata tesztek létrehozására).


4. ábra Mobil applikációk piacra kerülése

5. HATÉKONYSÁG JAVÍTÁS ÉS GYORSABB BEFEJEZÉS

Dióhéjban, a professzionális automata szoftvertesztelés egy megoldás arra a gyakori problémára, hogyan kell jó minőségű, robusztus és megbízható szoftvert készíteni az egyre növekvő bonyolultságú technológia és a hatalmas verseny nyomása alatt. Az automatikus szoftvertesztelés 3 módon javítja az üzleti eredményeket: nagyobb tesztelési eredményesség, nagyobb tesztelési hatékonyság és gyorsabb piacra jutás.


5. ábra Manuális és automata tesztelés különbségei a mobil applikációknál

Különböző módok az automata mobil tesztelésben

Általában 3 módja van, hogy automatizáljuk a tesztelést a mobil applikációknál.

1. KÉZZEL ÍROTT TESZTESETEK

Tipikusan ez a legjobb választás, ha tudod mit csinálsz és ha vannak programozási képességgel megáldott embereid, akik megírják a teszt szkripteket. Rengeteg lehetőség áll rendelkezésre az automata tesztelési keretrendszerekben, eszközökben – a kereskedelmi és nyílt forráskódú kínálatban egyaránt. Miután a mérnökeid megírták a az összes tesztszkriptet amely természetesen időt és erőforrást vett igénybe, megkaptad azt amire pontosan szükséged van: jól felépített, alapos szkriptek, amelyek pontosan olyan szempontok alapján tesztelik az applikációt, ahogy azt elvárod.

2. FELVÉTEL-LEJÁTSZÁT MEGKÖZELÍTÉS

Ez a módszer kevésbé hajlamos a hibázásra, mivel nem kell a tesztszkriptek kódját megírni, viszont ezáltal korlátozottabb funkcionalitást eredményez. A tesztek gyorsan rögzíthetőek és a különböző operációs rendszereken és eszközkonfigurációkon újra és újra le lehet játszani. Ezek a tesztek a felhasználói interakciókra és a felhasználó által vezérelt tevékenységekre fókuszálnak. Vannak azonban dolgok, amelyek a tesztek határán kívül eshetnek (például integráció más szoftverekkel).

3. AUTOMATA TESZT GÉPEK

Az automata teszt gépek nagyszerű lehetőséget adnak a smoke tesztekre. Nincs szükség konkrét tesztesetekre, a hangsúly inkább a felhasználói felület logákáján van, úgy mint a menük megnyitása, gombokra kattintás, swiping, vagy többujjas mozdulatok. Az automata teszt gépek így a legkevésbé adnak pontos eredményt a funkcionalitásról, ellenben nagyon gyorsan visszajeleznek az applikáció minden egyes iterációjáról.

Szerző:
Ville-Veikko Helppi

<< Vissza