Device Farm è un servizio cloud che fornisce accesso remoto a centinaia di dispositivi mobili reali per test automatici e manuali di applicazioni. Gli sviluppatori caricano APK o IPA, selezionano configurazioni di dispositivi ed eseguono test in parallelo senza acquistare dispositivi fisici. Secondo un rapporto di Perfecto, 2025, i team che utilizzano Device Farm riducono i tempi di test di regressione del 73% rispetto alle farm di dispositivi locali.
Punti Chiave
Device Farm è una soluzione infrastrutturale per testare applicazioni mobili che fornisce accesso remoto a dispositivi fisici e virtuali tramite internet. A differenza dell’acquisto e della manutenzione di un proprio laboratorio di dispositivi, gli sviluppatori noleggiano tempo su dispositivi di terze parti, pagando solo per l’utilizzo effettivo.
Il mercato dei dispositivi mobili include oltre 24.000 modelli unici di smartphone Android secondo OpenSignal, 2025. Acquisire fisicamente tutti i modelli popolari per i test è impossibile — richiederebbe milioni di dollari di investimento e aggiornamenti costanti del parco dispositivi. Device Farm risolve questo problema fornendo accesso ai dispositivi attuali tramite abbonamento.
Emulatori e simulatori coprono solo il 60–70% degli scenari di test. I dispositivi reali sono necessari per testare sensori, fotocamera, GPS, livello della batteria, prestazioni su hardware debole e comportamento durante le chiamate in arrivo. Device Farm combina entrambi gli approcci: emulatori per test rapidi e dispositivi fisici per la verifica completa.
Device Farm è adatto per startup che lanciano la loro prima app, team di prodotto maturi con rilasci regolari e progetti enterprise con decine di applicazioni. Il valore aumenta con il numero di dispositivi target e la frequenza dei rilasci — più configurazioni devono essere testate, più il modello cloud diventa conveniente.
Un flusso di lavoro tipico con Device Farm comprende cinque fasi: caricamento del build, selezione dei dispositivi, configurazione dei test, esecuzione e analisi dei risultati. Ogni fase è automatizzata tramite API, consentendo di incorporare Device Farm in una pipeline CI/CD senza intervento manuale.
Lo sviluppatore carica l’APK (Android), AAB o IPA (iOS) compilato nello storage cloud del fornitore. Alcuni servizi, come Firebase Test Lab, accettano anche direttamente progetti Xcode o Android Studio. La dimensione del file è limitata: AWS Device Farm supporta fino a 200 MB, BrowserStack fino a 500 MB.
I modelli target e le versioni del sistema operativo vengono selezionati dal catalogo dei dispositivi. I Device Farm moderni supportano il raggruppamento: “tutti i flagship 2024–2025” o “Android economico con Android 13–14.” L’esecuzione parallela consente di eseguire un test simultaneamente su 10–50 dispositivi, riducendo il tempo totale a minuti.
I test vengono eseguiti su dispositivi reali nei data center del fornitore. Lo sviluppatore monitora i progressi tramite una console web in tempo reale: log, screenshot e video di esecuzione dei test. Quando un test fallisce, Device Farm acquisisce uno screenshot e raccoglie un crash log per la diagnosi.
// Esempio di configurazione di Device Farm in 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'''
}
}
}
}
I moderni Device Farms forniscono non solo l’esecuzione di test, ma anche strumenti di supporto per la diagnosi, il monitoraggio delle prestazioni e l’integrazione con altri servizi di sviluppo. L’insieme di funzionalità varia tra i fornitori, ma il nucleo rimane comune.
Tutti i principali framework sono supportati: Espresso e UI Automator per Android, XCTest e XCUITest per iOS, Appium e Calabash per progetti multipiattaforma. Device Farm esegue i test senza modifiche al codice — basta specificare il framework di test durante la configurazione.
Lo sviluppatore ottiene accesso remoto a un dispositivo reale tramite browser: tocchi, scorrimenti, rotazione dello schermo, pressione di pulsanti — tutte le azioni vengono trasmesse in tempo reale. La modalità interattiva è indispensabile per riprodurre bug rari non coperti dai test automatizzati. AWS Device Farm fornisce fino a 60 minuti di sessioni manuali senza costi aggiuntivi.
Dopo ogni esecuzione, Device Farm genera un report: registrazione video del test, screenshot passo-passo, log del dispositivo (logcat per Android, syslog per iOS), dati sulle prestazioni (CPU, memoria, rete) e stack di crash. Questi dati aiutano a localizzare i problemi senza riprodurli su un dispositivo locale.
Tutti i principali Device Farms forniscono plugin per Jenkins, GitLab CI, GitHub Actions e CircleCI. Le notifiche webhook avvisano il team sui risultati dei test tramite Slack, Telegram o email. Configurare l’integrazione CI/CD è una pratica standard per i team che praticano consegna continua.
| Caratteristica | AWS Device Farm | BrowserStack | Firebase Test Lab |
|---|---|---|---|
| Dispositivi fisici | Sì | Sì | Sì |
| Emulatori | Sì | Sì | Sì |
| Test manuali | Sì | Sì | No |
| Localizzazione bug | Video + log | Video + log | Solo log |
| Limite gratuito | 1000 min/mese | 60 min di prova | Test in Firebase gratuiti |
Il mercato di Device Farm è rappresentato da tre categorie principali: fornitori cloud generici (AWS), servizi di test specializzati (BrowserStack) e strumenti dell’ecosistema di piattaforma (Firebase). La scelta dipende dallo stack tecnologico e dal budget del team.
Integrato con l’ecosistema Amazon Web Services. Gli sviluppatori che già utilizzano AWS per hosting e CI/CD ottengono un unico contratto e un’integrazione perfetta con CodePipeline e CodeBuild. AWS Device Farm supporta test di applicazioni Android, iOS e web su dispositivi fisici ed emulatori.
Il più grande fornitore indipendente con una flotta di oltre 3.000 dispositivi reali. BrowserStack è noto per la sua interfaccia web intuitiva, il provisioning rapido dei dispositivi (10–15 secondi) e il supporto per Appium senza configurazioni complesse. Il servizio aggiorna automaticamente la propria flotta di dispositivi entro una settimana dall’uscita di un nuovo modello.
Un servizio gratuito di Google per applicazioni Android con supporto limitato per i test iOS. Firebase Test Lab è particolarmente attraente per le startup: gli scenari di test di base sono disponibili senza abbonamento. L’integrazione con Firebase Console e Crashlytics consente di collegare i fallimenti dei test ai crash reali in produzione.
Il mercato include Samsung Remote Test Lab (accesso gratuito ai dispositivi Samsung), Kobiton (orientato alle aziende con distribuzione on-premise), Perfecto (acquisito da Perforce, focalizzato sul settore finanziario) e Sauce Labs (uno dei servizi più antichi, ora parte di Tricentis).
Consideriamo l’integrazione di Firebase Test Lab con la riga di comando per un’applicazione Android. Firebase Test Lab esegue i test tramite gcloud CLI, consentendo l’integrazione in qualsiasi pipeline CI senza plugin aggiuntivi. L’esempio mostra una configurazione minima di test smoke su tre dispositivi.
# Installazione di gcloud CLI e autenticazione
gcloud auth login
gcloud config set project my-android-app
# Caricamento dell'APK in 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
Il comando carica due file: il build stesso e l’APK di test con i test di strumentazione Espresso. Firebase Test Lab seleziona automaticamente l’ultima versione del sistema operativo disponibile per ogni modello se la versione non è specificata esplicitamente. I risultati vengono salvati in Google Cloud Storage in formato XML e HTML per la visualizzazione nel browser.
Per l’esecuzione automatica a ogni push, utilizzare GitHub Actions. Il workflow compila l’applicazione, esegue Firebase Test Lab e restituisce lo stato del controllo.
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
Il costo di Device Farm dipende da diversi parametri: numero di sessioni parallele, tipo di dispositivo (fisico o emulatore), durata dei test e funzionalità aggiuntive. È importante comprendere la struttura dei costi prima di scegliere un fornitore per evitare spese impreviste durante la scalabilità.
La maggior parte dei fornitori addebita il tempo di utilizzo effettivo del dispositivo. I dispositivi fisici costano da 2 a 5 volte più degli emulatori. AWS Device Farm offre 1000 minuti gratuiti al mese per i nuovi account, BrowserStack — 60 minuti di prova. Il costo medio al minuto su un dispositivo Android fisico è di $0,05–0,17.
Per test regolari, un abbonamento fisso è più conveniente. BrowserStack offre un piano Team a $299/mese per 3 utenti con minuti illimitati su dispositivi fisici. AWS Device Farm non ha un abbonamento fisso — il pagamento è al minuto, comodo per carichi di lavoro irregolari ma più costoso in caso di utilizzo intensivo.
Quando si fa il budget, considerare: archiviazione degli artefatti di test (video, screenshot, log) — AWS Device Farm conserva i risultati fino a 90 giorni senza costi aggiuntivi, BrowserStack fino a 30 giorni; traffico di rete durante il caricamento di file APK/IPA di grandi dimensioni; numero di sessioni parallele — aumentare il parallelismo potrebbe richiedere un piano più costoso.
Domande frequenti
Un emulatore simula un dispositivo programmaticamente sul tuo computer, mentre Device Farm fornisce accesso a un dispositivo fisico reale con firmware originale, processore e sensori. Solo su un dispositivo reale è possibile testare la fotocamera, il GPS, la temperatura del case e l’interazione con la rete del operatore.
Sì, tutti i principali fornitori supportano iOS. I test richiedono un file IPA compilato con un certificato di sviluppo. BrowserStack e AWS Device Farm forniscono iPhone e iPad fisici, mentre Firebase Test Lab supporta iOS tramite simulatori macOS nei data center.
Jenkins si integra tramite plugin (ad esempio, AWS Device Farm Plugin) o comandi CLI eseguiti durante la fase di build. Il plugin carica automaticamente gli artefatti di build, esegue test sui dispositivi selezionati e restituisce il risultato alla pipeline Jenkins.
Per le startup, Firebase Test Lab è ottimale — le funzionalità di base sono gratuite e l’integrazione con Android Studio funziona immediatamente. Per i progetti iOS, BrowserStack offre 60 minuti di test gratuiti. Man mano che il team cresce, si passa ad abbonamenti a pagamento con una flotta completa di dispositivi.
I principali fornitori rispettano la certificazione SOC 2 e crittografano i dati in transito e a riposo. AWS Device Farm opera all’interno di account AWS isolati, BrowserStack utilizza dispositivi monouso per ogni sessione. I dati sensibili (chiavi API) dovrebbero essere esternalizzati nella configurazione di build.
Riepilogo
Svilupperemo un'applicazione mobile chiavi in mano
IT Sectr crea applicazioni iOS e Android per startup e aziende dal 2017. Ti consulteremo e ti proporremo la soluzione migliore.
Leggi anche