Sobes.tech
Middle

Kokias vietinių programėlių testavimo ypatybes galite išskirti?

sobes.tech AI

Atsakymas iš AI

Natinės mobiliųjų programėlių testavimo ypatybės:

  • Įrenginių ir platformų įvairovė: Reikia testuoti plačiame realių įrenginių (skirtingi gamintojai, modeliai, ekrano raiškos) ir operacinių sistemų (iOS, Android) spektruose ir jų versijose. Emuliatoriai ir simuliatoriai padeda, bet visiškai nepakeičia tikrų įrenginių.
  • Sąveika su hardware: Testavimas su įrenginio aparatūros komponentais (kamera, geolokacija, Bluetooth, akselerometras, mikrofonas).
  • Našumas ir išteklių suvartojimas: Svarbu įvertinti baterijos, atminties, duomenų srauto suvartojimą ir programėlės greitį įvairiomis sąlygomis.
  • Interaktyvumas ir UX: Gestų (pinch, swipe, tap), ekrano orientacijos (portretas, peizažas), taip pat naudotojo patogumo testavimas skirtingų dydžių ekranams.
  • Pertraukimai: Programėlės elgesio testavimas įeinant skambučiams, SMS, pranešimams, tinklo praradimui.
  • Fono režimas: Kaip elgiasi programėlė, kai ji neveikia arba veikia fone.
  • Offline režimas: Funkcionalumo testavimas be interneto ryšio ir duomenų sinchronizavimas jo atstatymo metu.
  • Atnaujinimai: Atlikti atnaujinimo proceso ir suderinamumo su senesnėmis versijomis testus.
  • Įdiegimas/pašalinimas: Tinkamo įdiegimo, pašalinimo ir duomenų valymo testai.
  • Saugumas: Duomenų apsauga, autorizacija, slaptažodžių ir kitų jautrių duomenų saugojimas.
  • Prieiga prie įrenginio išteklių: Leidimų užklausų ir jų teisingo naudojimo testavimas (kontaktų, nuotraukų, failų prieiga).
  • Įrankiai ir automatizavimas: Naudoti specialius įrankius testavimui (Appium, Espresso, XCUITest) ir platformas realių įrenginių testavimui (BrowserStack, Sauce Labs).

Palyginimas su internetinėmis programėlėmis (testavimo kontekste):

Savybė Internetinė programėlė Natinė programėlė
Naršyklės priklausomybė Aukšta (reikia testuoti skirtingose naršyklėse) Maža
OS priklausomybė Maža (daugiausia priklauso nuo naršyklės) Aukšta (reikia testuoti skirtingose OS ir versijose)
Hardware prieiga Ribota (per Browser API) Pilna
Platinimas Per URL Per programėlių parduotuves (App Store, Google Play)
Našumas Priklauso nuo naršyklės, tinklo, serverio Priklauso nuo įrenginio, programėlės optimizacijos
Atnaujinimo procesas Iš karto prieinama Reikalauja naudotojo atnaujinimo

Automatizuotas natūralių programėlių testavimas dažnai reikalauja naudoti specializuotus karkasus, kurie gali sąveikauti su naudotojo sąsajos elementais operacinės sistemos lygyje:

// Pavyzdys automatizuoto testo naudojant Appium (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()); // Rezultato išvestis
        driver.quit();
    } catch (MalformedURLException e) {
        e.printStackTrace();
    }
}