android app testing tutorial
Raccolta di conoscenze di base prima di testare le app Android:
Come suggerisce il titolo stesso, in questo tutorial discuteremo di più sul processo di test di Android.
Ma, prima di entrare nei vari dettagli del processo di test di Android, vorrei porre un paio di domande.
possiedi un cellulare?
Ora, quanto è stupida questa domanda! Ovviamente lo facciamo tutti. Tutti hanno un telefono cellulare. I telefoni cellulari sono diventati una necessità fondamentale dell'esistenza umana al giorno d'oggi.
Puoi dirmi il sistema operativo presente sul tuo telefono?
Se hai acquistato il tuo telefono tra il 2014 e il 2016, le probabilità che il tuo telefono funzioni su Android sono dell'80-85% circa.
Cosa imparerai:
- Crescita di Android
- Introduzione dell'applicazione Android
- Elenco 'Da fare' prima dell'inizio del processo di test
- Tipi di test per app mobili
- Best practice nel test delle app Android
- Framework di test Android
- Conclusione
- Lettura consigliata
Crescita di Android
Le statistiche seguenti descrivono di più sulla crescita di Android in un modo facilmente comprensibile.
- Nel 2009, Android era un principiante e costituiva solo il 3,9% del mercato totale.
- Il contributo principale è stato quindi il sistema operativo Symbian con un numero enorme del 47% (i giorni d'oro di Nokia).
- Questa tendenza ha iniziato a cambiare nel corso degli anni e Android ha ora raggiunto l'85,2% nel 2016.
- I numeri sopra riportati sono solo per i telefoni cellulari. Anche il sistema operativo Android sta avendo un grande impatto nel settore dei tablet. Dal 4,4% di quota di mercato nel 2011 al 35,7% nel 2015 parla dell'interesse che le persone stanno sviluppando nei confronti dei tablet basati su Android.
- Anche il Google Play Store ha visto un rapido aumento del numero di download. Dal 2010 al 2016 i numeri sono passati da 1 miliardo di download al mese a 65 miliardi di download al mese.
- I download delle app sono anche fortemente influenzati dai prezzi bassi (Media: 0,06 $ / app) delle app Android rispetto alle app iOS.
Perché ti ho appena portato attraverso tutti quei numeri?
Era solo per farti capire quanto sia cresciuto Android, quanto sia diventato complicato lo sviluppo dell'app e quanto mercato ha conquistato questo sistema operativo negli ultimi dieci anni.
Ogni sito Web, app per Windows e app per Mac ora ha un fratello Android. Tutti scelgono di sviluppare un'app per Android non appena pianificano di sviluppare un sito Web / un'app per Windows. Ora è diventato necessario, poiché negli ultimi anni i clienti hanno anche iniziato a preferire le app mobili alle app per computer o ai siti Web.
Alcune delle app che vengono utilizzate molto frequentemente nelle nostre attività quotidiane sono Flipkart, Amazon, Zomato, DeliveryHero, Citi Bank, TrueCaller, Facebook, Gmail, Whatsapp ecc.
La ragione dell'impennata nel mercato Android è che:
- È un sistema aperto, quindi è facile da personalizzare, facile da imparare e anche lo sviluppo di app è più semplice.
- Pubblicare un'app su Google Play Store è abbastanza semplice rispetto agli altri Play Store.
- Esistono diversi produttori sul mercato di telefoni Android come Sony, HTC, Samsung, Motorola ecc.
- Ci sono un numero enorme di funzionalità su Android come DualSIM, microSD, batteria rimovibile ecc., Il che è un ulteriore vantaggio.
- Il prezzo dei telefoni Android non è troppo alto ed è conveniente, ecc.
Insieme ai requisiti di sviluppo delle app Android, c'è stato anche un aumento dei requisiti per i tester che sono esperti nei test Android.
Come tester, prima di iniziare a testare qualsiasi applicazione costruita su Android, devi fare molti compiti a casa. La prima cosa da fare è studiare il sistema operativo e la sua storia. Se non conosci il sistema operativo, non puoi testare l'app con le varie versioni. Le funzionalità di base della versione del sistema operativo, l'interfaccia utente, il GPS, il supporto del tipo di rete, la durata della batteria ecc. Sono alcuni degli aspetti importanti che influiscono su un'app.
Con Android, non è solo il sistema operativo, ma anche la pletora di dispositivi che necessitano di uno studio.
Sul mercato è disponibile un vasto numero di dispositivi, quindi prima di finalizzare e congelare il banco di prova, è necessario scoprire la condivisione del dispositivo del pubblico di destinazione. I vari dispositivi che offrono diverse funzionalità come DualSIM, doppia fotocamera, risoluzione dello schermo, temi ecc., Influenzano un'app e devono essere testati.
Quindi è molto importante per un QA raccogliere una conoscenza completa sull'ecosistema Android completo.
Introduzione dell'applicazione Android
Esistono vari metodi di test che vengono seguiti dalla corretta certificazione di un'app Android.
Una tipica architettura di app Android sarebbe simile al diagramma mostrato di seguito:
domande e risposte dell'intervista al supporto tecnico per bpo
Sulla base della figura sopra, ci sono 2 possibilità per un'app:
1) App mobile per l'applicazione web: È possibile che il cliente disponga di un'app Web e desideri creare un'app mobile per la stessa. Amazon, Jabong, Myntra ecc., Hanno fatto la stessa cosa e nel momento in cui le app mobili hanno iniziato a creare un boom nel mercato, queste società commerciali hanno capito che presto le persone passeranno dalle app web alle app mobili.
2) App mobile come entità aziendale separata: Ho testato un'app di logistica simile, al fine di aumentare il business ha creato un'app separata per i suoi autisti per facilitare una consegna regolare e ha rimosso i documenti.
Gli autisti avevano l'app installata sui loro telefoni per spostare la spedizione in diverse fasi di consegna e il loro stato corrispondente, e gli aggiornamenti sulla consegna si riflettevano nella loro app web esistente.
Altri simili Esempi dove l'app mobile è un'entità separata sono WhatsApp, app di monitoraggio della salute come S Health ecc.
Elenco 'Da fare' prima dell'inizio del processo di test
A differenza di un normale ciclo di test, per la primissima versione di un'app mobile, ci sono alcuni elementi che richiedono una ricerca e una pianificazione extra per una consegna corretta dell'app.
Di seguito sono riportate alcune delle attività importanti da svolgere per un QA prima dell'inizio del test effettivo:
# 1) Ricerca su OS e dispositivi:
Oltre a comprendere i requisiti dell'app, è anche necessario comprendere l'impatto delle varie versioni del sistema operativo e dei modelli di dispositivo. È necessario creare casi di test o scenari con il sistema operativo e i modelli di dispositivo.
#Due) Banco di prova:
A differenza delle app desktop, web e iOS, la creazione del banco di prova per le app Android è molto complicata a causa del sistema Android aperto. La decisione dovrebbe essere presa dopo aver discusso con il BA, gli sviluppatori e i proprietari del prodotto per trovare il pubblico di destinazione.
# 3) Piano di test:
Poiché è la prima versione, dovrebbe essere in atto un piano approvato con banco di prova approvato, tipi di test, ecc. Se è necessario un tempo separato per la ricerca di funzionalità o regole aziendali o se il test sarà complicato, ecc., Tutto dovrebbe essere coperto nel piano.
# 4) Strumenti di automazione:
Gli strumenti di automazione richiesti per le app mobili sono molto diversi da quelli delle app desktop o web. Quindi potrebbe essere necessario dedicare più tempo e sforzi per apprendere lo strumento. Il tempo e lo sforzo necessari per lo stesso devono essere approvati dal proprietario del prodotto o dal cliente.
# 5) Tecniche o metodi di prova:
A differenza dei test convenzionali che normalmente facciamo, ci sono pochi test molto specifici per le app mobili. Vale a dire test sul campo, test GPS, test di acquisizione di immagini, ecc. Questi devono essere documentati nei casi di test insieme a come questi tipi verranno testati.
Tipi di test per app mobili
Per certificare un'applicazione Android vengono eseguiti i seguenti tipi di test:
1) Test funzionale:
Il test viene normalmente ottenuto tramite flussi di test avviati dall'interfaccia utente. Non viene testato solo il flusso di un caso d'uso, ma vengono testate anche le varie regole aziendali. Il test viene eseguito certificando i requisiti. ovvero se l'applicazione funziona in base ai requisiti.
Prendiamo il file Esempio dell'app di Zomato.
Quando avvii l'app, in base alla posizione, viene visualizzato l'elenco dei ristoranti. Ora come QA, devi testare l'elenco dei ristoranti.
Questo è un test di funzionalità e qui testerai funzionalità come:
- Verifica se le carte del ristorante vengono visualizzate in relazione alla posizione.
- Verifica se i ristoranti visualizzati si trovano nell'intervallo specificato (km) della località.
- Verifica se il conteggio delle revisioni per ciascuna scheda è sincronizzato con le recensioni fornite.
- Controlla se l'aggiunta di un nuovo ristorante per una posizione si riflette nell'elenco.
- Verifica se i ristoranti sono elencati in base alla regola di filtraggio di Zomato ecc.
dov'è il file apk in Android
2) Test dell'interfaccia utente Android:
Si tratta di un test dell'applicazione incentrato sull'utente. In questa fase di test, vengono testati elementi come la visibilità del testo in varie schermate dell'app, i messaggi interattivi, l'allineamento dei dati, l'aspetto dell'app per schermi diversi, le dimensioni dei campi, ecc.
Per lo stesso esempio di Zomato sopra, i test dell'interfaccia utente sarebbero:
- Verifica se le carte vengono visualizzate correttamente allineate con le dimensioni dello schermo del cellulare.
- Verifica se l'immagine del ristorante viene mostrata come previsto.
- Verifica che i dettagli della carta, la valutazione del ristorante, il tipo di cucina, l'indirizzo, ecc. Siano visualizzati correttamente allineati.
- Verifica se lo scorrimento dell'elenco è privo di errori e le carte non vengono mostrate disallineate quando viene fatto scorrere un lungo elenco di carte ecc.
3) Test di compatibilità:
Questo test viene eseguito principalmente sotto forma di due matrici di app OS Vs e app Device model Vs. Di solito, un elenco dei sistemi operativi supportati (e talvolta dei dispositivi) viene fornito dal proprietario del prodotto o dal cliente.
La necessità di questo test è:
- Quando si prende in considerazione un sistema operativo come Android, vengono trovate 7 versioni di base trascurando il numero di versioni di patch / EP.
- Riuscite a indovinare i tipi di dispositivi Android attualmente funzionanti in tutto il mondo? 1000? 2000? Sbagliato! La risposta corretta è 24000. Esistono 24000 tipi di dispositivi Android unici presenti e attivi nel mondo.
- Con varianti come queste, i test di compatibilità svolgono un ruolo fondamentale nella certificazione di un'app Android.
- Non abbiamo solo bisogno di convalidare il sistema operativo e il tipo di dispositivo, ma anche di convalidare alcune altre funzionalità che rientrano nei test di compatibilità. Le caratteristiche includono:
- Dimensione dello schermo
- Risoluzione dello schermo
- Connettività di rete
4) Test dell'interfaccia:
In altre parole, è anche definito test di integrazione. Questo test viene eseguito dopo che tutti i moduli dell'app sono stati completamente sviluppati, testati individualmente e tutti i bug sono stati risolti verificati.
Il test dell'interfaccia include test come un test end-to-end completo dell'app, l'interazione con altre app come Mappe, app social, ecc., Utilizzo del microfono per inserire testo, utilizzo della fotocamera per scansionare un codice a barre o per scattare una foto, ecc.
Sempre considerando Zomato, i test di integrazione sarebbero come:
- Verifica se l'utente è in grado di prenotare un tavolo per un ristorante.
- Verificare se l'utente è in grado di visualizzare il menu e ordinare cibo online.
- Verifica se l'utente è in grado di usufruire di un coupon PayTM durante l'ordine di cibo.
- Verifica se l'utente è in grado di visualizzare la posizione del ristorante su Google Maps.
- Verificare se l'utente è in grado di aprire il dialer del telefono e chiamare il ristorante, ecc.
5) Test di rete:
Le caratteristiche principali del test di rete includono:
- L'app dovrebbe parlare con il servizio intermedio in modo da eseguire il processo.
- Durante questo test, la richiesta / risposta al / dal servizio viene testata per varie condizioni.
- Questo test viene eseguito principalmente per verificare il tempo di risposta in cui viene eseguita l'attività come l'aggiornamento dei dati dopo la sincronizzazione o il caricamento dei dati dopo l'accesso, ecc.
- Questo viene fatto sia per una forte connessione wifi che per la rete dati mobile.
- Questo è un test interno.
6) Test delle prestazioni:
Vengono controllate le prestazioni dell'applicazione in alcune condizioni particolari.
Tali condizioni includono:
- Memoria insufficiente nel dispositivo.
- La batteria è estremamente a un livello basso.
- Ricezione di rete scarsa / cattiva.
Le prestazioni vengono fondamentalmente testate da 2 estremità, estremità applicazione e estremità server applicazioni
7) Test di installazione:
Esistono due tipi di app su un dispositivo Android, ovvero le applicazioni preinstallate e le applicazioni che vengono installate successivamente dall'utente.
Per entrambi i casi precedenti, è necessario eseguire il test di installazione. Questo per garantire un'installazione fluida dell'applicazione senza finire in errori, installazione parziale, ecc.
I test di aggiornamento e disinstallazione vengono eseguiti come parte del test di installazione.
8) Test di sicurezza:
La privacy e la sicurezza sono i 2 requisiti principali di un'app. Tuttavia, nel settore bancario, sanitario, questo diventa il requisito primario.
Il test del flusso di dati per la crittografia e il meccanismo di decrittografia deve essere testato in questa fase. Anche l'accesso ai dati memorizzati viene testato in questa fase.
9) Test sul campo:
I test sul campo vengono eseguiti appositamente per la rete dati mobile e non internamente ma uscendo e utilizzando l'app come un normale utente. Questo test viene eseguito 'solo' dopo che l'intera app è stata sviluppata, testata e regredita (per bug e casi di test).
Fondamentalmente è fatto per verificare il comportamento dell'app quando il telefono ha una connessione 2G o 3G. Il test sul campo verifica se l'app si arresta in modo anomalo con una connessione di rete lenta o se impiega troppo tempo per caricare le informazioni.
Puoi leggere di più sui test sul campo nel nostro articolo 'Importanza e necessità dei test sul campo per le applicazioni mobili'
10) Interruzione del test:
Questo tipo di test è noto anche come verifica dello scenario offline. Le condizioni in cui la comunicazione si interrompe nel mezzo sono chiamate condizioni offline.
Alcune delle condizioni in cui è possibile testare le interruzioni di una rete sono le seguenti:
- Rimozione del cavo dati durante il processo di trasferimento dati.
- Interruzione della rete durante la fase di registrazione della transazione.
- Ripristino della rete dopo un'interruzione.
- Rimozione della batteria o accensione / spegnimento quando è in fase di transazione.
Best practice nel test delle app Android
Ci sono alcuni fattori da considerare durante la messa a punto di una strategia per il test delle app mobili.
Sono:
1) Selezione del dispositivo:
- Questo è uno dei passaggi più critici prima di avviare il processo di test delle applicazioni Android.
- Decidi quali dispositivi devono essere presi in considerazione per il processo di test.
- La selezione deve essere fatta in modo da massimizzare il numero di clienti target.
- Fattori come la versione del sistema operativo, le risoluzioni dello schermo e i fattori di forma (tablet o smartphone) svolgono un ruolo fondamentale nella fase di selezione.
- Se necessario, può essere preso in considerazione anche l'aiuto di emulatori.
- Tuttavia, gli emulatori non dovrebbero sostituire il processo di test del dispositivo fisico.
- Gli emulatori di dispositivi sono economici e risultano utili durante la fase di sviluppo iniziale.
- Ma, per testare gli scenari di vita reale, i dispositivi fisici sono il must. Sia gli emulatori che i dispositivi fisici devono essere utilizzati in modo bilanciato per un risultato ottimizzato.
2) Beta Test dell'applicazione:
- Il beta test è molto efficace nel testare con utenti del mondo reale, dispositivi reali, reti e applicazioni effettive installate in un'ampia area geografica.
- Ciò fornisce un'immagine chiara della densità di rete, delle variazioni di rete (Wi-Fi, 4G, 3G e 2G) e dell'impatto sull'applicazione.
- Il beta testing nel mondo reale è unico nel suo genere e non può essere replicato in un ambiente controllato.
3) Connettività:
- Normalmente, le applicazioni Android sono connesse a Internet per vari requisiti.
- La connettività su diversi dispositivi gioca un ruolo chiave nell'elaborazione della strategia.
- Per lo più la connettività è controllata da un software di simulazione che aiuta a regolare la velocità della rete, la latenza e la connettività limitata durante il test.
- Si dice che il test con connessioni di rete reali sia sempre consigliabile per risultati / dati in tempo reale.
4) Test manuale o automatizzato:
- Sebbene il test dell'automazione richieda molto tempo per la prima esecuzione, è utile quando il test deve essere ripetuto. Ciò riduce anche il tempo complessivo di test durante le diverse fasi di sviluppo.
- Android Automation dovrebbe essere bastonato con il test manuale quando la ripetizione del test di regressione è elevata nella fase di sviluppo dell'applicazione, il test di compatibilità deve essere eseguito per la stessa applicazione su diverse versioni del sistema operativo, punti di controllo della compatibilità con le versioni precedenti, ecc.
Framework di test Android
Sono disponibili una manciata di framework di test Android.
In questo tutorial, discuteremo 3 diversi tipi di framework più comunemente usati:
- Framework di test Robotium
- Framework di test robotico
- Appium test Framework
1) Robotium Test Framework:
- Questo framework viene utilizzato per scrivere casi di test black box sofisticati e robusti per applicazioni Android.
- Supporta client sia nativi che ibridi.
- Funzioni, test case di sistema e test case di accettazione utenti possono essere scritti utilizzando questo framework.
- Robotium supporta Android 1.6 e versioni successive e supporta anche dialoghi, menu, attività ecc.
- Questo framework gestisce automaticamente più attività Android.
- Una manciata di metodi sono forniti come parte di Robotium per interagire con diversi componenti grafici dell'applicazione Android. Alcuni di loro sono i seguenti:
- torna indietro();
- getButton ();
- isRadioButtonChecked ();
- searchText ('Utente');
- fare clic sul pulsante ('Logout');
2) Robo-Electric Test Framework:
- Questo framework aiuta a testare le applicazioni Android sulla JVM basata sul framework JUnit4.
- Utilizza l'API Android.
- Questo aiuta a scrivere casi di test e ad eseguirli sulla JVM.
- Sotto questo, tutte le classi vengono sostituite da qualcosa chiamato oggetti ombra.
- Ogni volta che viene implementato un metodo, Robo-electric invia internamente la chiamata all'oggetto ombra.
- In base all'implementazione, se un metodo viene implementato da un oggetto shadow, viene restituito un valore. Altrimenti, viene restituito NULL.
- A causa degli oggetti ombra e della JVM, l'esecuzione diventa più veloce.
3) Epoche del framework di test;
- Questo framework funziona per app web native, ibride e mobili per dispositivi Android.
- Appium è un'utilità gratuita.
- L'API singola funziona sia per Android che per la piattaforma iOS. Questo è uno dei framework che supporta i test multipiattaforma.
- Utilizza il driver Web Selenium per interagire con l'applicazione Android.
- Appium supporta la scrittura di script utilizzando molti linguaggi di programmazione come Java, C #, Python, PHP, Ruby ecc.
Conclusione
L'automazione dell'applicazione Android può essere bastonata con il manuale secondo le necessità. Tuttavia, se il test di Androind Automation viene aggiunto alla strategia, selezionare lo strumento corretto è un compito importante. Durante la selezione dello strumento di automazione, è necessario prendere in considerazione fattori come il supporto multipiattaforma, il flusso di lavoro del test, il prezzo dello strumento, il servizio / supporto, ecc.
Ci sono diverse sfide coinvolte nel test delle applicazioni Android. Ci sono diversi fattori di cui tenere conto prima che il processo di test di Android possa essere realmente implementato, ma una volta fatto questo diventa un'attività molto interessante.
Guarda il nostro prossimo tutorial per saperne di più Sfide e soluzioni dei test mobili.
Lettura consigliata
- 11 migliori strumenti di automazione per testare applicazioni Android (strumenti di test per app Android)
- Servizi di beta test per app mobili (strumenti per beta test iOS e Android)
- Crea test Appium per un'app Android
- Test funzionale vs test non funzionale
- Tutorial per test di app per dispositivi mobili (una guida completa con oltre 30 tutorial)
- Migliori strumenti di test del software 2021 (Strumenti di automazione del test QA)
- Alpha test e beta test (una guida completa)
- Tutorial approfonditi su Eclipse per principianti