Sobes.tech
Junior

Mobil testler hakkında bilgi verin.

sobes.tech yapay zeka

AI'dan gelen yanıt

Mobil testler, mobil cihazlar ( akıllı telefonlar, tabletler ) için geliştirilmiş yazılımın kalitesini kontrol etme sürecidir. Farklı platformlarda (Android, iOS), cihazlarda, işletim sistemi sürümlerinde, ekran çözünürlüklerinde, ağ koşullarında ve kullanım senaryolarında testleri içerir.

Mobil testlerin temel yönleri:

  • Fonksiyonel testler: Uygulamanın gereksinimlere ve spesifikasyonlara uygunluğunun kontrolü.
  • Performans testleri: Hız, bellek kullanımı ve pil ömrünün değerlendirilmesi.
  • Kullanılabilirlik testleri: Arayüzün sezgisel olup olmadığı, gezinmenin kolaylığı ve genel kullanıcı deneyimi.
  • Uyumluluk testleri: Uygulamanın farklı cihazlarda, işletim sistemi sürümlerinde ve ekran çözünürlüklerinde çalışmasının kontrolü.
  • Güvenlik testleri: Açıkların tespiti ve kullanıcı verilerinin korunması.
  • Kesintiler testleri: Uygulamanın gelen aramalar, SMS, bildirimler ve diğer olaylara tepkisinin kontrolü.
  • Kurulum/kaldırma testleri: Uygulamanın doğru şekilde kurulması ve tamamen kaldırılması.
  • Yerelleştirme testleri: Metinlerin, tarih ve saat formatlarının farklı bölgeler için doğru gösterimi.
  • Erişilebilirlik testleri: Engelli kullanıcılar için uygulamanın kullanılabilirliği.

Mobil test araçları şunları içerir:

  • Manuel testler: Fiziksel cihazlar veya emülatörler/simülatörler kullanmak.
  • Otomatik testler: Çerçeveler ve araçlar kullanmak.

Mobil test otomasyonu için popüler araçlar:

  • Appium:
    // Appium ile basit bir test örneği (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"); // Emülatör/cihaz adı
            cap.setCapability("platformName", "Android");
            cap.setCapability("appPackage", "com.android.calculator2"); // Test edilen uygulamanın paketi
            cap.setCapability("appActivity", "com.android.calculator2.Calculator"); // Test edilen uygulamanın aktivitesi
    
            AppiumDriver<MobileElement> driver = new AndroidDriver<>(new URL("http://127.0.0.1:4723/wd/hub"), cap);
    
            // Örnek etkileşim: '1' düğmesine basmak
            driver.findElementById("digit_1").click(); 
            
            // ... diğer işlemler
            
            driver.quit(); // Appium oturumunu kapat
        }
    }
    
  • Espresso (Android):
    // Espresso ile basit bir test örneği
    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); // Başlatılacak aktivite
    
        @Test
        public void testButtonClick() {
            // ID ile butonu bul ve tıkla
            Espresso.onView(withId(R.id.myButton)).perform(ViewActions.click());
    
            // ID ile metin alanını bul ve metni kontrol et
            Espresso.onView(withId(R.id.myTextView)).check(matches(withText("Buton tıklandı!")));
        }
    }
    
  • XCUITest (iOS):
    // XCUITest ile basit bir test örneği (Swift)
    import XCTest
    
    class SimpleXCUIITest: XCTestCase {
    
        func testButtonPress() throws {
            // Uygulamayı başlat
            let app = XCUIApplication()
            app.launch()
    
            // Butonu bul ve tıkla
            let myButton = app.buttons["MyButtonIdentifier"] // ID veya etiket
            myButton.tap()
    
            // Metin alanını bul ve değerini kontrol et
            let myLabel = app.staticTexts["MyLabelIdentifier"] // ID veya etiket
            XCTAssertEqual(myLabel.label, "Buton Pressed!")
        }
    }
    

Mobil testlerin özgünlüğü şunları içerir:

  • Çok sayıda cihaz ve işletim sistemi sürümü, geniş bir test ortamı veya bulut hizmetleri gerektirir.
  • Farklı ağ koşullarında (Wi-Fi, 3G, 4G, 5G, çevrimdışı) test edilmesi gerekir.
  • Kesintilerin ve arka plan süreçlerinin yönetimi.
  • Sistem kaynaklarının kullanımı (CPU, RAM, pil).

Emülatörler ve simülatörler başlangıç testleri için kullanılır, ancak son testler gerçek cihazlarda yapılmalı ve performans ile kullanıcı deneyiminin gerçek koşullarda doğru değerlendirilmesi sağlanmalıdır.