Device Farm, otomatik ve manuel uygulama testleri için yüzlerce gerçek mobil cihaza uzaktan erişim sağlayan bir bulut hizmetidir. Geliştiriciler APK veya IPA yükler, cihaz yapılandırmalarını seçer ve fiziksel cihaz satın almadan testleri paralel olarak çalıştırır. Perfecto, 2025 raporuna göre, Device Farm kullanan ekipler, yerel cihaz çiftliklerine kıyasla regresyon testi süresini %73 oranında azaltmaktadır.
Önemli Noktalar
Device Farm, mobil uygulamaları test etmek için internet üzerinden fiziksel ve sanal cihazlara uzaktan erişim sağlayan bir altyapı çözümüdür. Kendi cihaz laboratuvarınızı satın almak ve bakımını yapmak yerine, geliştiriciler üçüncü taraf cihazlarda zaman kiralar ve yalnızca gerçek kullanım için ödeme yapar.
Mobil cihaz pazarı, OpenSignal, 2025’e göre 24.000’den fazla benzersiz Android akıllı telefon modeli içermektedir. Test için tüm popüler modelleri fiziksel olarak edinmek imkansızdır — milyonlarca dolar yatırım ve sürekli filo güncellemesi gerektirir. Device Farm, abonelik temelinde güncel cihazlara erişim sağlayarak bu sorunu çözer.
Emülatörler ve simülatörler, test senaryolarının yalnızca %60–70’ini kapsar. Sensörleri, kamerayı, GPS’i, pil seviyesini, zayıf donanımda performansı ve gelen çağrılar sırasındaki davranışı test etmek için gerçek cihazlar gereklidir. Device Farm her iki yaklaşımı birleştirir: hızlı smoke testleri için emülatörler ve tam doğrulama için fiziksel cihazlar.
Device Farm, ilk uygulamalarını yayınlayan startuplar, düzenli sürümleri olan olgun ürün ekipleri ve onlarca uygulamaya sahip kurumsal projeler için uygundur. Hedef cihaz sayısı ve sürüm sıklığı arttıkça değer artar — test edilmesi gereken yapılandırma sayısı arttıkça bulut modeli daha uygun maliyetli hale gelir.
Device Farm ile tipik bir iş akışı beş aşamadan oluşur: derlemeyi yükleme, cihazları seçme, testleri yapılandırma, çalıştırma ve sonuçları analiz etme. Her aşama API aracılığıyla otomatikleştirilir ve Device Farm’ın manuel müdahale olmadan bir CI/CD hattına gömülmesine olanak tanır.
Geliştirici, derlenmiş APK (Android), AAB veya IPA’yı (iOS) sağlayıcının bulut deposuna yükler. Firebase Test Lab gibi bazı hizmetler, doğrudan Xcode veya Android Studio projelerini de kabul eder. Dosya boyutu sınırlıdır: AWS Device Farm 200 MB’a kadar, BrowserStack 500 MB’a kadar destekler.
Hedef modeller ve işletim sistemi sürümleri, cihaz kataloğundan seçilir. Modern Device Farm’lar gruplamayı destekler: “tüm amiral gemileri 2024–2025” veya “Android 13–14 ile bütçe dostu Android.” Paralel yürütme, bir testin aynı anda 10–50 cihazda çalıştırılmasına olanak tanır ve toplam süreyi dakikalara indirir.
Testler, sağlayıcının veri merkezlerindeki gerçek cihazlarda çalıştırılır. Geliştirici, gerçek zamanlı bir web konsolu üzerinden ilerlemeyi izler: günlükler, ekran görüntüleri ve test çalıştırma videoları. Bir test başarısız olduğunda, Device Farm bir ekran görüntüsü alır ve teşhis için bir crash günlüğü toplar.
// Jenkinsfile'da Device Farm yapılandırma örneği
pipeline {
agent any
stages {
stage('Build') {
steps {
sh './gradlew assembleDebug'
}
}
stage('Device Farm Tests') {
steps {
sh '''aws device-farm schedule-run
--project-arn arn:aws:devicefarm:us-west-2:123:project:1
--app-arn arn:aws:devicefarm:us-west-2:123:app:1
--device-pool-arn arn:aws:devicefarm:us-west-2:123:pool:1
--test-arn arn:aws:devicefarm:us-west-2:123:test:1'''
}
}
}
}
Modern Device Farm’lar yalnızca test yürütme değil, aynı zamanda teşhis, performans izleme ve diğer geliştirme hizmetleriyle entegrasyon için destek araçları da sağlar. Özellik seti sağlayıcılar arasında farklılık gösterir, ancak çekirdek ortaktır.
Tüm ana çerçeveler desteklenir: Android için Espresso ve UI Automator, iOS için XCTest ve XCUITest, platformlar arası projeler için Appium ve Calabash. Device Farm, kod değişikliği olmadan testleri çalıştırır — yapılandırma sırasında test çerçevesini belirtmeniz yeterlidir.
Geliştirici, bir tarayıcı üzerinden gerçek bir cihaza uzaktan erişir: dokunmalar, kaydırmalar, ekran döndürme, düğme basmaları — tüm eylemler gerçek zamanlı olarak iletilir. Etkileşimli mod, otomatik testler tarafından kapsanmayan nadir hataları yeniden üretmek için vazgeçilmezdir. AWS Device Farm, ek ücret olmadan 60 dakikaya kadar manuel oturum sağlar.
Her çalıştırmadan sonra Device Farm bir rapor oluşturur: testin video kaydı, adım adım ekran görüntüleri, cihaz günlükleri (Android için logcat, iOS için syslog), performans verileri (CPU, bellek, ağ) ve crash yığınları. Bu veriler, yerel bir cihazda yeniden üretmeden sorunları tespit etmeye yardımcı olur.
Tüm büyük Device Farm’lar Jenkins, GitLab CI, GitHub Actions ve CircleCI için eklentiler sağlar. Webhook bildirimleri, Slack, Telegram veya e-posta aracılığıyla ekibi test sonuçları hakkında bilgilendirir. CI/CD entegrasyonu kurmak, sürekli teslimat uygulayan ekipler için standart bir uygulamadır.
| Özellik | AWS Device Farm | BrowserStack | Firebase Test Lab |
|---|---|---|---|
| Fiziksel cihazlar | Evet | Evet | Evet |
| Emülatörler | Evet | Evet | Evet |
| Manuel test | Evet | Evet | Hayır |
| Hata tespiti | Video + günlükler | Video + günlükler | Yalnızca günlükler |
| Ücretsiz limit | Ayda 1000 dakika | 60 dakika deneme | Firebase’de testler ücretsiz |
Device Farm pazarı üç ana kategoriyle temsil edilir: genel amaçlı bulut sağlayıcıları (AWS), özelleşmiş test hizmetleri (BrowserStack) ve platform ekosistem araçları (Firebase). Seçim, teknoloji yığınına ve ekip bütçesine bağlıdır.
Amazon Web Services ekosistemiyle entegredir. Halihazırda barındırma ve CI/CD için AWS kullanan geliştiriciler, tek bir sözleşme ve CodePipeline ile CodeBuild ile sorunsuz entegrasyon elde eder. AWS Device Farm, fiziksel cihazlarda ve emülatörlerde Android, iOS ve web uygulamalarının test edilmesini destekler.
3.000’den fazla gerçek cihazdan oluşan filosuyla en büyük bağımsız sağlayıcıdır. BrowserStack, kullanıcı dostu web arayüzü, hızlı cihaz sağlama (10–15 saniye) ve karmaşık yapılandırma gerektirmeyen Appium desteğiyle tanınır. Hizmet, yeni bir modelin piyasaya sürülmesinden sonraki bir hafta içinde cihaz filosunu otomatik olarak günceller.
Sınırlı iOS test desteğiyle Android uygulamaları için Google’ın ücretsiz hizmetidir. Firebase Test Lab, özellikle startuplar için çekicidir: temel test senaryoları abonelik olmadan kullanılabilir. Firebase Console ve Crashlytics ile entegrasyon, test başarısızlıklarını üretimdeki gerçek çökmelerle ilişkilendirmeye olanak tanır.
Pazar şunları içerir: Samsung Remote Test Lab (Samsung cihazlarına ücretsiz erişim), Kobiton (şirket içi dağıtımla kurumsal odaklı), Perfecto (Perforce tarafından satın alındı, finans sektörüne odaklanmış) ve Sauce Labs (en eski hizmetlerden biri, şimdi Tricentis’in parçası).
Bir Android uygulaması için Firebase Test Lab ile komut satırı entegrasyonuna bakalım. Firebase Test Lab, gcloud CLI aracılığıyla testleri çalıştırır ve ek eklentiler olmadan herhangi bir CI hattına entegrasyona olanak tanır. Örnek, üç cihazda minimum bir smoke testi yapılandırmasını gösterir.
# gcloud CLI kurulumu ve yetkilendirme
gcloud auth login
gcloud config set project my-android-app
# APK'yı Firebase Test Lab'e yükleme
gcloud firebase test android run \
--app app-debug.apk \
--test app-debug-test.apk \
--type instrumentation \
--device model=Pixel7,version=34 \
--device model=SamsungS23,version=33 \
--device model=OnePlus12,version=34 \
--timeout 30m \
--results-bucket gs://my-app-test-results
Komut iki dosya yükler: derlemenin kendisi ve Espresso enstrümantasyon testleri ile test APK’sı. Firebase Test Lab, sürüm açıkça belirtilmezse, her model için otomatik olarak mevcut en son işletim sistemi sürümünü seçer. Sonuçlar, tarayıcıda görüntülemek için XML ve HTML formatında Google Cloud Storage’a kaydedilir.
Her push’ta otomatik çalıştırma için GitHub Actions’ı kullanın. İş akışı uygulamayı derler, Firebase Test Lab’i çalıştırır ve kontrol durumunu döndürür.
name: Android CI with Device Farm
on: [push]
jobs:
test-on-devices:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 17
- run: ./gradlew assembleDebug assembleDebugAndroidTest
- uses: google-github-actions/auth@v2
with:
credentials_json: ${{ secrets.GCP_SA_KEY }}
- run: gcloud firebase test android run
--app app/build/outputs/apk/debug/app-debug.apk
--test app/build/outputs/apk/androidTest/debug/app-debug-test.apk
--device model=Pixel8,version=35
Device Farm’ın maliyeti birkaç parametreye bağlıdır: paralel oturum sayısı, cihaz türü (fiziksel veya emülatör), test süresi ve ek özellikler. Ölçeklendirme sırasında beklenmeyen harcamalardan kaçınmak için bir sağlayıcı seçmeden önce maliyet yapısını anlamak önemlidir.
Çoğu sağlayıcı, gerçek cihaz kullanım süresine göre ücretlendirir. Fiziksel cihazlar, emülatörlerden 2–5 kat daha pahalıdır. AWS Device Farm, yeni hesaplar için ayda 1000 ücretsiz dakika sunar, BrowserStack — 60 dakika deneme süresi. Fiziksel bir Android cihazda dakika başına ortalama maliyet $0,05–0,17’dir.
Düzenli testler için sabit bir abonelik daha uygun maliyetlidir. BrowserStack, 3 kullanıcı için ayda 299 $ karşılığında fiziksel cihazlarda sınırsız dakika sunan bir Team planı sunar. AWS Device Farm’ın sabit bir aboneliği yoktur — ödeme dakika başınadır, düzensiz iş yükleri için uygundur ancak yoğun kullanımda daha pahalıdır.
Bütçe yaparken şunları göz önünde bulundurun: test yapıtlarının (videolar, ekran görüntüleri, günlükler) depolanması — AWS Device Farm, ek ücret olmadan sonuçları 90 güne kadar saklar, BrowserStack 30 güne kadar; büyük APK/IPA dosyaları yüklenirken ağ trafiği; paralel oturum sayısı — paralellik artışı daha pahalı bir plan gerektirebilir.
Sıkça Sorulan Sorular
Emülatör, bilgisayarınızda bir cihazı programlama yoluyla taklit ederken, Device Farm orijinal ürün yazılımı, işlemcisi ve sensörleriyle gerçek bir fiziksel cihaza erişim sağlar. Yalnızca gerçek bir cihazda kamera, GPS, kasa sıcaklığı ve operatör ağıyla etkileşim test edilebilir.
Evet, tüm büyük sağlayıcılar iOS’u destekler. Testler için bir geliştirme sertifikasıyla derlenmiş IPA dosyası gerekir. BrowserStack ve AWS Device Farm fiziksel iPhone ve iPad sağlarken, Firebase Test Lab veri merkezlerindeki macOS simülatörleri aracılığıyla iOS’u destekler.
Jenkins, eklentiler (AWS Device Farm Plugin gibi) veya derleme aşamasında çalıştırılan CLI komutları aracılığıyla entegre olur. Eklenti, derleme yapıtlarını otomatik olarak yükler, seçilen cihazlarda testleri çalıştırır ve sonucu Jenkins hattına döndürür.
Startuplar için Firebase Test Lab en uygunudur — temel özellikler ücretsizdir ve Android Studio entegrasyonu kutudan çıkar çalışır. iOS projeleri için BrowserStack 60 dakika ücretsiz test sunar. Ekip büyüdükçe, tam bir cihaz filosuna sahip ücretli aboneliklere geçerler.
Büyük sağlayıcılar SOC 2 sertifikasına uyar ve verileri aktarım ve depolama sırasında şifreler. AWS Device Farm, izole AWS hesapları içinde çalışır, BrowserStack her oturum için tek kullanımlık cihazlar kullanır. Hassas verilerin (API anahtarları) derleme yapılandırmasına haricileştirilmesi önerilir.
Özet
Anahtar teslim bir mobil uygulama geliştireceğiz
IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.
Ayrıca okuyun