Mobile App WikiMobile App Wiki
WikiApp DiscoverDiscuss

Wiki

    mobileapp.wiki

    Wiki

    • ASO17
    • Monetizasyon14
    • Mağaza Politikaları20
    • Metrikler15
    • Geliştirme25
    • Pazarlama15
    • Hukuk9
    • UI/UX14
    • Test & QA10
    • Altyapı10

    mobileapp.wiki

    Ana Sayfa/Test & QA/E2E Testing (Uçtan Uca Test)
    Test & QA3 dk okuma

    E2E Testing (Uçtan Uca Test)

    Mobil uygulama uçtan uca (E2E) test rehberi. Detox, Maestro ve Appium ile test otomasyonu, flaky test çözümleri ve bulut test servisleri.

    E2E Testing (Uçtan Uca Test)

    İçindekiler

    E2E Test Nedir?Unit vs E2EAraçlarDetox (React Native)MaestroAppiumXCUITest (iOS)Espresso (Android)Maestro YAML ÖrneğiTest Senaryoları (Öncelik Sırası)Flaky Test SorunuNedenlerÇözümlerCloud Test ServisleriCI/CD EntegrasyonuBest Practicesİlgili Konular

    E2E Test Nedir?

    Uygulamanın tüm katmanlarını (UI, iş mantığı, API, veritabanı) birlikte test etme. Gerçek kullanıcı senaryolarını simüle eder. 2026 itibarıyla Maestro, basitliği ve güvenilirliği ile en hızlı büyüyen E2E test aracıdır.

    Unit vs E2E

    ÖzellikUnit TestE2E Test
    KapsamTek fonksiyonTüm akış
    HızÇok hızlıYavaş (dakikalar)
    GüvenilirlikYüksekFlaky olabilir
    KurulumKolayKarmaşık
    BakımDüşükYüksek
    DeğerMantık hatalarıEntegrasyon hataları

    Araçlar

    Detox (React Native)

    • Wix tarafından geliştirildi
    • Gray-box testing (uygulama state'ine erişim)
    • iOS ve Android
    • Jest ile entegre
    • CI/CD uyumlu (EAS Build ile çalışır)
    • Senkron test (animasyon bekleme otomatik)

    Maestro

    • Basit YAML formatında test yazma (düşük öğrenme eğrisi)
    • iOS ve Android
    • React Native, Flutter, Native destekli
    • Maestro Cloud ile bulut test
    • Öğrenmesi en kolay araç
    • Görsel test recording ile test oluşturma

    Appium

    • Cross-platform (iOS + Android + Web)
    • WebDriver protokolü
    • Birçok dil desteği (JS, Python, Java)
    • Selenium benzeri API
    • Olgun ve yaygın (enterprise)

    XCUITest (iOS)

    • Apple'ın yerleşik UI test framework'ü
    • Swift/ObjC ile test yazma
    • Xcode entegre, performans testi desteği

    Espresso (Android)

    • Google'ın yerleşik UI test framework'ü
    • Kotlin/Java ile test yazma
    • Hızlı ve güvenilir, Android Studio entegre

    Maestro YAML Örneği

    # login-test.yaml
    appId: com.example.myapp
    ---
    - launchApp
    - tapOn: "E-posta"
    - inputText: "test@example.com"
    - tapOn: "Şifre"
    - inputText: "password123"
    - tapOn: "Giriş Yap"
    - assertVisible: "Ana Sayfa"
    

    Test Senaryoları (Öncelik Sırası)

    1. Kritik akışlar: Kayıt, giriş, ödeme (para kaybı riski)
    2. Core özellikler: Ana değer önerisini sunan akışlar
    3. Regresyon: Daha önce hata olan akışlar
    4. Edge case'ler: Hata durumları, boş veri, offline

    Flaky Test Sorunu

    E2E testlerde en büyük sorun: Bazen geçiyor, bazen geçmiyor.

    Nedenler

    • Animasyon zamanlama sorunları
    • Ağ bekleme sorunları (API yavaşlığı)
    • Test sırası bağımlılığı
    • Cihaz/emülatör durumu (bellek, CPU)

    Çözümler

    • Retry mekanizması (max 2-3 retry)
    • Explicit wait kullan (sabit süre değil, element görünene kadar)
    • Her test izole olsun (temiz başlangıç, app state reset)
    • Deterministik test verisi kullan (mock API veya seed data)
    • Animasyonları test modunda devre dışı bırak

    Cloud Test Servisleri

    ServisÖzellikFiyat
    BrowserStackGerçek cihaz bulutu$39/ay'dan
    Firebase Test LabGoogle'ın test bulutuÜcretsiz kota var
    AWS Device FarmAWS test bulutuDakika bazlı
    Maestro CloudMaestro test bulutuFree tier var

    CI/CD Entegrasyonu

    • GitHub Actions / GitLab CI ile otomatik test
    • Her PR'da kritik E2E testlerini çalıştır
    • Nightly build'de tam E2E suite
    • Test sonuçlarını Slack/Discord'a bildir
    • Screenshot comparison ile visual regression

    Best Practices

    • Test piramidi: Çok unit, az E2E (70% unit, 20% integration, 10% E2E)
    • Sadece kritik akışları E2E ile test et
    • Her gece otomatik çalıştır (nightly)
    • Flaky testleri izole et ve düzelt
    • Screenshot karşılaştırma kullan
    • Test verilerini yönet (seed data, cleanup)
    • Page Object pattern ile test bakımını kolaylaştır

    E2E testler güvenlik ağıdır, ana test stratejiniz değil. Test piramidinde en tepede, en az sayıda olmalı.

    İlgili Konular

    • Device Testing (Cihaz Testi)
    • Google Play Console Rehberi
    • StoreKit 2 & Google Play Billing Rehberi

    Bu içeriği nasıl buldunuz?

    Paylaş

    ← Önceki

    Beta Testing

    Sonraki →

    Crash Reporting (Crashlytics & Sentry)

    İlgili İçerikler

    Beta Testing

    Mobil uygulama beta test süreci rehberi. TestFlight ve Google Play Testing ile closed/open beta, geri bildirim toplama ve kalite güvence stratejileri.

    Crash Reporting (Crashlytics & Sentry)

    Uygulama çökme raporlama rehberi. Firebase Crashlytics ve Sentry ile crash-free rate yönetimi, stack trace analizi ve production hata izleme.

    A/B Testing (Uygulama Ici)

    Mobil uygulama içi A/B testing rehberi. Firebase Remote Config, Statsig ve RevenueCat ile experiment tasarımı ve istatistiksel anlamlılık analizi.

    Performance Profiling

    Mobil uygulama performans profiling rehberi. Startup time, frame rate, memory ve battery analizi araçları ile optimizasyon teknikleri detayları.

    Unit Testing (Mobil)

    Mobil uygulama birim test rehberi. Jest, XCTest ve JUnit araçları, AAA pattern, test coverage hedefleri ve platform bazlı test stratejileri.

    Android Kapalı Test

    Android Kapalı Test hizmeti için androidtesti.com platformunu ziyaret edin.

    androidtesti.com