Sobes.tech
Junior

Porozprávajte nám o mobilnom testovaní.

sobes.tech AI

Odpoveď od AI

Mobilné testovanie je proces kontroly kvality softvéru určeného pre mobilné zariadenia (smartphony, tablety). Zahŕňa overenie funkčnosti, použiteľnosti, výkonu, kompatibility, bezpečnosti a lokalizácie aplikácie na rôznych zariadeniach a v rôznych podmienkach.

Druhy mobilného testovania:

  • Funkčné testovanie: Kontrola zhody aplikácie s požiadavkami a špecifikáciami. Zahŕňa testovanie všetkých funkcií, scenárov použitia, vkladania/výberu dát, spracovania chýb.
  • Testovanie použiteľnosti (Usability Testing): Hodnotenie intuitívnosti rozhrania, jednoduchosť navigácie, dostupnosť ovládacích prvkov, celkový používateľský zážitok (UX).
  • Testovanie výkonu: Hodnotenie rýchlosti načítania, odozvy, spotreby zdrojov (CPU, RAM, batéria) pri rôznych zaťaženiach a v rôznych sieťových podmienkach (Wi-Fi, 3G, 4G, 5G).
  • Testovanie kompatibility (Compatibility Testing): Kontrola funkčnosti aplikácie na rôznych zariadeniach (rôzni výrobcovia, modely), operačných systémoch (rôzne verzie iOS, Android) a rozlíšeniach obrazovky.
  • Testovanie bezpečnosti: Kontrola zraniteľností aplikácie, ochrany dát používateľov, autentifikácie a autorizácie.
  • Testovanie lokalizácie: Kontrola správnosti prekladov textov, prispôsobenia formátov dátumu, času, čísel, meny pre rôzne regióny.
  • Testovanie inštalácie/odstránenia: Kontrola procesu inštalácie a odstraňovania aplikácie bez chýb.
  • Testovanie prerušenia (Interruption Testing): Kontrola správania aplikácie pri rôznych prerušeniach (prichádzajúci hovor, SMS, nízky stav batérie, vypnutie siete).

Špecifiká mobilného testovania:

  • Rozmanitosť zariadení a OS: Veľké množstvo kombinácií hardvéru a softvéru.
  • Veľkosť obrazovky a orientácia: Rôzne veľkosti displejov a potreba testovania v portrétnej a krajinkovej orientácii.
  • Spôsoby zadávania: Dotyková obrazovka, klávesnica, hlasový vstup.
  • Sieťové podmienky: Testovanie v rôznych sieťových prostrediach a pri zmene pripojenia.
  • Obmedzenia zdrojov: Obmedzená pamäť, procesor, batéria.
  • Geolokácia: Použitie GPS a závislosť od polohy.
  • Push notifikácie: Testovanie príjmu a spracovania oznámení.

Nástroje pre mobilné testovanie:

  • Ručné testovanie: Priama práca s zariadením.
  • Automatizácia testovania:
    • Appium: Viacplatformový rámec pre testovanie nativných, hybridných a mobilných webových aplikácií.
    • Espresso (Android): Rámec pre testovanie UI na Android.
    • XCUITest (iOS): Rámec pre testovanie UI na iOS.
    • Kobiton, BrowserStack, Sauce Labs: Cloudové platformy pre testovanie na reálnych zariadeniach.
  • Monitorovanie výkonu: Nástroje ako Android Studio Profiler, Xcode Instruments.
  • Testovanie bezpečnosti: Nástroje ako OWASP ZAP, Burp Suite.

Príklad automatizácie s použitím Appium (stručný):

// Príklad v Jave s použitím Appium a TestNG
import io.appium.java_client.AppiumDriver;
import io.appium.java_client.MobileElement;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.remote.MobileCapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;

import java.net.MalformedURLException;
import java.net.URL;

public class MyMobileTest {

    public AppiumDriver<MobileElement> driver;

    @BeforeTest
    public void setUp() throws MalformedURLException {
        DesiredCapabilities cap = new DesiredCapabilities();
        cap.setCapability(MobileCapabilityType.DEVICE_NAME, "emulator-5554"); // Názov vášho zariadenia
        cap.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");
        cap.setCapability(MobileCapabilityType.AUTOMATION_NAME, "UiAutomator2"); // Alebo XCUITest pre iOS
        cap.setCapability(MobileCapabilityType.APP_PACKAGE, "com.android.calculator2"); // Balík testovanej aplikácie
        cap.setCapability(MobileCapabilityType.APP_ACTIVITY, "com.android.calculator2.Calculator"); // Aktivita testovanej aplikácie

        driver = new AndroidDriver<>(new URL("http://127.0.0.1:4723/wd/hub"), cap);
    }

    @Test
    public void testAddition() {
        // Príklad interakcie s prvkami kalkulačky
        MobileElement nine = driver.findElementById("com.android.calculator2:id/digit_9");
        MobileElement plus = driver.findElementById("com.android.calculator2:id/op_add");
        MobileElement seven = driver.findElementById("com.android.calculator2:id/digit_7");
        MobileElement equals = driver.findElementById("com.android.calculator2:id/eq");
        MobileElement result = driver.findElementById("com.android.calculator2:id/result");

        nine.click();
        plus.click();
        seven.click();
        equals.click();

        // Kontrola výsledku
        String actualResult = result.getText();
        // assert actualResult.equals("16"); // Príklad tvrdenia
        System.out.println("Výsledok: " + actualResult);
    }

    @AfterTest
    public void tearDown() {
        if (driver != null) {
            driver.quit();
        }
    }
}

Mobilné testovanie vyžaduje hlboké pochopenie vlastností mobilného prostredia, rôznych zariadení a operačných systémov, ako aj ovládanie špecifických nástrojov a techník.