Skip to main content

La capacità di attenzione media di un essere umano è inferiore a 9 secondi! Ti sei mai chiesto perché? La maggior parte delle applicazioni mobili nate negli ultimi anni richiede di scorrere un flusso, abituando il cervello a non soffermarsi su qualcosa per più di pochi secondi. Questo ha portato a una significativa riduzione della capacità di attenzione dell'utente medio.

Con la moltitudine di applicazioni mobili disponibili nel negozio di app, arriva la grande responsabilità di testare le app mobili e ampliare le attività di test di regressione. È qui che gli strumenti di test per applicazioni mobili si rivelano utili. 

Sono stato tra i primi ad adottare i framework di test per applicazioni mobili e, in base alla mia esperienza, concentrarsi sull'automazione, sui fattori di forma e sui test delle prestazioni ha svolto un ruolo altrettanto importante per ampliare la portata e aumentare l'impatto nel mondo mobile. In questo articolo condividerò le tecniche più efficaci per automatizzare i test delle applicazioni mobili.

Continue Reading for Free

Create a free account to finish this article, plus get ongoing access to timely insights and practical resources.

Test delle applicazioni mobili: componenti da considerare

Il test su qualsiasi piattaforma specifica presenta le proprie difficoltà, ma con i dispositivi mobili è necessario tenere conto di questi parametri aggiuntivi. Che si eseguano test manuali o test automatizzati, oltre ai test funzionali, i casi di test devono concentrarsi su:

Connettività

È importante verificare cosa succede se un utente utilizza il proprio dispositivo mobile in modalità aereo o offline, cosa accade se la larghezza di banda varia e così via, per assicurarsi che l'app funzioni. 

Arricchisci la tua casella di posta con più saggezza sulla leadership tecnologica per offrire software e sistemi migliori.

Posizione 

Soprattutto per le applicazioni mobili che dipendono dal GPS o dai servizi basati sulla posizione, i test devono essere eseguiti simulando la posizione tramite strumenti come MobileSpy, Location Spoofer e così via. In caso contrario, sarebbe difficile testare, ad esempio, uno scenario di test per un'applicazione mobile di condivisione di corse in cui qualcuno richiede una corsa da New York e sono state apportate modifiche ai microservizi di back-end specifiche per individuare il conducente in quella posizione. Senza simulazione, i test non fornirebbero risultati accurati. 

Sistema operativo

Soprattutto considerando il numero di telefoni Android presenti oggi sul mercato, testare tutte le versioni del sistema operativo disponibili è quasi impossibile: come si stabiliscono allora le priorità? Con iOS, si aggiungono le difficoltà legate alle versioni di Xcode associate ai cambiamenti delle versioni del sistema operativo. 

Oggi le aziende ricorrono a fornitori terzi come BrowserStack per mettere a disposizione simulatori/emulatori per diversi sistemi operativi, test dei dispositivi e test tra browser diversi. 

Le icone dell'interfaccia utente differiscono a seconda dei sistemi operativi: Windows, iOS e Android e, quando si parla di automazione dei test, la maggior parte di noi finisce per utilizzare simulatori: quelli Android impiegano molto più tempo a caricarsi, mentre i dispositivi iOS sono più veloci.

Le diverse combinazioni di tasti dei dispositivi mobili da utilizzare in base ai diversi tipi di sistema operativo per acquisire schermate utili al debug dei problemi rappresentano un'informazione fondamentale per chiunque esegua test su applicazioni mobili. 

Fattore di forma

Durante lo sviluppo di applicazioni mobili, è necessario considerare 5 principali fattori di forma per le diverse versioni del sistema operativo, oltre alla modalità verticale o orizzontale su ciascuno di questi tipi di dispositivo: 

DispositivoDimensioni dello schermo
Dispositivi mobili piccoli3,5 pollici o meno
Dispositivi mobili mediDa 3,5 a 5 pollici
TabletDa 5 a 7 pollici
Tablet piccoliDa 7 a 8,5 pollici
Tablet di dimensioni standard8,5 pollici o più

Come scegliere il framework giusto per l'automazione mobile

Considerare i fattori di forma durante la creazione di applicazioni mobili significa garantire la reattività quando la stessa app viene aperta su dispositivi mobili e sistemi operativi diversi. Quando l'utilizzo dell'app si estende in tutto il mondo e le aziende vogliono aumentare la propria base di utenti, dovranno prendere questa decisione già nelle prime fasi del processo di sviluppo, scegliendo i framework React Native invece dello sviluppo nativo per Android o iOS.

In caso contrario, le aziende finiranno per dedicare tempo e risorse al refactoring e alla riprogettazione delle app per passare ai framework React Native. Questo influisce direttamente sul numero di team e sul sovraccarico di manutenzione, poiché i framework React Native supportano lo sviluppo di applicazioni sia iOS sia Android. 

Quando le applicazioni mobili vengono sviluppate utilizzando i framework React Native, si riduce anche il carico dell'automazione dei test, poiché è necessario mantenere un unico framework di automazione dei test per iOS e Android. 

Esistono diversi modi per sviluppare applicazioni mobili. Alcune aziende ricorrono all'uso di linguaggi di programmazione nativi come Java e Objective C rispettivamente per le applicazioni Android e iOS. Il vantaggio dell'uso dei linguaggi nativi consente loro di offrire funzionalità avanzate nelle proprie applicazioni.

D'altra parte, gli ID degli elementi saranno diversi su entrambe le piattaforme, il che significa che dovremo disporre di framework di test nativi separati per eseguire lo stesso test, come Espresso su Android, XCUITest su iOS, ecc. 

React Native è un altro linguaggio di programmazione comunemente utilizzato per sviluppare applicazioni mobili reattive, reso open source da Facebook. L'obiettivo era unificare gli sforzi di sviluppo mobile su entrambe le piattaforme, in modo da poter disporre di un unico team e fare sì che gli ID degli elementi delle due app fossero uguali, richiedendo così un unico framework di test come Appium per contribuire a testare le applicazioni mobili. 

Quando si tratta di automatizzare i test delle applicazioni mobili, scegliere i giusti strumenti di automazione QA può fare una differenza significativa nell'efficienza dei test.

Come automatizzare i test delle applicazioni mobili iOS 

Durante i test manuali è necessario rispettare una serie di criteri: la maggior parte delle aziende che sviluppano app iOS specifica chiaramente quali sistemi operativi e versioni dell'sdk sono supportati. Questo aiuta a limitare le attività di test. 

Per ampliare le attività di test del software, dobbiamo investire nell'automazione. Esistono molti framework diffusi che supportano i test automatizzati delle app mobili iOS; tra questi, limitiamo l'ambito della nostra discussione ai seguenti 2 strumenti di automazione:

  • XCUITest
  • Appium
XCUITestAppium
Framework per app native che può risiedere all'interno della base di codice sorgente iOS. Framework di test isolato, creato al di fuori della base di codice sorgente. 
Scritto in Objective C o SwiftScritto in Java, Python, ecc.
Attese esplicite che applicano una condizione. Attese implicite che prevedono l'uso di sleep(), rendendo i test instabili. 
Simulazione delle risposte dell'API backend tramite librerie open source come MockingjaySupporta l'uso di server simulati. 
Poiché si tratta di un framework per app native, può essere utilizzato esclusivamente per testare applicazioni iOS. Poiché i test risiedono al di fuori della base di codice sorgente e possono essere scritti in linguaggi come Java, Python, ecc., può essere utilizzato per testare applicazioni multipiattaforma come quelle per Windows, iOS e Android, purché gli ID degli elementi siano uguali su entrambe le piattaforme. 

Ho utilizzato server simulati per simulare le chiamate al backend e testare esclusivamente l'interfaccia utente, come segue, creando una classe base: 

screenshot del test della classe base

Ora che la classe base è pronta, aggiungo il test effettivo utilizzando il modello di progettazione a oggetti pagina, come segue: 

screenshot del test dell'assistenza domiciliare di base

Come automatizzare i test delle applicazioni mobili Android

Nel mondo ci sono oltre 2 miliardi di dispositivi Android attivi. Testare la propria applicazione Android su diversi tipi di dispositivi e sistemi operativi è quasi impossibile! Per questo motivo, le aziende indicano esplicitamente le versioni supportate. Ciò garantisce anche una migliore esperienza utente.

I framework di automazione Android contribuiranno sicuramente ad accelerare processi di test come Robotium, Selendroid, ecc. e, per l'ambito della nostra discussione, limitiamoci agli strumenti di automazione Espresso e Appium:

EspressoAppium
Struttura nativa che può risiedere all'interno della base di codice Android. Struttura di test isolata, sviluppata al di fuori della base di codice. 
Scritta in Java e KotlinScritta in Java, Python, ecc.
Attese esplicite, operazioni asincrone supportate dalla funzionalità delle risorse inattiveAttese implicite che prevedono l'uso di sleep(), rendendo i test instabili. 
Simulazione delle risposte del backend utilizzando librerie open source come Mockito e il builder di RetrofitSupporta l'uso di server simulati.
Poiché si tratta di una struttura nativa, può essere utilizzata solo per testare applicazioni Android. Poiché i test risiedono al di fuori della base di codice e possono essere scritti in linguaggi come Java, Python, ecc., può essere utilizzata per testare applicazioni multipiattaforma sia su iOS sia su Android, purché gli ID degli elementi siano gli stessi su entrambe le piattaforme. 

Uno dei vantaggi dell'utilizzo di strutture per app native è la possibilità di usare server simulati per simulare le chiamate API al backend e testare così esclusivamente l'interfaccia utente. Ecco un esempio di frammento di codice su come ho fatto funzionare questa soluzione:

screenshot del codice del server simulato

A seconda di come è sviluppata l'architettura dei microservizi, è possibile recuperare la risposta dalla scheda di rete del browser oppure direttamente dagli sviluppatori e utilizzarla come segue nel test:

screenshot del test della home

Come si può vedere nell'esempio precedente, HomeTabPage viene chiamata all'interno del test, invece di dover verificare esplicitamente ogni elemento; nella struttura ho utilizzato il modello a oggetti di pagina come segue:

screenshot del test della pagina home

Strumenti per il test delle app mobili

Nel settore sono disponibili diversi strumenti di test e la scelta dipende da molteplici fattori: 

  • Competenze del team
  • Obiettivo dell'automazione
  • Pubblico dell'automazione: responsabili di prodotto/vendite/ingegneri/tester
  • Compatibilità della struttura di test con il codice sorgente nativo
  • Numero di app ibride

Tra i diversi strumenti utilizzati comunemente nel settore figurano:

  • Selendroid
  • Robotium
  • Appium
  • Testdroid
  • UiAutomator

e molti altri. 

Non hai voglia di occuparti dei test internamente? Puoi anche affidarti ai servizi di test per app mobili per farlo al posto tuo.

Test delle prestazioni delle applicazioni mobili

Durante il test delle applicazioni mobili, oltre a concentrarci sull'automazione per ampliare le attività di test, dovremmo dare priorità anche ai test delle prestazioni, poiché svolgono un ruolo fondamentale nel determinare se un utente continuerà a utilizzare la nostra applicazione.

Se la schermata impiega più di 2 secondi per caricarsi, le persone diventano impazienti: ciò si ricollega alla nostra ricerca sulla capacità di attenzione e, per fidelizzare gli utenti, dobbiamo investire nei test delle prestazioni. 

Durante il test delle prestazioni dell'app, dovremo identificare gli KPI e confrontarli con i relativi valori di riferimento: 

  • Tempo di risposta massimo
  • Tempo di risposta medio
  • Capacità di elaborazione media
  • Numero massimo di utenti attivi per ciascun sistema operativo e dispositivo

L'utilizzo di uno strumento per il test delle app mobili può semplificare i test delle prestazioni. Ad esempio, Apptim può monitorare le metriche delle prestazioni lato utente finale e fornisce report completi sulle prestazioni per tutti i principali parametri di prestazione.

Per monitorare le prestazioni dell'applicazione mobile, possiamo utilizzare il monitoraggio delle prestazioni di Firebase, che fornisce il controllo sui dati relativi alle prestazioni condividendo informazioni dettagliate sul funzionamento dell'app, con una suddivisione dei dati relativi alle tracce e alla rete in dimensioni quali versione dell'app, paese, dispositivo e tipo di rete. 

Esistono altri strumenti come Appium Studio, Sauce Labs, Testdroid, ecc. che offrono funzionalità simili di monitoraggio delle prestazioni. 

Speriamo che questo articolo ti abbia fornito una panoramica introduttiva sui test delle applicazioni mobili e sui fattori critici ad essi associati! 

Per scoprire altre migliori pratiche e suggerimenti per definire il tuo processo di sviluppo, iscriviti alla newsletter di The QA Lead.

Articolo correlato:

Scopri anche:

Elenco correlato di strumenti: