Automatizované testovanie pre Android: Open Source rámce

Abdul Mateen – December 24, 2017

Categories: NezaradenéAutomotiveCommunicationsConsumer and RetailFinancial ServicesHealthcareManufacturing and IndustrialMediaTechnology

Vývojári aplikácií pre Android môžu pomocou testovacích rámcov, ktoré umožňujú automatizáciu dôležitých repetitívnych úloh, výrazne urýchliť svoj time-to-market.

Vývojári aplikácií pre Android môžu pomocou testovacích rámcov, ktoré umožňujú automatizáciu dôležitých repetitívnych úloh, výrazne urýchliť svoj time-to-market. V tomto blogu sa pozrieme na niekoľko open source rámcov vrátane platforiem na funkčné (akceptačné) a regresné testovanie:

Inštrumentálne testy pre Android

Vývojári aplikácií pre Android môžu pomocou testovacích rámcov, ktoré umožňujú automatizáciu dôležitých repetitívnych úloh, výrazne urýchliť svoj time-to-market. V tomto blogu sa pozrieme na niekoľko open source rámcov vrátane platforiem na funkčné (akceptačné) a regresné testovanie:

Inštrumentálne testy pre Android

Ako ukazuje „rodokmeň“ testovacích rámcov, ktorý uvádzame vyššie, do kategórie inštrumentálnych testov pre Android patria tieto tri rámce.

Robotium

Robotium je testovací rámec pre Android plne podporujúci natívne a mobilné webové aplikácie. Natívne aplikácie sú tie, na napísanie ktorých boli použité nástroje Android SDK. Mobilné webové aplikácie sú webové aplikácie dostupné cez mobilné prehliadače. Hybridné aplikácie majú tzv. wrapper, ktorý vytvorí Webview – natívny prvok umožňujúci interakciu s obsahom web stránok.

Robotium je špecifickým open test  rámcom, ktorý ponúka Google. Robotium JAR sa integruje s IDE a na vytvorenie testovacieho skriptu sa využívajú programovacie jazyky ako napr. Java, pričom samotný skript sa integruje s Android Junit4. Na základe napísaného testovacieho skriptu sa vytvorí testovací súbor, ktorý priamo interaguje s runnerom vo virtuálnom zariadení Android Dalvik Virtual Machine. Rovnaká požiadavka zároveň spustí užívateľskú akciu v cieľovom súbore, ktorá nie je ničím iným, ako testovaním mobilnej aplikácie.

Robotium sa používa na špecifické testovanie, v rámci ktorého môže byť pomocou súboru APK zautomatizovaná mobilná aplikácia na testovanie čiernej skrinky (black box testing) aj bez získania zdrojového kódu.

Espresso

Espresso je automatizovaný testovací rámec pre Android, ktorý sa používa na testovanie natívnych aplikácií. Tento rámec, s ktorým prišla spoločnosť Google, sa dá použiť na testovanie všetkých akcií špecifických pre jednotlivé činnosti. Espresso sa zameria len na testovanie užívateľského rozhrania v súlade s jednotkovým testovaním komponentov. Espresso využíva nasledujúci mechanizmus:

  • ViewMatchers – umožňuje v hierarchii zobrazení nájsť konkrétne zobrazenie
  • ViewActions – umožňuje vykonať akcie zobrazení (Click, swipe, a pod.)
  • ViewAssertions – umožňuje určiť status zobrazenia (True or False)

Calabash

BDD (behavior-driven development) nástroj Calabash je open source rámcom, ktorý sa používa na testovanie natívnych, hybridných i mobilných aplikácií pre Android. Calabash využíva systém Cucumber Gherkin, integrovaný do Calabash gem-u, aby bol vykonaný testovací skript zapísaný ako súbor špecifikácie testu (tzv. feature).

Ide o open source rámec dostupný na GitHube. Testovacie skripty fungujú na viacerých emulátoroch i fyzických zariadeniach zapojených do jedného prístroja. Jednotlivé kroky majú formu jednoduchých anglických viet a po spustení dokážu v mobilných aplikáciách iniciovať konkrétne akcie.

UI Automator

Testovací rámec UI Automator ponúka set API rozhraní na vybudovanie UI testov, ktoré vykonávajú akcie na užívateľských i systémových aplikáciách. Rozhrania UI Automator API umožňujú vykonávať v testovanom zariadení operácie ako je napr. otvorenie ponuky Settings či app launcher-a.

Testovací rámec UI Automator je vhodný na písanie automatizovaných testov čiernej skrinky, pri ktorých testovací kód nevychádza zo znalosti detailov interných mechanizmov a fungovania cieľovej aplikácie, ale priamo reaguje na prvky UI spojené s konkrétnou mobilnou aplikáciou, ktoré sú spúšťačom všetkých užívateľských akcií, ako je napr. vkladanie textu do textboxu, klikanie, swipovanie, akcia drag to, multi-touch, a pod.

Appium

Appium je open source  nástrojom automatizácie natívnych, mobilných webových a hybridných aplikácií na rôznych androidových platformách.

Appium sa používa na automatizáciu akejkoľvek mobilnej aplikácie v ktoromkoľvek jazyku a z ľubovoľného testovacieho rámca s plným prístupom k back-end rozhraniam API a databáze zo zdrojového kódu. Píšte testy pomocou svojich obľúbených vývojárskych nástrojov v ktoromkoľvek jazyku (vďaka Selenium WebDriver API a jazykovo špecifickým klientskym knižniciam).

Testovacie skripty Appia napísané v IDE interagujú so serverom Appia, pričom tento nie je ničím iným než node serverom s konkrétnou IP adresou a číslom portu. Node server následne pomocou UI Automatora odovzdá mobilným zariadeniam alebo emulátorom príkaz vo formáte JSON. Všetky prvky UI súvisiace s mobilnou aplikáciou sa dajú kontrolovať pomocou klienta Appium, ktorý je založený na projekte Selenium. Nasledujúca schéma znázorňuje jednotlivé fázy fungovania Appia:

Porovnávacia matica

Nasledujúca matica vám pomôže porovnať funkcie jednotlivých rámcov, ktoré v tomto článku predstavujeme.

  • URL copied!