Sobes.tech
Junior

Pasakokite apie mobiliuosius testus.

sobes.tech AI

Atsakymas iš AI

Mobilusis testavimas — tai procesas, skirtas mobiliųjų įrenginių (išmaniuosius telefonus, planšetinius kompiuterius) programinės įrangos kokybei patikrinti. Jis apima testavimą įvairiose platformose (Android, iOS), įrenginiuose, OS versijose, ekrano raiškose, tinklo sąlygose ir naudojimo scenarijuose:

Pagrindiniai mobiliojo testavimo aspektai:

  • Funkcinis testavimas: Programėlės atitikimo reikalavimams ir specifikacijoms patikrinimas.
  • Veikimo našumo testavimas: Greičio, atminties naudojimo ir baterijos sąnaudų vertinimas.
  • Naudojimo patogumo testavimas (Usability testing): Sąsajos intuityvumo, navigacijos paprastumo ir bendros naudotojo patirties vertinimas.
  • Suderinamumo testavimas: Programėlės veikimo patikrinimas skirtinguose įrenginiuose, OS versijose ir ekrano raiškose.
  • Saugumo testavimas: Pažeidžiamumų nustatymas ir naudotojo duomenų apsauga.
  • Pertraukėlių testavimas: Programėlės reakcijos į gaunamus skambučius, SMS, pranešimus ir kitus įvykius patikrinimas.
  • Įdiegimo/pašalinimo testavimas: Programėlės teisingas įdiegimas ir visiškas pašalinimas.
  • Lokalizacijos testavimas (daugia kalbių programėlėms): Teksto teisingas rodymas, datos ir laiko formatų patikrinimas skirtinguose regionuose.
  • Prieinamumo testavimas (Accessibility testing): Programėlės naudojimo patogumo patikrinimas žmonėms su ribotomis galimybėmis.

Įrankiai mobiliajam testavimui:

  • Rankinis testavimas: Fiziniai įrenginiai arba emuliatoriai/simuliai.
  • Automatizuotas testavimas: Naudojant karkasus ir įrankius.

Populiarūs automatizavimo įrankiai:

  • Appium:
    // Paprastas testas naudojant 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"); // Jūsų emuliatoriaus / įrenginio pavadinimas
            cap.setCapability("platformName", "Android");
            cap.setCapability("appPackage", "com.android.calculator2"); // Testuojamos programėlės paketas
            cap.setCapability("appActivity", "com.android.calculator2.Calculator"); // Testuojamos programėlės aktyvumas
    
            AppiumDriver<MobileElement> driver = new AndroidDriver<>(new URL("http://127.0.0.1:4723/wd/hub"), cap);
    
            // Pavyzdys: paspausti mygtuką '1'
            driver.findElementById("digit_1").click(); 
            
            // ... tolesni veiksmai
            
            driver.quit(); // Baigti sesiją
        }
    }
    
  • Espresso (Android):
    // Paprastas testas naudojant 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); // Veiklos paleidimas
    
        @Test
        public void testButtonClick() {
            // Surasti mygtuką pagal ID ir paspausti
            Espresso.onView(withId(R.id.myButton)).perform(ViewActions.click());
    
            // Surasti teksto lauką pagal ID ir patikrinti jo tekstą
            Espresso.onView(withId(R.id.myTextView)).check(matches(withText("Button clicked!")));
        }
    }
    
  • XCUITest (iOS):
    // Paprastas testas naudojant XCUITest (Swift)
    import XCTest
    
    class SimpleXCUIITest: XCTestCase {
    
        func testButtonPress() throws {
            // Programos inicijavimas
            let app = XCUIApplication()
            app.launch()
    
            // Surasti mygtuką ir paspausti
            let myButton = app.buttons["MyButtonIdentifier"] // ID arba žymė
            myButton.tap()
    
            // Surasti teksto lauką ir patikrinti jo reikšmę
            let myLabel = app.staticTexts["MyLabelIdentifier"] // ID arba žymė
            XCTAssertEqual(myLabel.label, "Button Pressed!")
        }
    }
    

Mobiliųjų testų ypatybės:

  • Daug įrenginių ir OS versijų, reikalaujančių plataus testavimo fermos arba debesų paslaugų.
  • Testavimas skirtingomis tinklo sąlygomis (Wi-Fi, 3G, 4G, 5G, neprisijungus).
  • Pertraukčių ir foninių procesų valdymas.
  • Sistemos išteklių naudojimo stebėjimas (CPU, RAM, baterija).

Emuliatoriai ir simuliatoriai naudojami pradiniam testavimui, tačiau galutinis testavimas turi būti atliekamas tikrų įrenginių, siekiant tiksliai įvertinti našumą ir naudotojo patirtį realiomis sąlygomis.