Sobes.tech
Junior

Mobil testdən danışın.

sobes.tech Süni İntellekt

AI-dan cavab

Mobil testinq, mobil cihazlar üçün hazırlanmış proqram təminatının keyfiyyətini yoxlama prosesidir (smartfonlar, planşetlər). Bu, müxtəlif platformalarda (Android, iOS), cihazlarda, əməliyyat sistemi versiyalarında, ekran həllərində, şəbəkə şərtlərində və istifadə ssenarilərində test etməyi əhatə edir.

Mobil testin əsas aspektləri:

  • Funksional test: Tətbiqin tələblərə və spesifikasiyalara uyğunluğunu yoxlamaq.
  • Performans testi: Sürət, yaddaş və batareya istifadəsinin qiymətləndirilməsi.
  • İstifadə rahatlığı testi (Usability testing): İnterfeysin intuitivliyi, naviqasiya asanlığı və ümumi istifadəçi təcrübəsinin qiymətləndirilməsi.
  • Uyğunluq testi: Tətbiqin müxtəlif cihazlarda, əməliyyat sistemi versiyalarında və ekran həllərində işləməsini yoxlamaq.
  • Təhlükəsizlik testi: Zəif tərəflərin aşkarlanması və istifadəçi məlumatlarının qorunması.
  • İxtilafların testi: Tətbiqin daxil olan zənglər, SMS-lər, bildirişlər və digər hadisələrə reaksiyasını yoxlamaq.
  • Quraşdırma/çıxarma testi: Tətbiqin düzgün quraşdırılması və tam silinməsini yoxlamaq.
  • Lokallaşdırma testi (çoxdilli tətbiqlər üçün): Mətin, tarix və vaxt formatlarının müxtəlif regionlar üçün düzgün göstərilməsini yoxlamaq.
  • Əlçatanlıq testi (Accessibility testing): Məhdudiyyətləri olan insanlar üçün tətbiqdən istifadəni yoxlamaq.

Mobil test üçün alətlər:

  • Əl ilə test: Fiziki cihazlar və ya emulatorlar/simulyatorlardan istifadə.
  • Avtomatlaşdırılmış test: Çərçivələr və alətlərdən istifadə.

Mobil test üçün məşhur avtomatlaşdırma alətləri:

  • Appium:
    // Appium ilə sadə test nümunəsi (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"); // Emulator/ cihaz adı
            cap.setCapability("platformName", "Android");
            cap.setCapability("appPackage", "com.android.calculator2"); // Test edilən tətbiqin paketi
            cap.setCapability("appActivity", "com.android.calculator2.Calculator"); // Test edilən tətbiqin fəaliyyəti
    
            AppiumDriver<MobileElement> driver = new AndroidDriver<>(new URL("http://127.0.0.1:4723/wd/hub"), cap);
    
            // Nümunə qarşılıqlı əlaqə: '1' düyməsini basmaq
            driver.findElementById("digit_1").click(); 
            
            // ... digər əməliyyatlar
            
            driver.quit(); // Appium sessiyasını bağlamaq
        }
    }
    
  • Espresso (Android):
    // Sadə test nümunəsi Espresso ilə
    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); // İşə salınacaq fəaliyyət
    
        @Test
        public void testButtonClick() {
            // Düyməni ID ilə tap və klik et
            Espresso.onView(withId(R.id.myButton)).perform(ViewActions.click());
    
            // Mətn sahəsini ID ilə tap və mətnini yoxla
            Espresso.onView(withId(R.id.myTextView)).check(matches(withText("Button clicked!")));
        }
    }
    
  • XCUITest (iOS):
    // Sadə test nümunəsi XCUITest ilə (Swift)
    import XCTest
    
    class SimpleXCUIITest: XCTestCase {
    
        func testButtonPress() throws {
            // Tətbiqi başlat
            let app = XCUIApplication()
            app.launch()
    
            // Düyməni tap və bas
            let myButton = app.buttons["MyButtonIdentifier"] // ID və ya etiket
            myButton.tap()
    
            // Mətn sahəsini tap və dəyərini yoxla
            let myLabel = app.staticTexts["MyLabelIdentifier"] // ID və ya etiket
            XCTAssertEqual(myLabel.label, "Button Pressed!")
        }
    }
    

Mobil testin özünəməxsusluğu:

  • Çox sayda cihaz və OS versiyası üçün geniş test ferması və ya bulud xidmətləri tələb edir.
  • Müxtəlif şəbəkə şəraitlərində (Wi-Fi, 3G, 4G, 5G, offline) test etmək lazımdır.
  • İxtilafların və fon proseslərinin idarə olunması.
  • Sistem resurslarının (CPU, RAM, batareya) istifadəsinin monitorinqi.

Emulatorlar və simulyatorlar ilkin testlər üçün istifadə olunur, lakin yekun testlər real cihazlarda aparılmalıdır ki, performans və istifadəçi təcrübəsinin real şəraitdə düzgün qiymətləndirilməsi təmin olunsun.