Android Tutorial sul test dell'APP con Framework di automazione
Perchรฉ Android Prove?
Android รจ il piรน grande sistema operativo al mondo. Allo stesso tempo, Android รจ frammentato. ci sono tonnellate di dispositivi e Android versioni con cui la tua app deve essere compatibile.
Non importa quanto tempo investi nella progettazione e nell'implementazione, gli errori sono inevitabili e appariranno dei bug.
Android Strategia di test
Una corretta strategia di test Android dovrebbe includere quanto segue
- Test unitario
- Prova di integrazione
- Operaprova nazionale
- test del sistema
Test unitari
I test unitari includono set di uno o piรน programmi progettati per verificare un'unitร atomica del codice sorgente, come un metodo o una classe.
Android la piattaforma รจ preintegrata giunzione quadro 3.0. ร un framework open source per l'automazione Test unitari. Android Testing Framework รจ un potente strumento per gli sviluppatori per scrivere l'efficace programma di unit test.
.png)
Un'aggiunta allo unit test sono i test dell'interfaccia utente (UI). Questi test riguardano i componenti dell'interfaccia utente dell'applicazione di destinazione. I test dell'interfaccia utente garantiscono che l'applicazione restituisca l'output dell'interfaccia utente corretto in risposta alla sequenza di azioni dell'utente sul dispositivo.

Il modo comune per eseguire i test dell'interfaccia utente sul dispositivo รจ Android Strumentazione. Ma questo ha problemi di prestazioni. Uno dei migliori strumenti per condurre test dell'interfaccia utente Android is Robotio.
Test di integrazione
In Test d'integrazione, tutti i moduli testati sull'unitร , sono combinati e verificati. In Android, i test di integrazione spesso implicano la verifica dell'integrazione conAndroid componenti come test del servizio, test delle attivitร , test del fornitore di contenuti, ecc

Esistono molti framework di test utilizzati per condurre test di integrazione Android come Troyd, Robolectric, Robotium.
Operaprove nazionali
- Operasono anche chiamati Test Funzionali o Test di Accettazione. Sono test di alto livello volti a verificare la completezza e la correttezza dell'applicazione.
- In Android, fitness รจ un framework open source che semplifica la conduzione di test operativi per l'applicazione target.
Prove di sistema
In Test di sistema il sistema viene testato nel suo complesso e viene verificata l'interazione tra i componenti, software e hardware.
In Android, Il test del sistema normalmente include
- Test della GUI
- Test di usabilitร
- Test delle prestazioni
- Prove di stress
Nell'elenco sopra, Test di Performance viene data maggiore attenzione. Puoi usare strumenti come Visualizzazione della traccia su cui condurre test delle prestazioni Android .Questo strumento puรฒ aiutarti a eseguire il debug della tua applicazione e a profilarne le prestazioni.
TEST ANDROID automatizzati
Poichรฉ Android รจ frammentato, รจ necessario testare su una moltitudine di dispositivi. Ma questo ti costerร anche denaro. Automatizzato Android I test possono aiutare a ridurre i costi
Vantaggi dei test Android automatizzati
- Ridurre il tempo per l'esecuzione dei casi di test
- Aumenta la produttivitร del tuo processo di sviluppo
- Rilevamento tempestivo dei bug, risparmio sui costi di manutenzione del software
- Individuato e corretto rapidamente i bug sull'implementazione
- Garantire la qualitร del software
Studieremo i seguenti 2 framework
- Android Quadro di prova
- Struttura di test Robolectric
Android struttura di test
Uno dei framework di test standard per Android applicazione รจ Android struttura di test. ร un framework di test potente e facile da usare, ben integrato con Android Strumenti dell'SDK.
.png)
- Pacchetto dell'applicazione รจ l'applicazione di destinazione che deve essere testata
- StrumentazioneTestRunner Europe รจ Test Case runner che esegue il test case sull'applicazione di destinazione. Include:
2) Strumenti di prova: Uno strumento SDK per la creazione di test. Sono integrati in Eclipse IDE o esegui come riga di comando.
2b) ScimmiaRunner: Uno strumento che fornisce API per scrivere programmi che controllano un file Android dispositivo o emulatore al di fuori di Android codice.
- Pacchetto di prova sono organizzati in progetti di prova. Questo pacchetto segue la convenzione di denominazione. Se l'applicazione in prova ha il nome del pacchetto "com.mydomain.myapp", il pacchetto test dovrebbe essere "com.mydomain.myapp.test". Il pacchetto test include 2 oggetti come di seguito:
3a) Classi dei casi di test: includono metodi di test da eseguire sull'applicazione di destinazione.
3b) Oggetti simulati: include dati simulati che verranno utilizzati come input di esempio per i casi di test.
Android Classi dei casi di test

- Caso di prova inclusi JUnit metodi per eseguire JUnit test
- Suite di prova viene utilizzato per eseguire una serie di casi di test
- StrumentazioneTestSuite รจ una TestSuite che inserisce la strumentazione in InstrumentationTestCase prima di eseguirla.
- StrumentazioneTestRunner รจ il runner del test case che esegue il test case sull'applicazione di destinazione.
- AndroidCaso di prova si estende JUnit Caso di prova. Contiene metodi per accedere a risorse come Activity Context.
- ApplicationTestCase verifica le classi dell'Applicazione in un ambiente controllato.
- StrumentazioneTestCase verifica una particolare funzionalitร o comportamento dell'applicazione di destinazione, ad esempio, verifica l'output dell'interfaccia utente dell'applicazione.
- ActivityTestCase รจ la classe base che supporta il test delle attivitร dell'applicazione.
- ProviderTestCase รจ la classe per testare un singolo ContentProvider.
- ServiceTestCase viene utilizzato per testare le classi di servizio nell'ambiente di test. Supporta inoltre il ciclo di vita del servizio.
- SingeLauchActivityTestCase viene utilizzato per testare una singola attivitร con un InstrumentationTestCase.
- ActivityUnitTestCase viene utilizzato per testare una singola attivitร isolata.
- Attivitร StrumentazioneTestCase2 estende l' JUnit Classe TestCase. Ti collega all'applicazione target con la strumentazione. Con questa classe รจ possibile accedere al componente GUI dell'applicazione e inviare un evento dell'interfaccia utente (pressione di un tasto o evento tocco) all'interfaccia utente.
Di seguito รจ riportato un esempio di ActivityInstrumentationTestCase. Verifica il funzionamento dell'interfaccia utente dell'applicazione Calcolatrice, controlla la correttezza degli output dell'interfaccia utente.

Quadro di test Robolectric
Testare utilizzando Android Testare il framework con un dispositivo o un emulatore รจ difficile. La creazione e l'esecuzione dei test sono lente e richiedono molto impegno di sviluppo. Per risolvere questo problema, c'รจ un'altra scelta: Roboelettrico quadro di prova.
Il framework Robolectric ti consente di correre Android test direttamente su JVM senza la necessitร di un dispositivo o di un emulatore.
.png)
Classi di casi di test Robolectric
.png)
- Come mostrato sopra, Robolectric puรฒ eseguire le seguenti azioni:
- Registrati e crea una classe Shadow
- Intercettare il caricamento di Android classe
- Utilizza Javaassist per sovrascrivere i corpi del metodo di Android classe
- Associa l'oggetto Ombra a Android classe
- Ciรฒ consente al codice sotto test di essere eseguito senza Android ambiente.
Altri test quadro
Oltre ai framework di test menzionati sopra, esistono molti altri framework di test come:
- Android Rapporto Junit, un test runner di strumentazione personalizzata per Android che genera report XML per l'integrazione con altri strumenti.
- Espresso
- Appium
Miti di Android Collaudo
Molte aziende sviluppano Android Collaudo strategie basate su idee sbagliate comuni. Questa sezione esamina alcuni miti e realtร popolari di Android test.
Mito n. 1: tutti Android i dispositivi sono gli stessiโฆ basta il test sugli emulatori
Cominciamo con un semplice esempio. Un'applicazione funziona perfettamente sugli emulatori ma su alcuni dispositivi reali si blocca durante l'esecuzione

Gli emulatori lo sono non sufficiente per i tuoi test mobili. Devi testare la tua app su dispositivi reali.
Mito n.2: รจ sufficiente eseguire test su alcuni dispositivi comuni
- Su dispositivi diversi, la tua applicazione ha un aspetto diverso perchรฉ dispositivi diversi hanno hardware, dimensioni dello schermo, memoria ecc. diversi. Devi testare la tua applicazione su dispositivi, versioni del sistema operativo, reti di operatori e posizioni diversi.
Mito n. 3: i test esplorativi appena prima del lancio sono sufficienti
- Generalmente in tutti i test, progettiamo i casi di test e poi li eseguiamo. Ma nei test esplorativi, la progettazione e l'esecuzione dei test verranno eseguite tutte insieme.
- Nei test esplorativi non esiste un piano nรฉ una preparazione, quindi il tester eseguirร i test che desidera eseguire. Alcune funzioni verranno testate ripetutamente, mentre altre non verranno testate completamente.
Mito n. 4: Se ci sono dei bug nell'applicazione, gli utenti capiranno
- Se l'applicazione non funziona e presenta bug, gli utenti disinstallano la tua app
- I problemi di qualitร sono il primo motivo di una recensione negativa su Google Play. Ne risente la tua reputazione e perdi la fiducia dei clienti.
Pertanto รจ essenziale disporre di un'adeguata strategia di test Android
migliori pratiche in Android Collaudo
- Gli sviluppatori di applicazioni dovrebbero creare i casi di test nello stesso momento in cui scrivono il codice
- Tutti i casi di test dovrebbero essere archiviati nel controllo di versione insieme al codice sorgente
- Utilizza l'integrazione continua ed esegui test ogni volta che il codice viene modificato
- Evitare l'uso di emulatori e dispositivi rooted


.png)
.png)