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();
}
}