Mobil teszteléssel foglalkozó sorozatunkban írtunk már a PWA-król és azok teszteléséről, ami itt olvasható. Jelen írásban szeretnénk egy kicsit mélyebbre merülni ebben a témában, érintve a manuális és automata tesztelés felosztását, néhány tesztelendő alap funkciót és az automatizálásra használható eszközöket is.
Röviden nézzük meg, mi is az a PWA?
A progresszív webes alkalmazások (PWA-k) több mint egyszerű weboldalak. A webes és a mobilalkalmazások legjobb tulajdonságainak innovatív keverékei.
Vegyük sorra a PWA-k néhány jellemzőjét, ami a jobb megértésben és a tesztelésben is segíteni fog:
- Offline elérés: A PWA-k internetkapcsolat nélkül is elérhetők.
- Telepíthetőség: A felhasználók a PWA-kat hozzáadhatják a kezdőképernyőjükhöz, így a natív alkalmazásokhoz hasonlóan könnyen elérhetővé válnak.
- Push értesítések: Ezek az alkalmazások értesítéseket küldhetnek a felhasználók bevonása érdekében.
- Háttérben történő szinkronizálás: A PWA-k a háttérben szinkronizálhatják az adatokat, így biztosítva a naprakész információkat.
- Gyorsaság és megbízhatóság: A modern webes technológiákat kihasználva a PWA-k gyorsan betöltődnek, még instabil hálózatokon is.
- Biztonság és védelem: HTTPS-en keresztül kerülnek kiszolgálásra az illetéktelenek behatolásának megakadályozása, és a tartalom integritásának biztosítása érdekében.
PWA-tesztelés
Mivel a PWA-k sokoldalúak és több egyedi előnnyel rendelkeznek a hagyományos webes alkalmazásokkal szemben ezért nagyobb számú a szükséges tesztek mennyisége. Az alkalmazás tesztelése azért is összetettebb feladat ebben az esetben, mert nagyon sokféle gyártó különböző eszközein kell megfelelően működnie. Azért, hogy ezeknek az elvárásoknak meg tudjon felelni a PWA fontos szerep hárul a QA-ra.
Korábbi cikkünkben már foglalkoztunk több lényeges szemponttal, amiket figyelembe kell venni PWA tesztelésben, mint pl. A Reszponzivitás, Push értesítések, biztonságos kapcsolat stb. Nézzünk még néhányat ezek közül:
- Különböző böngészőkből való letöltés gördülékenysége.
- Offline funkcionalitás: Az alkalmazás teljesítményének ellenőrzése az internetkapcsolat megszakításakor.
- Betöltési teljesítmény: Annak értékelése, hogy az alkalmazás milyen gyorsan töltődik be és válik interaktívvá.
- Biztonsági szempontok: Az adatvédelem és a biztonságos tranzakciók biztosítása.
Nem szabad megállni a PWA-k esetében (sem) a teszteléssel a hibák megtalálásánál, hanem törekedni kell a teljes felhasználói élmény vizsgálatára. Egyrészt egyre magasabbak az elvárások a felhasználók részéről, másfelől a konkurens oldalak megoldásaival is tartani kell a lépést, harmadrészt az emberek egyre türelmetlenebbek, és a nagy választék miatt hajlamosabbak máshol kényelmesebb megoldást keresni. Ehhez szükség van rá, hogy a felhasználók fejével gondolkodjuk, a valós felhasználási eseteket, utakat és azok könnyű használatát ellenőrizzük.
- Offline funkcionalitás: Ellenőrizni kell, hogy internet kapcsolat nélkül megfelelően működik-e az alkalmazás.
- Telepítési folyamat: Meg kell vizsgálni, hogy a „Hozzáadás a kezdőképernyőhöz” funkció helyesen működik-e a célközönség által használt különféle böngészőkben.
- Push-értesítések: Ellenőrizni kell az értesítések megjelenését, valamint az azokra adható interakciók megfelelő működését.
- Háttéradatok szinkronizálása: Ellenőrizendő az adatok pontossága a háttérben történő szinkronizálás után.
- Oldalbetöltés gyorsasága: Tesztelni kell az oldalbetöltés sebességét különböző hálózati feltételek mellett.
- Biztonsági protokollok: Az SSL-tanúsítványok és az adattitkosítási módszerek ellenőrzése szintén szükséges.
Kézi és automatizált tesztelési stratégiák
A manuális tesztelés elengedhetetlen a felhasználói élmény megítéléséhez, az akadálymentesítés sikerességének ellenőrzéséhez.
- Felhasználói élmény (UX) tesztelés: A manuális tesztelők valós felhasználói forgatókönyveket szimulálnak, hogy biztosítsák az intuitív és felhasználóbarát kialakítást. A tesztelés során kulcsfontosságú, hogy a tesztelők a felhasználók szemszögéből közelítsék meg a feladatot, és az ő igényeiket és szokásaikat figyelembe véve végezzék az ellenőrzéseket.
- Felfedező vagy felderítő tesztelés: Ez a megközelítés segít abban, hogy a nem szokványos, de felhasználóként végigjárható utakat ellenőrizzük, valamint hogy az összetett problémákat feltárjuk.
- Hozzáférhetőségi tesztelés: Ez az ellenőrzés biztosítja, hogy a PWA-k minden felhasználó számára hozzáférhetőek legyenek, beleértve a fogyatékkal élőket, gyerekeket, időseket is.
Az automata tesztek fontos szerepet játszanak a funkcionális, regressziós és teljesítménytesztelésben is.
- Funkcionális tesztelés: Mivel sokféle eszközön és környezetben kell ellenőrizni a megfelelő működést, az automata tesztek jó megoldást jelentenek.
- Regressziós tesztelés: A Frissítések után futtatott automata tesztek ellenőrzik, hogy a meglévő funkciók továbbra is megfelelően működnek-e.
- Teljesítménytesztelés: A számos környezetben és eltérő feltétel mellett képet adnak arról, hogy a PWA sebessége, betöltési- és reakcióideje hogyan alakul.
A PWA alapfunkciók tesztelése
Telepítés tesztelése különböző eszközökön és böngészőkben.
- Hordozhatóság: Ellenőrizni kell különböző, lehetőleg a célcsoport által használt okostelefonokon, tableteken és számítógépeken.
- Böngészőkompatibilitás: Tesztelni kell a célcsoport által használ főbb böngészőkből való telepítés gördülékenységét, gyorsaságát.
- Telepítési utasítás: Ellenőrizni kell, hogy a „Hozzáadás a kezdőképernyőhöz” utasítás megfelelően működik.
Offline funkcionalitás tesztelése.
- Adatok megmaradása: Ellenőrizni kell, hogy az adatok tárolása és visszakeresése offline állapotban is helyesen történik-e.
- UI-interakciók: Tesztelni kell, hogy az UI-elemek megfelelően reagáljanak-e internethozzáférés nélkül.
- Hálózati átmenet: Az alkalmazás viselkedésének tesztelése az online és offline állapotok közötti átmenetek során.
Push-értesítés tesztelése:
- Megjelenési idő: Az értesítéseknek azonnal meg kell jelenniük.
- Tartalom: Az üzenet tartalma helyes és releváns kell, hogy legyen.
- Felhasználói interakció: Tesztelni kell, hogy a felhasználók interakcióba tudnak-e lépni az értesítésekkel, és hogy ez megfelelően működik-e.
Háttérszinkronizálás, hálózati függetlenség.
- Tárolási mechanizmusok: A tartalom hatékony és helyes gyorsítótárazásának ellenőrzése.
- Háttérszinkronizálás: Az adatok megfelelő szinkronizálásának biztosítása a háttérben.
- Hálózati függetlenség: Az alkalmazásnak zökkenőmentesen kell működnie a különböző hálózati körülmények között.
Teljesítmény- és kompatibilitási tesztelés
Teljesítménytesztelés: Betöltési idő, erőforrás-felhasználás, válaszidő különböző hálózatokon
- Betöltési idők: Ellenőrizendő, hogy a PWA milyen gyorsan töltődik be és lesz használatra kész.
- Erőforrás-felhasználás: Vizsgálni kell a processzor- és memóriahasználatot a hatékonyság biztosítása érdekében.
- Reakcióidő: Tesztelni kell a PWA viselkedését különböző hálózati sebességek mellett.
Kompatibilitási tesztelés: Különböző eszközök, böngészők és operációs rendszerek esetén
- Eszközválaszték: A célcsoportnak megfelelően kiválasztott eszközök minél szélesebb palettáján érdemes tesztelni, beleértve a kijelzőméreteket és az eszközök teljesítményét is.
- Operációs rendszerek: A terméket tesztelni kell különböző operációs rendszereken az egységes, és az adott platformon megszokott élmény biztosítása érdekében.
- Egységes, zökkenőmentes felhasználói élmény biztosítása az eszköz vagy a hálózat korlátaitól függetlenül.
Automatizált PWA tesztelés
Maguk a PWA-ra optimalizált weboldalak nagyon hasonlítanak a hagyományos oldalakhoz, így az automatizálásuk is hasonló, nem sokkal bonyolultabb azoknál. A letöltött applikáció tesztelése viszont már összetettebb feladat.
Automatizálási eszközök, amelyek a PWA-k tesztelésére használhatók:
Számos felhőalapú tesztelési platform létezik az automatizált webes tesztek indítására, ahol a PWA-kat méretarányosan tesztelhetjük. Nézzünk néhány példát:
Testsigma
A Testsigma az egyik legnépszerűbb PWA-tesztelő eszköz, amely egyszerű angolsággal és intuitív felhasználói felületével meggyorsíthatja a tesztek automatizálásának sebességét. Célja, hogy olyan egyszerű legyen az automata tesztek létrehozása, mint a manuális tesztek írása. A Test Recorder segítségével akár automatikusan is létrehozhatunk tesztlépéseket. A PWA localhoston történő teszteléséhez telepíteni kell a Testsigma programot, mivel egyes alkalmazásokhoz biztonsági okokból nem rendelkezik hozzáféréssel.
CloudQA
A kódolási tapasztalattal nem rendelkező tesztelők számára is elérhető a funkcionális tesztesetek fejlesztése és futtatása a CloudQA Test Recorder-ének a használatával, amit a kód nélküli automatizáláshoz fejlesztettek. Ezzel a Chrome-bővítményként elérhető eszközzel tesztlépéseket rögzíthetünk és tárolhatunk, valamint egyszerűen vezérelhetjük a tesztesetek végrehajtását. Emellett egy egyszerű felületen manuálisan is elvégezhetjük a funkcionális teszteket, az eszköz pedig rögzíti a lépéseket a későbbi hivatkozáshoz.
Appium
Az Appium egy mobil teszt automatizálási keretrendszer natív, hibrid és m-web alkalmazásokhoz. JSON Wire protocollt használ. Ez egy http szerver a Node.js-ben, amely teszteket indít az eszközökön, és várja a fő szerver parancsait. A nyílt forráskódú Appium könyvtárak hozzáadásával egy meglévő automatizálási keretrendszerrel is használható.
Lighthouse
A Lighthouse egy automatizált, nyílt forráskódú eszköz a weboldalak minőségének javítására. Az alkalmazás a PWA-irányelvek alapján értékeli az alkalmazásokat, és olyan kritériumokat ellenőriz, mint az offline funkcionalitás, a sebesség optimalizálás, HTTPS megléte, és a legjobb hozzáférhetőségi gyakorlatok betartása. A Lighthouse használható Node-modulként, parancssorból vagy a Chrome DevTools segítségével. Miután megadtuk a Lighthouse-nak az ellenőrizendő URL-címet, a program számos vizsgálatot végez az oldalon, és jelentést készít a teljesítményéről.
Puppeteer
A Puppeteer egy Node könyvtár, amely magas szintű API-t biztosít a böngésző automatizálásához a headless Chrome böngésző használatával. Olyan kulcsfontosságú funkciókat tartalmaz, mint a Javascript-alapú tesztelés, amely ideális a PWA funkciók, például a Service workers teszteléséhez, és támogatja a headless és a teljes oldalas böngészőtesztelést
Playwright
A Playwright egy nyílt forráskódú tesztelési keretrendszer, amely lehetővé teszi a modern webes alkalmazások automatizálását és megbízható tesztelését. Tartalmaz egy Playwright könyvtárat a harmadik féltől származó programok egyszerű összekapcsolásához és egy beépített Playwright Test Runner-t a tesztek automatizálásához. Támogat több programozási nyelvet, például Javascriptet, C#-ot és a böngésző automatizálását egyetlen API-val.
Összegzés
Egy kiváló minőségű PWA fejlesztése egyszerre jelent
kihívást és egy kifizetődő befektetést. A teszteléséhet a technológia
fejlődésének követése, az elvárások és felhasználói igények alapos ismerete
elengedhetetlen. Ha sikerül a fejlesztő és tesztelő csapatnak biztosítani a
kiváló felhasználói élményt, a gördülékenységet és a megbízhatóságot, akkor van
lehetőség előnybe kerülni mind a hagyományos, mind a PWA alapú megoldásokat
használó versenytársakkal szemben
A jövő persze mindig kérdéses, de ha a PWA
térhódítása továbbra is töretlen marad – márpedig most annak látszik, – nagy a
valószínűsége, hogy a jelenleg még hiányzó megoldások is el fognak készülni a
letöltött alkalmazás tesztautomatizálásának támogatására, ami még jobban meg
fogja könnyíteni a munkát.