Sobes.tech
Junior

Pastāstiet par mobilo testēšanu.

sobes.tech AI

Atbilde no AI

Mobilais testēšana — tas ir process, kas pārbauda programmatūras kvalitāti, kas izstrādāta mobilajām ierīcēm (viedtālruņiem, planšetdatoriem). Tas ietver testēšanu dažādās platformās (Android, iOS), ierīcēs, OS versijās, ekrāna izšķirtspējās, tīkla apstākļos un lietošanas scenārijos:

Galvenie mobilās testēšanas aspekti:

  • Funkcionālā testēšana: Lietotnes atbilstības pārbaude prasībām un specifikācijām.
  • Veiktspējas testēšana: Ātruma, atmiņas patēriņa un akumulatora uzlādes novērtējums.
  • Lietojamības testēšana (Usability testing): Saskarnes intuitivitātes, navigācijas vienkāršības un kopējās lietotāja pieredzes novērtējums.
  • Saderības testēšana: Lietotnes darbības pārbaude dažādās ierīcēs, OS versijās un ekrāna izšķirtspējās.
  • Drošības testēšana: Vājumu identificēšana un lietotāja datu aizsardzība.
  • Pārtraukumu testēšana: Lietotnes reakcija ienākošajiem zvaniem, SMS, paziņojumiem un citām notikumiem.
  • Uzstādīšanas/noņemšanas testēšana: Lietotnes pareiza uzstādīšana un pilnīga noņemšana.
  • Lokalizācijas testēšana (multilingvālām lietotnēm): Teksta pareiza attēlošana, datuma un laika formātu pārbaude dažādos reģionos.
  • Pieejamības testēšana (Accessibility testing): Lietotnes lietošanas ērtības pārbaude cilvēkiem ar ierobežotām iespējām.

Instrumenti mobilajai testēšanai ietver:

  • Rokas tests: Fizisku ierīču vai emulāciju/simulāciju izmantošana.
  • Automatizēta testēšana: Izmantojot rāmi un rīkus.

Populāri automatizācijas rīki:

  • Appium:
    // Vienkāršs tests ar 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ūsu emulācijas vai ierīces nosaukums
            cap.setCapability("platformName", "Android");
            cap.setCapability("appPackage", "com.android.calculator2"); // Testētās lietotnes pakotne
            cap.setCapability("appActivity", "com.android.calculator2.Calculator"); // Testētās lietotnes aktivitāte
    
            AppiumDriver<MobileElement> driver = new AndroidDriver<>(new URL("http://127.0.0.1:4723/wd/hub"), cap);
    
            // Piemērs: nospiest pogu '1'
            driver.findElementById("digit_1").click(); 
            
            // ... turpmākās darbības
            
            driver.quit(); // Sērijas beigšana
        }
    }
    
  • Espresso (Android):
    // Vienkāršs tests ar 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); // Aktivācijas palaišana
    
        @Test
        public void testButtonClick() {
            // Atrodi pogu pēc ID un nospied
            Espresso.onView(withId(R.id.myButton)).perform(ViewActions.click());
    
            // Atrodi teksta lauku pēc ID un pārbaudi tā tekstu
            Espresso.onView(withId(R.id.myTextView)).check(matches(withText("Button clicked!")));
        }
    }
    
  • XCUITest (iOS):
    // Vienkāršs tests ar XCUITest (Swift)
    import XCTest
    
    class SimpleXCUIITest: XCTestCase {
    
        func testButtonPress() throws {
            // Programmas palaišana
            let app = XCUIApplication()
            app.launch()
    
            // Atrodi pogu un nospied
            let myButton = app.buttons["MyButtonIdentifier"] // ID vai zīmogs
            myButton.tap()
    
            // Atrodi teksta lauku un pārbaudi tā vērtību
            let myLabel = app.staticTexts["MyLabelIdentifier"] // ID vai zīmogs
            XCTAssertEqual(myLabel.label, "Button Pressed!")
        }
    }
    

Mobilās testēšanas īpatnības:

  • Liels ierīču skaits un OS versijas, kas prasa plašu testu fermu vai mākoņpakalpojumus.
  • Testēšana dažādos tīkla apstākļos (Wi-Fi, 3G, 4G, 5G, bezsaistē).
  • Pārtraukumu un fonu procesu vadība.
  • Sistēmas resursu patēriņa uzraudzība (CPU, RAM, akumulators).

Emulatori un simulators tiek izmantoti sākotnējai testēšanai, bet galīgais testēšanas posms jāveic uz reāliem ierīcēm, lai precīzi novērtētu veiktspēju un lietotāja pieredzi reālos apstākļos.