Sobes.tech
Junior

Vorbiți despre testarea mobilă.

sobes.tech AI

Răspuns de la AI

Testarea mobilă este procesul de verificare a calității software-ului dezvoltat pentru dispozitive mobile (smartphone-uri, tablete). Aceasta include testarea pe diferite platforme (Android, iOS), dispozitive, versiuni ale sistemului de operare, rezoluții ale ecranului, condiții de rețea și scenarii de utilizare.

Aspecte principale ale testării mobile:

  • Testarea funcțională: Verificarea conformității aplicației cu cerințele și specificațiile.
  • Testarea performanței: Evaluarea vitezei, consumului de memorie și a bateriei.
  • Testarea ușurinței de utilizare (Usability testing): Evaluarea intuitivității interfeței, ușurinței de navigare și experienței generale a utilizatorului.
  • Testarea compatibilității: Verificarea funcționării aplicației pe diferite dispozitive, versiuni ale sistemului de operare și rezoluții ale ecranului.
  • Testarea securității: Identificarea vulnerabilităților și asigurarea protecției datelor utilizatorului.
  • Testarea întreruperilor: Verificarea reacției aplicației la apeluri, SMS-uri, notificări și alte evenimente.
  • Testarea instalării/dezinstalării: Verificarea corectitudinii instalării și eliminării complete a aplicației.
  • Testarea localizării (pentru aplicații multilingve): Verificarea corectitudinii afișării textului, formatelor de dată și oră pentru diferite regiuni.
  • Testarea accesibilității (Accessibility testing): Verificarea ușurinței de utilizare pentru persoanele cu dizabilități.

Instrumente pentru testarea mobilă:

  • Testare manuală: Utilizarea dispozitivelor fizice sau emulatorilor/simulatorilor.
  • Testare automatizată: Utilizarea cadrelor și instrumentelor.

Unele instrumente populare pentru automatizarea testelor mobile:

  • Appium:
    // Exemplu de test simplu cu Appium (Java)
    import io.appium.java_client.AppiumDriver;
    import io.appium.java_client.MobileElement;
    import io.appium.java_client.android.AndroidDriver;
    import org.openqa.selenium.remote.DesiredCapabilities;
    import java.net.MalformedURLException;
    import java.net.URL;
    
    public class SimpleAppiumTest {
        public static void main(String[] args) throws MalformedURLException {
            DesiredCapabilities cap = new DesiredCapabilities();
            cap.setCapability("deviceName", "emulator-5554"); // Numele emulatorului/dispozitivului
            cap.setCapability("platformName", "Android");
            cap.setCapability("appPackage", "com.android.calculator2"); // Pachetul aplicației testate
            cap.setCapability("appActivity", "com.android.calculator2.Calculator"); // Activitatea aplicației testate
    
            AppiumDriver<MobileElement> driver = new AndroidDriver<>(new URL("http://127.0.0.1:4723/wd/hub"), cap);
    
            // Exemplu de interacțiune: apăsarea butonului '1'
            driver.findElementById("digit_1").click(); 
            
            // ... alte acțiuni
            
            driver.quit(); // Închide sesiunea Appium
        }
    }
    
  • Espresso (Android):
    // Exemplu de test simplu cu Espresso
    package com.example.myapp.test;
    
    import androidx.test.ext.junit.rules.ActivityScenarioRule;
    import androidx.test.ext.junit.runners.AndroidJUnit4;
    import androidx.test.espresso.Espresso;
    import androidx.test.espresso.action.ViewActions;
    import androidx.test.espresso.matcher.ViewMatchers;
    import org.junit.Rule;
    import org.junit.Test;
    import org.junit.runner.RunWith;
    
    import static androidx.test.espresso.assertion.ViewAssertions.matches;
    import static androidx.test.espresso.matcher.ViewMatchers.withId;
    import static androidx.test.espresso.matcher.ViewMatchers.withText;
    
    @RunWith(AndroidJUnit4.class)
    public class SimpleEspressoTest {
    
        @Rule
        public ActivityScenarioRule<MainActivity> activityRule =
                new ActivityScenarioRule<>(MainActivity.class); // Activitatea de pornire
    
        @Test
        public void testButtonClick() {
            // Găsirea butonului după ID și clic
            Espresso.onView(withId(R.id.myButton)).perform(ViewActions.click());
    
            // Verificarea textului din câmpul de text
            Espresso.onView(withId(R.id.myTextView)).check(matches(withText("Button clicked!")));
        }
    }
    
  • XCUITest (iOS):
    // Exemplu de test simplu cu XCUITest (Swift)
    import XCTest
    
    class SimpleXCUIITest: XCTestCase {
    
        func testButtonPress() throws {
            // Inițializarea aplicației
            let app = XCUIApplication()
            app.launch()
    
            // Găsirea butonului și apăsarea
            let myButton = app.buttons["MyButtonIdentifier"] // ID sau etichetă
            myButton.tap()
    
            // Găsirea câmpului de text și verificarea valorii
            let myLabel = app.staticTexts["MyLabelIdentifier"] // ID sau etichetă
            XCTAssertEqual(myLabel.label, "Button Pressed!")
        }
    }
    

Specificitatea testării mobile include:

  • O gamă largă de dispozitive și versiuni ale sistemului de operare, necesitând o fermă de testare extinsă sau servicii cloud.
  • Testarea în condiții de rețea variate (Wi-Fi, 3G, 4G, 5G, offline).
  • Gestionarea întreruperilor și proceselor de fundal.
  • Monitorizarea consumului de resurse ale sistemului (CPU, RAM, baterie).

Emulatorii și simulatorii sunt folosiți pentru testare inițială, dar testarea finală trebuie realizată pe dispozitive reale pentru o evaluare precisă a performanței și experienței utilizatorului în condiții reale.