Business & Integration IT konzultant
Testovanie mobilných aplikácií
Mobilné aplikácie sú neoddeliteľnou súčasťou nášho života. Používame ich na prácu, zábavu a komunikáciu. Preto je dôležité, aby boli tieto aplikácie kvalitné, spoľahlivé a bezpečné.
Testovanie mobilných aplikácií je proces, ktorý zabezpečí, aby mobilné aplikácie fungovali správne a podľa požiadaviek. Zahŕňa širokú škálu techník a postupov, ktoré sa používajú na identifikáciu a odstránenie chýb a problémov s aplikáciou.
Výhody testovania mobilných aplikácií
Testovanie mobilných aplikácií prináša množstvo výhod:
- Zvýšenie kvality aplikácie: Testovanie pomáha identifikovať a odstrániť chyby v aplikácii, čím sa zvyšuje jej kvalita a spoľahlivosť.
- Zlepšenie používateľskej skúsenosti: Testovanie pomáha zabezpečiť, aby aplikácia bola ľahko použiteľná a prístupná pre používateľov.
- Zníženie nákladov: Testovanie môže pomôcť znížiť náklady na vývoj a údržbu aplikácie, pretože pomáha identifikovať problémy včas, čím sa znižuje čas a úsilie potrebné na ich odstránenie.
- Zabezpečenie použiteľnosti používateľského rozhrania (UI)/ používateľského zážitku (UX): Testovanie aplikácií umožňuje testerom testovať aplikácie z pohľadu koncového používateľa. Overujú použiteľnosť a používateľskú prívetivosť mobilnej aplikácie simulovaním typického správania používateľov a testovaním ich vzhľadu a ovládania.
- Zabezpečenie správneho fungovania: Testovanie mobilných aplikácií umožňuje skontrolovať výkon a funkcie mobilných aplikácií bez akýchkoľvek chýb, problémov alebo porúch. Testeri môžu napríklad zistiť, či používatelia môžu aplikáciu úspešne stiahnuť do viacerých zariadení. Alebo či mobilná aplikácia spolupracuje s podporovanou infraštruktúrou.
- Vysoká lojalita koncových používateľov: Keď sa uistíš o použiteľnosti, fungovaní a výkonnosti mobilných aplikácií, má to tendenciu zabezpečiť pozitívnu skúsenosť koncových používateľov. Koncoví používatelia budú aplikáciu s väčšou pravdepodobnosťou používať a odporúčať ju svojim priateľom, čo vedie k dobrej povesti a vysokým príjmom v softvérovom odvetví.
- Identifikácia bezpečnostných zraniteľností: Testovanie mobilných aplikácií sa vykonáva aj na overenie a kontrolu prípadných bezpečnostných zraniteľností mobilných aplikácií.
- Nižšie náklady na vývoj mobilných aplikácií: Chyby alebo nedostatky v mobilnej aplikácii môžeš ľahko a včas identifikovať počas procesu jej vývoja. To ďalej zabezpečuje ich opravu v počiatočnom štádiu a predchádza vysokým nákladom na neskoršiu opravu chýb.
Výzvy testovania mobilných aplikácií
Testovanie mobilných aplikácií môže byť náročné z nasledujúcich dôvodov:
- Rôzne platformy: Mobilné aplikácie sa vyvíjajú pre rôzne platformy, ako sú Android, iOS a Windows Mobile. To znamená, že testovanie musí byť vykonané na každej platforme, aby sa zabezpečilo, že aplikácia bude fungovať správne.
- Rôzne zariadenia: Mobilné zariadenia sa vyrábajú rôznymi výrobcami a majú rôzne funkcie. To znamená, že testovanie musí byť vykonané na rôznych zariadeniach, aby sa zabezpečilo, že aplikácia bude fungovať správne na všetkých zariadeniach.
- Rôzne verzie OS: Operačné systémy pre mobilné zariadenia sa neustále aktualizujú. To znamená, že testovanie musí byť vykonané na najnovších verziách OS, aby sa zabezpečilo, že aplikácia bude fungovať správne.
Typy testovania mobilných zariadení
V zásade existujú 2 typy testovania, ktoré sa vykonávajú na mobilných zariadeniach:
1. Testovanie hardvéru
Zariadenie zahŕňa vnútorné procesory, vnútorný hardvér, veľkosť obrazovky, rozlíšenie, priestor a pamäť, fotoaparát, rádio, Bluetooth, WiFi atď. Toto sa niekedy označuje ako jednoduché testovanie mobilných zariadení.
2. Testovanie softvéru alebo aplikácie
Testujú sa aplikácie, ktoré fungujú na mobilných zariadeniach a ich funkčnosť. Označuje sa ako „testovanie mobilných aplikácií“, na odlíšenie od predchádzajúcej metódy.
Typy mobilných aplikácií
Aj v prípade mobilných aplikácií existuje niekoľko základných rozdielov, ktoré je dôležité pochopiť. Poznáme:
- Natívne aplikácie: Natívna aplikácia je vytvorená na použitie na platforme, ako sú mobilné telefóny a tablety. Príklady natívnych aplikácií: Kalkulačka, Poznámkový blok atď.
- Mobilné webové aplikácie: sú aplikácie na strane servera, ktoré slúžia na prístup na webové stránky v mobilnom telefóne pomocou rôznych prehliadačov, ako sú Chrome, Firefox, pripojením k mobilnej sieti alebo bezdrôtovej sieti, ako je WiFi. Príklady webových aplikácií: Akékoľvek aplikácie, ktoré sú prístupné v prehliadačoch.
- Hybridné aplikácie: sú kombináciou natívnych aplikácií a webových aplikácií. Bežia na zariadeniach alebo offline a sú napísané pomocou webových technológií, ako sú HTML5 a CSS. Príklady hybridných aplikácií: Twitter, Facebook atď.
- Progresívne webové aplikácie: PWA sú rozšírenia webových stránok, ktoré možno uložiť do počítača alebo iných zariadení a potom ich používať ako webové aplikácie. Používajú veľmi málo údajov a aktualizujú sa rovnako ako webové stránky. Bežia rýchlo bez ohľadu na typ zariadenia alebo operačné systémy. Príklady PWA: Twitter, Telegram atď.
Rozdiely v mobilných aplikáciách
Existuje niekoľko základných rozdielov, ktoré ich odlišujú:
- Natívne aplikácie sú príbuzné jednej platforme, zatiaľ čo mobilné webové aplikácie sú príbuzné viacerým platformám.
- Natívne aplikácie sú napísané v platformách ako SDK, zatiaľ čo mobilné webové aplikácie sú napísané pomocou webových technológií ako HTML, CSS, asp.net, Java a PHP.
- V prípade natívnej aplikácie je potrebná inštalácia, ale v prípade mobilných webových aplikácií nie je potrebná žiadna inštalácia.
- Natívne aplikácie možno aktualizovať z obchodu Google Play alebo App Store, zatiaľ čo mobilné webové aplikácie sú centralizované aktualizácie.
- Mnohé natívne aplikácie nevyžadujú internetové pripojenie, ale pre mobilné webové aplikácie je to nevyhnutnosť.
- Natívne aplikácie fungujú rýchlejšie v porovnaní s mobilnými webovými aplikáciami.
- Natívne aplikácie sa inštalujú z obchodov s aplikáciami, ako je obchod Google Play alebo App Store, kdežto mobilné webové aplikácie sú webové stránky a sú prístupné len cez internet.
Rozdiely medzi testovaním mobilných a desktopových aplikácií
Niekoľko zrejmých aspektov, ktoré odlišujú testovanie mobilných aplikácií od testovania desktopových aplikácií:
- Na stolnom počítači sa aplikácia testuje na centrálnej procesorovej jednotke. V mobilnom zariadení sa aplikácia testuje na telefónoch, ako sú Samsung, Nokia, Apple a HTC.
- Veľkosť obrazovky mobilného zariadenia je menšia ako u stolného počítača.
- Mobilné zariadenia majú menej pamäte ako stolný počítač.
- Mobilné zariadenia používajú sieťové pripojenia, ako napríklad 2G, 3G, 4G alebo WIFI, zatiaľ čo stolové počítače používajú širokopásmové alebo dial-up pripojenie.
- Automatizačný nástroj používaný na testovanie desktopových aplikácií nemusí fungovať na mobilných aplikáciách.
- Mobilné zariadenia používajú dotykový vstup, zatiaľ čo desktopové zariadenia zvyčajne používajú myš alebo klávesnicu.
- Mobilné aplikácie testujte hlavne pre zariadenia s menším rozlíšením, ako sú tablety. Webové aplikácie testujte pre väčšie rozlíšenie obrazovky.
- Vykonávanie testovania mobilných aplikácií je náročné z dôvodu obrovskej zložitosti mobilných aplikácií. Testovanie webových aplikácií je relatívne jednoduchšie.
- Testovanie sa vykonáva na rôznych kombináciách konfigurácií zariadení, ako sú operačný systém, konfigurácie a rozlíšenia hardvéru a iné. Webové aplikácie sa testujú v rôznych verziách prehliadačov a kombináciách operačných systémov.
- Jednou z hlavných závislostí mobilných zariadení je, že si vyžadujú energiu a vybíjanie batérie je hlavným problémom. Preto by sa test mobilných aplikácií mal vykonať na plne nabitých a vybitých mobilných zariadeniach. Pri testovaní webových aplikácií takáto závislosť neexistuje, pretože sa spoliehame najmä na prehliadače.
- Testovanie sa vykonáva na základe interakcie zariadenia s činnosťami používateľa, ako sú hluk a gestá. Toto je potrebné pri testovaní mobilných aplikácií, pretože rôzne mobilné telefóny umožňujú používateľom interakciu s rôznymi aplikáciami. Webové prehliadače majú obmedzené možnosti interakcie s akciami používateľa. Preto je rozsah testovania menší.
- V súčasnosti sú mobilné aplikácie prístupné aj iným periférnym zariadeniam spojeným s mobilom, ako sú kardiostimulátory. Preto je potrebné testovanie mobilných aplikácií vykonávať aj na týchto zariadeniach. Webové aplikácie sú prístupné najmä v prehliadačoch. Používajú sa však aj iné periférne zariadenia, ako napríklad webová kamera a ovládač. Nepoužívajú sa však vo veľkom rozsahu.
Typy testovania mobilných aplikácií
Na riešenie všetkých uvedených technických aspektov sa na mobilných aplikáciách vykonávajú tieto typy softvérového testovania:
- Testovanie použiteľnosti (Usability testing): Aby sa zabezpečilo, že mobilná aplikácia sa ľahko používa a poskytuje zákazníkom uspokojivý používateľský zážitok.
- Testovanie kompatibility (Compatibility testing): Testovanie aplikácie na rôznych mobilných zariadeniach, prehliadačoch, veľkostiach obrazovky a verziách operačného systému podľa požiadaviek.
- Testovanie rozhrania (Interface testing): Testovanie možností menu, tlačidiel, záložiek, histórie, nastavení a navigačného toku aplikácie.
- Testovanie služieb (Services testing): Testovanie služieb aplikácie online a offline.
- Testovanie nízkoúrovňových zdrojov (Low-level resource testing): Testovanie využitia pamäte, automatického mazania dočasných súborov a problémov s rastom lokálnej databázy známe ako testovanie nízkoúrovňových zdrojov.
- Testovanie výkonu (Performance testing): Testovanie výkonu aplikácie zmenou pripojenia z 2G, 3G na WiFi, zdieľaním dokumentov, spotrebou batérie atď.
- Prevádzkové testovanie (Operational testing): Testovanie zálohovania a plánov obnovy v prípade výpadku batérie alebo straty údajov pri aktualizácii aplikácie z úložiska.
- Testovanie inštalácie (Installation test): Overenie aplikácie jej inštaláciou/odinštalovaním v zariadení.
- Testovanie bezpečnosti (Security Testing): Testovanie aplikácie s cieľom overiť, či informačný systém chráni údaje alebo nie.
Stratégia testovania mobilných aplikácií
Stratégia testovania by mala zabezpečiť, aby boli splnené všetky zásady kvality a výkonnosti. Niekoľko tipov v tejto oblasti:
1) Výber zariadení: Analyzuj trh a vyber zariadenia, ktoré sa bežne používajú. Toto rozhodnutie väčšinou závisí od klientov. Klient alebo tvorcovia aplikácie pri rozhodovaní o tom, aké telefóny sa majú použiť na testovanie, zohľadňujú faktor popularity určitých zariadení, ako aj marketingové potreby aplikácie.
2) Emulátory: Ich použitie je mimoriadne užitočné v počiatočných fázach vývoja, pretože umožňujú rýchlu a efektívnu kontrolu aplikácie. Emulátor je systém, ktorý spúšťa softvér z jedného prostredia do druhého bez zmeny samotného softvéru. Duplikuje funkcie a funguje v reálnom systéme.
Typy mobilných emulátorov
- Emulátor zariadenia – poskytujú ho výrobcovia zariadení.
- Emulátor prehliadača- simuluje prostredie mobilného prehliadača.
- Emulátor operačných systémov – spoločnosť Apple poskytuje emulátory pre telefóny iPhone, spoločnosť Microsoft pre telefóny so systémom Windows a telefóny so systémom Google Android.
Testovacie prípady pre testovanie mobilnej aplikácie
Okrem testovacích prípadov založených na funkčnosti si testovanie mobilnej aplikácie vyžaduje špeciálne testovacie prípady, ktoré by mali pokrývať nasledujúce scenáre:
- Používanie batérie: je dôležité sledovať spotrebu batérie počas prevádzky aplikácií na mobilných zariadeniach.
- Rýchlosť aplikácie: čas odozvy na rôznych zariadeniach, s rôznymi parametrami pamäte, s rôznymi typmi sietí atď.
- Požiadavky na údaje: na inštaláciu, ako aj na overenie, či ju používateľ s obmedzeným dátovým plánom bude môcť stiahnuť.
- Funkčnosť aplikácie: uisti sa, že aplikácia nepadá v dôsledku výpadku siete alebo čohokoľvek iného.
Príklad testovacieho prípadu si môžeš pozrieť v tomto súbore.
Proces testovania mobilných zariadení
1) Identifikuj typy testovania: Keďže aplikácia je použiteľná pre prehliadače, je povinné otestovať túto aplikáciu vo všetkých podporovaných prehliadačoch pomocou rôznych mobilných zariadení. Musíme vykonať testovanie použiteľnosti, funkčnosti a kompatibility na rôznych prehliadačoch s kombináciou manuálnych a automatických testovacích prípadov.
2) Manuálne a automatizované testovanie: Ak sa pri projekte používa agilná metodika, každé dva týždne developerský tím vydá nový release pre testovací tím a testovací tím spustí svoje test cases (testovacie prípady) v prostredí QA. Automatizačný tím vytvára skripty pre súbor základných funkcií a spúšťa skripty, ktoré pomáhajú určiť, či je nové zostavenie dostatočne stabilné na testovanie. Manuálny testovací tím otestuje novú funkcionalitu.
JIRA sa používa na písanie akceptačných kritérií, udržiavanie testovacích prípadov a zaznamenávanie/preverovanie chýb. Po skončení iterácie sa uskutoční plánovacie stretnutie iterácie, na ktorom sa developerský tím, product owner, biznis analytik a tím QA prediskutujú, čo sa podarilo a čo je potrebné zlepšiť.
3) Beta testovanie: Po dokončení regresného testovania sa sústredenie znovu presunie na UAT (User Acceptance Testing). Používateľské akceptačné testovanie vykonáva klient. Opätovne overí všetky chyby, aby sa uistil, že každá chyba je opravená a aplikácia funguje podľa očakávania v každom schválenom prehliadači.
4) Performance testing: Tím vykoná výkonnostné testovanie a testuje výkonnosť webovej aplikácie pomocou skriptov a s rôznymi záťažami aplikácie.
5) Browser testing: Webová aplikácia sa testuje vo viacerých prehliadačoch – pomocou rôznych simulačných nástrojov, ako aj fyzicky pomocou skutočných mobilných zariadení.
6) Release: Po každom 4. týždni sa testovanie presunie do štádia staging, kde sa vykoná posledné kolo end-to-end testovania na týchto zariadeniach, aby sa zabezpečilo, že produkt je pripravený na produkciu. Potom sa vypustí ako oficiálna verzia do produkčného prostredia.
Top 5 nástrojov pre testovanie mobilných aplikácií
1. Katalon
Katalon Platform je univerzálny nástroj na automatizované testovanie, ktorý je ľahko použiteľný a podporuje širokú škálu platforiem a funkcií. Je to skvelá voľba pre vývojárov, ktorí chcú automatizovať svoje testy bez toho, aby sa museli učiť programovanie. Katalon Platform ponúka bezplatné a flexibilné platené plány.
- Record & playback, built-in kľúčové slová, predpripravené šablóny projektov na rýchle vytváranie testov.
- K dispozícii je manuálny a skriptovací režim na prepínanie medzi možnosťami low code a skriptovania.
- Local, remote a cross-environment vykonávanie na reálnych zariadeniach, simulátoroch alebo vlastných cloudových zariadeniach.
- Testovanie na základe obrázkov na zachytenie a lokalizáciu vizuálnych prvkov.
- Návrh objektového modelu stránky a refaktorovanie objektov na zníženie námahy pri údržbe.
- Zdieľanie testovacích artefaktov na jednoduchý export a import testovacích prostriedkov z jedného projektu do druhého.
- Zabudované pokročilé reportovanie na poskytovanie použiteľných informácií a urýchlenie riešenia problémov.
- Integrácia s bežnými systémami CI/CD (Jenkins, Bamboo, Travis CI, Azure DevOps, CircleCI atď.).
- Bezplatné vzdelávacie zdroje s podrobnou technickou dokumentáciou, vzorovými projektmi a videonávodmi na Katalon Academy.
2. Appium
Appium je open-source framework pre automatizáciu mobilných testov, ktorý umožňuje vývojárom testovať natívne, hybridné a mobilné webové aplikácie. Appium používa protokol WebDriver na komunikáciu s aplikáciami bežiacimi na mobilných zariadeniach. Appium je open-source.
- Dostupný skriptovací jazyk: Java, Ruby, Python, PHP, JavaScript a C#.
- Jednoduché osvojenie pre tých, ktorí majú skúsenosti s nástrojom Selenium.
- Možnosť integrácie s inými frameworkmi a platformami na testovanie.
- Odstraňuje potrebu prekompilovať aplikácie, iné codebase alebo frameworky.
- Umožňuje opätovné použitie testov a kódu medzi systémami iOS, Android a Windows.
3. Robotium
Robotium sa zaoberá automatizovaným testovaním mobilných aplikácií pre Android v1.6+, a to natívnych aj hybridných. Nastavenie si vyžaduje mať pripravené súbory Android SDK, Eclipse, Android Development Kit a JDK. Robotium je open-source.
- Dostupný skriptovací jazyk: Java.
- Jednoduché API na rýchle generovanie testov.
- Slúži na písanie funkčných, systémových a užívateľských akceptačných testov.
- Podporuje vykonávanie na emulátoroch Androidu a skutočných zariadeniach.
- Podpora integrácie CI/CD (Maven, Gradle alebo ANT).
4. Selendroid
Pomocou tohto nástroja možno testovať natívne a hybridné aplikácie pre Android, ako aj mobilný web. Vďaka robustnému rozhraniu API WebDriver a integrácii s nástrojom Selenium odstraňuje väčšinu súčasných prekážok. Selendroid je open-source.
- Interakcia s viacerými zariadeniami a emulátormi súčasne.
- Možnosti nahrávania vo vysokej kvalite.
- Automatizácia testov bez prepínania na iný AUT.
- Možno použiť na emulátoroch aj skutočných zariadeniach, rovnako aj ako uzol (node) v Selenium Grid.
5. Flutter
Ďalšia technológia vyvinutá spoločnosťou Google na vytváranie mobilných (iOS a Android), webových a desktopových aplikácií. Od Techahead mobilné aplikácie vytvorené pomocou Flutteru zabrali viac ako 10 % obchodu Google Playstore. Flutter je open-source.
- Jednoduché zmeny a aktualizácie kódu na emulátoroch, simulátoroch alebo skutočných zariadeniach a zobrazenie výsledkov v reálnom čase pomocou funkcie Hot Reload.
- Ukladanie do vyrovnávacej pamäte na pozadí prostredníctvom service workerov.
- Spoľahlivá bezpečnosť na zníženie výskytu null reference výnimiek.
Ak si IT tester alebo automatizovaný tester a zvládaš nemčinu, pozri si naše ponuky zamestnania. Možno ťa niektorá ponuka práce zaujme. Máme skvelé firemné benefity a priateľskú atmosféru vo firme.