Device Farm „ to usługa w chmurze zapewniająca zdalny dostęp do setek rzeczywistych urządzeń mobilnych do automatycznego i ręcznego testowania aplikacji. Deweloperzy przesyłają APK lub IPA, wybierają konfiguracje urządzeń i uruchamiają testy równolegle, nie kupując fizycznych urządzeń. Według raportu Perfecto, 2025, zespoły korzystające z Device Farm skracają czas testów regresyjnych o 73% w porównaniu z lokalnymi farmami urządzeń.
Najważniejsze
Device Farm — to rozwiązanie infrastrukturalne do testowania aplikacji mobilnych, zapewniające zdalny dostęp do fizycznych i wirtualnych urządzeń przez internet. W przeciwieństwie do zakupu i utrzymywania własnego laboratorium urządzeń, deweloperzy wynajmują czas na cudzych urządzeniach, płacąc tylko za faktyczne użycie.
Rynek urządzeń mobilnych obejmuje ponad 24 000 unikalnych modeli smartfonów z Androidem według OpenSignal, 2025. Fizyczne nabycie wszystkich popularnych modeli do testowania jest niemożliwe — wymagałoby to milionów dolarów inwestycji i ciągłej aktualizacji parku maszynowego. Device Farm rozwiązuje ten problem, zapewniając dostęp do aktualnych urządzeń w subskrypcji.
Emulatory i symulatory pokrywają tylko 60–70% scenariuszy testowych. Rzeczywiste urządzenia są niezbędne do sprawdzenia czujników, aparatu, GPS, poziomu naładowania baterii, wydajności na słabym sprzęcie i zachowania podczas połączeń przychodzących. Device Farm łączy oba podejścia: emulatory do szybkich testów smoke i fizyczne urządzenia do pełnej weryfikacji.
Device Farm jest odpowiednia dla startupów wypuszczających pierwszą aplikację, dojrzałych zespołów produktowych z regularnymi wydaniami oraz projektów enterprise z dziesiątkami aplikacji. Opłacalność użycia rośnie wraz z liczbą docelowych urządzeń i częstotliwością wydań — im więcej konfiguracji trzeba sprawdzić, tym bardziej opłaca się model chmurowy.
Typowy scenariusz pracy z Device Farm obejmuje pięć etapów: przesłanie buildu, wybór urządzeń, konfiguracja testów, uruchomienie, analiza wyników. Każdy etap jest automatyzowany przez API, co umożliwia wbudowanie Device Farm w potok CI/CD bez ręcznej interwencji.
Deweloper przesyła zbudowany APK (Android), AAB lub IPA (iOS) do chmurowego magazynu dostawcy. Niektóre usługi, jak Firebase Test Lab, przyjmują również projekt Xcode lub Android Studio bezpośrednio. Rozmiar pliku jest ograniczony: AWS Device Farm obsługuje do 200 MB, BrowserStack — do 500 MB.
Z katalogu urządzeń wybiera się docelowe modele i wersje OS. Nowoczesne Device Farm obsługują grupowanie: „wszystkie flagowce 2024–2025” lub „budżetowe Androidy z Android 13–14”. Równoległe wykonanie pozwala uruchomić jeden test jednocześnie na 10–50 urządzeniach, skracając całkowity czas do minut.
Testy są wykonywane na rzeczywistych urządzeniach w centrach danych dostawcy. Deweloper obserwuje postęp przez konsolę internetową w czasie rzeczywistym: logi, zrzuty ekranu, wideo z przejścia testu. W przypadku niepowodzenia testu Device Farm robi zrzut ekranu i zbiera log crasha do diagnostyki.
// Przykład konfiguracji Device Farm w Jenkinsfile
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'''
}
}
}
}
Nowoczesne Device Farm zapewniają nie tylko uruchamianie testów, ale także narzędzia pomocnicze do diagnostyki, monitorowania wydajności i integracji z innymi usługami deweloperskimi. Zestaw funkcji różni się między dostawcami, ale rdzeń pozostaje wspólny.
Obsługiwane są wszystkie główne frameworki: Espresso i UI Automator dla Androida, XCTest i XCUITest dla iOS, Appium i Calabash dla projektów wieloplatformowych. Device Farm uruchamia testy bez modyfikacji kodu — wystarczy wskazać framework testowy przy konfiguracji.
Deweloper otrzymuje zdalny dostęp do rzeczywistego urządzenia przez przeglądarkę: dotknięcia, przesuwanie, obracanie ekranu, naciskanie przycisków — wszystkie działania są transmitowane w czasie rzeczywistym. Tryb interaktywny jest niezastąpiony do odtwarzania rzadkich błędów, które nie są objęte automatycznymi testami. AWS Device Farm zapewnia do 60 minut ręcznej sesji bez dodatkowej opłaty.
Po każdym uruchomieniu Device Farm generuje raport: nagranie wideo testu, zrzuty ekranu krok po kroku, logi urządzenia (logcat dla Androida, syslog dla iOS), dane o wydajności (CPU, pamięć, sieć) oraz stos crasha. Te dane pomagają zlokalizować problem bez odtwarzania na lokalnym urządzeniu.
Wszyscy duzi dostawcy Device Farm oferują wtyczki do Jenkins, GitLab CI, GitHub Actions i CircleCI. Powiadomienia webhook informują zespół o wynikach testów w Slack, Telegram lub email. Konfiguracja integracji CI/CD to standardowa praktyka dla zespołów praktykujących ciągłe dostarczanie.
| Funkcja | AWS Device Farm | BrowserStack | Firebase Test Lab |
|---|---|---|---|
| Urządzenia fizyczne | Tak | Tak | Tak |
| Emulatory | Tak | Tak | Tak |
| Ręczne testowanie | Tak | Tak | Nie |
| Lokalizacja błędów | Wideo + logi | Wideo + logi | Tylko logi |
| Darmowy limit | 1000 minut/miesiąc | 60 minut próbny | Testy w Firebase — za darmo |
Rynek Device Farm jest reprezentowany przez trzy główne kategorie: ogólnego przeznaczenia dostawcy chmurowi (AWS), specjalistyczne usługi testowania (BrowserStack) oraz narzędzia w ekosystemie platformy (Firebase). Wybór zależy od stosu technologicznego i budżetu zespołu.
Zintegrowany z ekosystemem Amazon Web Services. Deweloperzy już używający AWS do hostingu i CI/CD otrzymują jedną umowę i bezproblemową integrację z CodePipeline i CodeBuild. AWS Device Farm obsługuje testowanie aplikacji Android, iOS i internetowych na fizycznych urządzeniach i emulatorach.
Największy niezależny dostawca z parkiem ponad 3 000 rzeczywistych urządzeń. BrowserStack słynie z wygodnego interfejsu internetowego, szybkości udostępniania urządzenia (10–15 sekund) i obsługi Appium bez skomplikowanej konfiguracji. Usługa automatycznie aktualizuje park urządzeń w ciągu tygodnia po premierze nowego modelu.
Darmowa usługa od Google dla aplikacji Android z możliwością testowania iOS (ograniczona). Firebase Test Lab jest szczególnie atrakcyjny dla startupów: podstawowe scenariusze testowe są dostępne bez subskrypcji. Integracja z Firebase Console i Crashlytics umożliwia łączenie niepowodzeń testów z rzeczywistymi crashami w produkcji.
Na rynku obecni są Samsung Remote Test Lab (darmowy dostęp do urządzeń Samsung), Kobiton (zorientowany na enterprise z wdrożeniem on-premise), Perfecto (przejęty przez Perforce, skupiony na sektorze finansowym) i Sauce Labs (jedna z najstarszych usług, obecnie część Tricentis).
Rozważmy integrację Firebase Test Lab z wierszem poleceń dla aplikacji Android. Firebase Test Lab uruchamia testy przez gcloud CLI, co umożliwia wbudowanie uruchomienia w dowolny potok CI bez dodatkowych wtyczek. Przykład pokazuje minimalną konfigurację testu smoke na trzech urządzeniach.
# Instalacja gcloud CLI i autoryzacja
gcloud auth login
gcloud config set project my-android-app
# Wgrywanie APK do Firebase Test Lab
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
Polecenie przesyła dwa pliki: sam build i testowy APK z testami instrumentalnymi Espresso. Firebase Test Lab automatycznie wybiera najnowszą dostępną wersję OS dla każdego modelu, jeśli version nie jest jawnie określona. Wyniki są zapisywane w Google Cloud Storage w formacie XML i HTML do przeglądania w przeglądarce.
Do automatycznego uruchamiania przy każdym push-u używany jest GitHub Actions. Workflow buduje aplikację, uruchamia Firebase Test Lab i zwraca status weryfikacji.
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
Koszt Device Farm składa się z kilku parametrów: liczba równoległych sesji, typ urządzenia (fizyczne lub emulator), czas trwania testowania i dodatkowe funkcje. Ważne jest zrozumienie struktury kosztów przed wyborem dostawcy, aby uniknąć nieoczekiwanych wydatków przy skalowaniu.
Większość dostawców taryfikuje faktyczny czas użycia urządzenia. Urządzenia fizyczne kosztują 2–5 razy więcej niż emulatory. AWS Device Farm oferuje 1000 darmowych minut miesięcznie dla nowych kont, BrowserStack — 60 minut okresu próbnego. Średni koszt minuty na fizycznym urządzeniu z Androidem wynosi $0.05–0.17.
Do regularnego testowania bardziej opłaca się stała subskrypcja. BrowserStack oferuje plan Team za $299/mies. na 3 użytkowników z nieograniczoną liczbą minut na fizycznych urządzeniach. AWS Device Farm nie ma płaskiej subskrypcji — płatność jest za każdą minutę, co jest wygodne przy nieregularnym obciążeniu, ale droższe przy intensywnym użyciu.
Przy kalkulacji budżetu uwzględnij: przechowywanie artefaktów testowania (wideo, zrzuty ekranu, logi) — AWS Device Farm przechowuje wyniki do 90 dni bez dodatkowej opłaty, BrowserStack — do 30 dni; ruch sieciowy przy przesyłaniu dużych APK/IPA; liczbę równoległych sesji — zwiększenie równoległości może wymagać droższego planu.
Często zadawane pytania
Emulator imituje urządzenie programowo na twoim komputerze, a Device Farm zapewnia dostęp do rzeczywistego fizycznego urządzenia z oryginalnym oprogramowaniem, procesorem i czujnikami. Tylko na rzeczywistym urządzeniu można sprawdzić aparat, GPS, temperaturę obudowy i interakcję z siecią operatora.
Tak, wszyscy duzi dostawcy obsługują iOS. Do testowania wymagany jest plik IPA zbudowany z certyfikatem deweloperskim. BrowserStack i AWS Device Farm zapewniają fizyczne iPhone i iPad, Firebase Test Lab obsługuje iOS przez symulatory macOS w centrum danych.
Jenkins integruje się przez wtyczki (np. AWS Device Farm Plugin) lub przez polecenia CLI uruchamiane na etapie budowania. Wtyczka automatycznie przesyła artefakty budowania, uruchamia testy na wybranych urządzeniach i zwraca wynik do potoku Jenkins.
Dla startupu optymalny jest Firebase Test Lab — podstawowe funkcje są darmowe, integracja z Android Studio działa od razu. Dla projektów iOS BrowserStack oferuje 60 minut darmowego testowania. W miarę rozwoju zespołu przechodzi się na płatne subskrypcje z pełnym parkiem urządzeń.
Dużi dostawcy przestrzegają certyfikacji SOC 2 i szyfrują dane podczas przesyłania i przechowywania. AWS Device Farm działa w izolowanych kontach AWS, BrowserStack używa jednorazowych urządzeń dla każdej sesji. Wrażliwe dane (klucze API) zaleca się umieszczać w konfiguracji budowania.
Podsumowanie
Opracujemy aplikację mobilną pod klucz
IT Sectr tworzy aplikacje na iOS i Androida dla startupów i firm od 2017 roku. Doradzimy Ci i zaproponujemy najlepsze rozwiązanie.
Przeczytaj również