Sobes.tech
Junior

გვითხარით მობილური ტესტირების შესახებ.

sobes.tech AI

პასუხი AI-სგან

მობილური ტესტირება — ეს არის პროგრამული უზრუნველყოფის ხარისხის კონტროლის პროცესი, რომელიც განკუთვნილია მობილური მოწყობილობებისთვის (სმარტფონები, ტაბლეტები). იგი მოიცავს ფუნქციონალურობის, გამოყენების სუბიექტურობის, პროდუქტიულობის, თავსებადობის, უსაფრთხოების და ლოკალიზაციის შემოწმებას სხვადასხვა მოწყობილობებზე და პირობებში:

მობილური ტესტირების ტიპები:

  • ფუნქციონალური ტესტირება: პროგრამის შესაბამისობის შემოწმება მოთხოვნებსა და სპეციფიკაციებს. მოიცავს ყველა ფუნქციის, გამოყენების სცენარების, მონაცემთა შეყვანა/გამოტანა, შეცდომების დამუშავების ტესტირებას.
  • გამოყენების სუბიექტურობის ტესტირება (Usability Testing): ინტერფეისის ინტუიტივობის, ნავიგაციის სიმარტივის, მართვის ელემენტების ხელმისაწვდომობის, საერთო მომხმარებლის გამოცდილების (UX) შეფასება.
  • პროდუქტიულობის ტესტირება: სიჩქარის, რეაგირების, რესურსების (CPU, RAM, ბატარეა) მოხმარების შეფასება.
  • სათანადიანობის ტესტირება (Compatibility Testing): პროგრამის მუშაობის შემოწმება სხვადასხვა მოწყობილობებზე (მრავალი მწარმოებელი, მოდელები), ოპერაციული სისტემებზე (მრავალი iOS, Android ვერსიები) და ეკრანის გაფართოებებზე.
  • უსაფრთხოების ტესტირება: პროგრამის სუსტი წერტილების, მომხმარებელთა მონაცემების დაცვის, ავტენტიფიკაციის და ავტორიზაციის შემოწმება.
  • ლოკალიზაციის ტესტირება: ტექსტების თარგმნის სიზუსტის, თარიღების, დროის, რიცხვების, ვალუტის ფორმატების შესაბამისობის შემოწმება სხვადასხვა რეგიონებისთვის.
  • დაყენებისა და წაშლის ტესტირება: პროგრამის ინსტალაციის და წაშლის პროცესების შეცდომების გარეშე შემოწმება.
  • შეწყვეტის (Interruption Testing): პროგრამის ქცევის შემოწმება სხვადასხვა შეწყვეტის დროს (შემომავალი ზარი, SMS, ბატარეის დაბალი დონის, ქსელის გამორთვა).

მობილური ტესტირების თავისებურებები:

  • მოწყობილობებისა და ოპერაციული სისტემების მრავალფეროვნება: მრავალფეროვანი აპარატული და პროგრამული კომპონენტები.
  • ეკრანის ზომა და განლაგება: სხვადასხვა ზომის ეკრანები და პორტრეტის, ლანდშაფტის რეჟიმში მუშაობის შემოწმება.
  • შესვლის მეთოდები: ტაჩსკრინი, კლავიატურა, ხმის მეშვეობით შესვლა.
  • ქსელური პირობები: სხვადასხვა ქსელური გარემოებისა და კავშირის ცვლილების დროს ტესტირება.
  • რესურსების შეზღუდვები: მეხსიერების, პროცესორის, ბატარეის შეზღუდვები.
  • გეოლოკაცია: GPS-ის გამოყენება და მდებარეობაზე დამოკიდებულება.
  • Push შეტყობინებები: შეტყობინებების მიღებისა და დამუშავების ტესტირება.

მობილური ტესტირების ინსტრუმენტები:

  • მანუალი ტესტირება: პირდაპირ მუშაობა მოწყობილეთთან.
  • ავტომატიზებული ტესტირება:
    • Appium: მრავალპლატფორმული ჩარჩო — ნატიური, ჰიბრიდული და მობილური ვებ-აპლიკაციების ტესტირებისათვის.
    • Espresso (Android): Android-ის UI ტესტირების ჩარჩო.
    • XCUITest (iOS): iOS-ის UI ტესტირების ჩარჩო.
    • Kobiton, BrowserStack, Sauce Labs: ღრუბლოვანი პლატფორმები რეალურ მოწყობილობებზე ტესტირებისათვის.
  • პროდუქტიულობის მონიტორინგი: Android Studio Profiler, Xcode Instruments-ის მსგავსი ინსტრუმენტები.
  • უსაფრთხოების ტესტირება: OWASP ZAP, Burp Suite-ის მსგავსი ინსტრუმენტები.

Appium-ის გამოყენებით ავტომატიზაციის მაგალითი (მოკლედ):

// Java-ით Appium და TestNG გამოყენებით
import io.appium.java_client.AppiumDriver;
import io.appium.java_client.MobileElement;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.remote.MobileCapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;

import java.net.MalformedURLException;
import java.net.URL;

public class MyMobileTest {

    public AppiumDriver<MobileElement> driver;

    @BeforeTest
    public void setUp() throws MalformedURLException {
        DesiredCapabilities cap = new DesiredCapabilities();
        cap.setCapability(MobileCapabilityType.DEVICE_NAME, "emulator-5554"); // თქვენი მოწყობილობის სახელი
        cap.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");
        cap.setCapability(MobileCapabilityType.AUTOMATION_NAME, "UiAutomator2"); // ან XCUITest iOS-ისთვის
        cap.setCapability(MobileCapabilityType.APP_PACKAGE, "com.android.calculator2"); // ტესტირებადი აპლიკაციის პაკეტი
        cap.setCapability(MobileCapabilityType.APP_ACTIVITY, "com.android.calculator2.Calculator"); // აპლიკაციის აქტივობა

        driver = new AndroidDriver<>(new URL("http://127.0.0.1:4723/wd/hub"), cap);
    }

    @Test
    public void testAddition() {
        // კალკულატორის ელემენტებთან მუშაობის მაგალითი
        MobileElement nine = driver.findElementById("com.android.calculator2:id/digit_9");
        MobileElement plus = driver.findElementById("com.android.calculator2:id/op_add");
        MobileElement seven = driver.findElementById("com.android.calculator2:id/digit_7");
        MobileElement equals = driver.findElementById("com.android.calculator2:id/eq");
        MobileElement result = driver.findElementById("com.android.calculator2:id/result");

        nine.click();
        plus.click();
        seven.click();
        equals.click();

        // შედეგის შემოწმება
        String actualResult = result.getText();
        // assert actualResult.equals("16"); // შემოწმების მაგალითი
        System.out.println("შედეგი: " + actualResult);
    }

    @AfterTest
    public void tearDown() {
        if (driver != null) {
            driver.quit();
        }
    }
}

მობილური ტესტირება მოითხოვს ღრმად ცოდნას მობილური გარემოს თავისებურებების, სხვადასხვა მოწყობილობებისა და ოპერაციული სისტემების, ასევე სპეციფიკური ინსტრუმენტებისა და ტექნიკების გამოყენებაში.