Sobes.tech
Junior

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

sobes.tech AI

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

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

მობილური ტესტირების ძირითადი ასპექტები:

  • ფუნქციონალური ტესტირება: აპლიკაციის შესაბამისობის შემოწმება მოთხოვნებთან და სპეციფიკაციებთან.
  • პროდუქტიულობის ტესტირება: სიჩქარის, მეხსიერების მოხმარებისა და ბატარეის ხარჯვის შეფასება.
  • გამოყენების სარგებლიანობის ტესტირება (Usability testing): ინტერფეისის ინტუიტივობის, ნავიგაციის სიმარტივის და საერთო მომხმარებლის გამოცდილების შეფასება.
  • სათანადიანობის ტესტირება: აპლიკაციის მუშაობის შემოწმება სხვადასხვა მოწყობილობებზე, ოპერაციული სისტემების ვერსიებზე და ეკრანების გაფართოებაზე.
  • უსაფრთხოების ტესტირება: სუსტი წერტილების გამოვლენა და მომხმარებლის მონაცემების დაცვა.
  • შეწყვეტის ტესტირება: აპლიკაციის რეაგირება შემომავალი ზარების, SMS-ების, შეტყობინებების და სხვა მოვლენების დროს.
  • საინსტალაციო/წაშლის ტესტირება: აპლიკაციის სწორად ინსტალაცია და სრული წაშლა.
  • ლოკალიზაციის ტესტირება (მრავალენოვანი აპლიკაციებისათვის): ტექსტის სწორად გამოსახვა, თარიღისა და დროის ფორმატები სხვადასხვა რეგიონებისთვის.
  • მოწვდომლობის ტესტირება (Accessibility testing): აპლიკაციის გამოყენების სარგებლიანობის შემოწმება შეზღუდული შესაძლებლობების მქონე ადამიანებისთვის.

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

  • მექანიკური ტესტირება: ფიზიკური მოწყობილობების ან ემულატორების/სიმულატორების გამოყენება.
  • ავტომატიზებული ტესტირება: ფრეიმვორკებისა და ინსტრუმენტების გამოყენება.

პოპულარული ინსტრუმენტები ავტომატიზაციისთვის:

  • Appium:
    // მარტივი ტესტის მაგალითი 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"); // თქვენი ემულატორის/მოწყობილობის სახელი
            cap.setCapability("platformName", "Android");
            cap.setCapability("appPackage", "com.android.calculator2"); // ტესტირებადი აპლიკაციის პაკეტი
            cap.setCapability("appActivity", "com.android.calculator2.Calculator"); // ტესტირებადი აპლიკაციის აქტივობა
    
            AppiumDriver<MobileElement> driver = new AndroidDriver<>(new URL("http://127.0.0.1:4723/wd/hub"), cap);
    
            // მაგალითი: დააჭირეთ '1' ღილაკს
            driver.findElementById("digit_1").click(); 
            
            // ... შემდგომი მოქმედებები
            
            driver.quit(); // სესიის დახურვა
        }
    }
    
  • Espresso (Android):
    // მარტივი ტესტის მაგალითი 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); // აქტივობის დაწყება
    
        @Test
        public void testButtonClick() {
            // მოძებნეთ ღილაკი ID-ით და დააჭირეთ
            Espresso.onView(withId(R.id.myButton)).perform(ViewActions.click());
    
            // მოძებნეთ ტექსტური ველი ID-ით და გადაამოწმეთ მისი ტექსტი
            Espresso.onView(withId(R.id.myTextView)).check(matches(withText("Button clicked!")));
        }
    }
    
  • XCUITest (iOS):
    // მარტივი ტესტის მაგალითი XCUITest-ისთვის (Swift)
    import XCTest
    
    class SimpleXCUIITest: XCTestCase {
    
        func testButtonPress() throws {
            // აპლიკაციის ინიცირება
            let app = XCUIApplication()
            app.launch()
    
            // მოძებნეთ ღილაკი და დააჭირეთ
            let myButton = app.buttons["MyButtonIdentifier"] // ID ან ლეიბლი
            myButton.tap()
    
            // მოძებნეთ ტექსტური ველი და გადაამოწმეთ მისი მნიშვნელობა
            let myLabel = app.staticTexts["MyLabelIdentifier"] // ID ან ლეიბლი
            XCTAssertEqual(myLabel.label, "Button Pressed!")
        }
    }
    

მობილური ტესტირების სპეციფიკა მოიცავს:

  • დიდი რაოდენობით მოწყობილობები და ოპერაციული სისტემების ვერსიები, რაც საჭიროებს ფართო ტესტირების ფერმას ან ღრუბლოვან სერვისებს.
  • ტესტირება სხვადასხვა ქსელურ პირობებში (Wi-Fi, 3G, 4G, 5G, offline).
  • შეწყვეტებისა და ფონური პროცესების მართვა.
  • სისტემური რესურსების მოხმარება (CPU, RAM, ბატარეა).

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