Sobes.tech
Middle

Aké vlastnosti testovania natívnych aplikácií môžeš vyzdvihnúť?

sobes.tech AI

Odpoveď od AI

Špecifiká testovania natívnych mobilných aplikácií:

  • Rozmanitosť zariadení a platforiem: Potreba testovania na širokom spektre skutočných zariadení (rôzni výrobcovia, modely, rozlíšenia obrazoviek) a operačných systémov (iOS, Android) a ich verzií. Emulátory a simulátory pomáhajú, ale úplne nenahrádzajú skutočné zariadenia.
  • Interakcia s hardware: Testovanie integrácie s hardvérovými komponentmi zariadenia (kamera, geolokácia, Bluetooth, akcelerometer, mikrofón).
  • Výkonnosť a spotreba zdrojov: Dôležité je hodnotiť spotrebu batérie, pamäte, dátového toku a rýchlosť práce aplikácie v rôznych podmienkach.
  • Interaktivita a UX: Testovanie gest (pinch, swipe, tap), orientácie obrazovky (portrait, landscape), ako aj pohodlia používania rozhrania na rôznych veľkostiach obrazoviek.
  • Prerušenia (Interruptions): Testovanie správania aplikácie pri prichádzajúcich hovoroch, SMS, upozorneniach, strate siete.
  • Práca na pozadí: Ako sa správa aplikácia, keď je neaktívna alebo beží na pozadí.
  • Offline režim: Testovanie funkčnosti pri absencii internetového pripojenia a synchronizácie dát pri jeho obnovení.
  • Aktualizácie aplikácií: Testovanie procesu aktualizácie a kompatibility s staršími verziami.
  • Inštalácia/odstránenie: Testovanie správnej inštalácie, odstraňovania a čistenia dát aplikácie.
  • Bezpečnosť: Testovanie zabezpečenia dát, autorizácie, ukladania hesiel a iných citlivých údajov.
  • Prístup k zdrojom zariadenia: Testovanie požiadaviek na povolenia a ich správne využívanie (prístup ku kontaktom, fotografiám, súborom).
  • Nástroje a automatizácia: Použitie špecifických nástrojov na testovanie (Appium, Espresso, XCUITest) a platforiem na cloudové testovanie na skutočných zariadeniach (BrowserStack, Sauce Labs).

Porovnanie s webovými aplikáciami (v kontexte testovania):

Špecifikum Webová aplikácia Nativná aplikácia
Závislosť od prehliadača Vysoká (treba testovať na rôznych prehliadačoch) Nízka
Závislosť od OS Nízka (závisí hlavne od prehliadača) Vysoká (treba testovať na rôznych OS a verziách)
Prístup k hardware Obmedzený (cez Browser API) Plný
Rozšírenie Prostredníctvom URL Prostredníctvom obchodov s aplikáciami (App Store, Google Play)
Výkonnosť Závisí od prehliadača, siete, servera Závisí od zariadenia, optimalizácie aplikácie
Aktualizácie funkcií Ihneď dostupné Vyžadujú aktualizáciu používateľom

Automatizácia testovania nativnych aplikácií často vyžaduje použitie špeciálnych rámcov, ktoré môžu komunikovať s prvkami používateľského rozhrania na úrovni operačného systému.

// Príklad automatizovaného testu na Appium (pre Android)
@Test
public void simpleAppTest() {
    AndroidDriver driver;
    DesiredCapabilities caps = new DesiredCapabilities();
    caps.setCapability("platformName", "Android");
    caps.setCapability("automationName", "UiAutomator2");
    caps.setCapability("deviceName", "Android Emulator");
    caps.setCapability("appPackage", "com.android.calculator2");
    caps.setCapability("appActivity", "com.android.calculator2.Calculator");

    try {
        driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), caps);
        MobileElement el1 = (MobileElement) driver.findElementById("com.android.calculator2:id/digit_2");
        el1.click();
        MobileElement el2 = (MobileElement) driver.findElementByAccessibilityId("plus");
        el2.click();
        MobileElement el3 = (MobileElement) driver.findElementById("com.android.calculator2:id/digit_3");
        el3.click();
        MobileElement el4 = (MobileElement) driver.findElementByAccessibilityId("equals");
        el4.click();
        MobileElement result = (MobileElement) driver.findElementCast("id", "com.android.calculator2:id/result");
        System.out.println(result.getText()); // Výstup výsledku
        driver.quit();
    } catch (MalformedURLException e) {
        e.printStackTrace();
    }
}