Tutorial sul test dell'app iOS: manuale e automazione
Cos'è il test delle app iOS?
Test dell'app iOS è un processo di test in cui un'applicazione iOS viene testata su dispositivi Apple reali per verificare se funziona come previsto o meno per azioni specifiche dell'utente come tempo di installazione, interfaccia utente, esperienza utente, aspetto, comportamento, funzionalità, tempo di caricamento, prestazioni, App Elenco dello Store, supporto della versione del sistema operativo, ecc.
Perché testare le app iOS?
Test dell'app iOS è richiesto perché iOS è la piattaforma Apple per le applicazioni mobili rilasciata il 29 giugno 2007. A differenza Android, Apple non concede in licenza iOS per l'installazione su hardware non Apple. iOS e le applicazioni iOS possono essere installate solo su dispositivi Apple, pertanto la tua app iOS deve essere compatibile con le versioni iOS e i dispositivi iOS.
Questa è la domanda comune quando lo sviluppatore crea un'applicazione iOS.
Non importa quanto tempo investi nella progettazione e nell'implementazione, gli errori sono inevitabili e appariranno dei bug. Ci sono alcuni bug comuni nell'applicazione iOS. Come mostrato nella figura seguente.
Arresto anomalo dell'applicazione
Uno dei problemi più frustranti, quando si utilizzano i dispositivi Apple, è che un'applicazione potrebbe bloccarsi frequentemente durante l'esecuzione. Molte volte l'app si arresta in modo anomalo perché sono presenti bug o perdite di memoria nelle app.
Incompatibilità delle applicazioni
La tua applicazione iOS potrebbe funzionare perfettamente sulla versione iOS corrente, ma se iOS viene aggiornato, potrebbe non funzionare a causa di problemi di incompatibilità.
Vulnerabilità della sicurezza
Una vulnerabilità di sicurezza in iOS consente all'hacker di attaccare i tuoi dispositivi iOS e rubare le tue informazioni private. Fino ad ora, sono state scoperte gravi vulnerabilità nella sicurezza dell’iPhone in diverse versioni di iOS.
Perdite di memoria
Le perdite di memoria sono blocchi di memoria allocata che il programma non utilizza più. Le perdite di memoria causano l'arresto anomalo dell'applicazione iOS.
Sono bug e dovrebbero essere sempre corretti.
iOS testa MindMap
Come mostrato nella figura sopra, iOS Testing MindMap mostra tutti gli elementi che il tester dovrebbe considerare quando conduce test su iOS.
Elenco di controllo per il test delle applicazioni iOS
Questa lista di controllo è progettata specificamente per testare le caratteristiche delle applicazioni mobili iOS. Ovviamente, testa solo le caratteristiche generiche dell'applicazione e non la sua funzionalità.
- Controlla il tempo impiegato dall'installazione dell'applicazione sul dispositivo. Assicurarsi che l'applicazione venga installata entro un tempo accettabile.
- Una volta installata l'applicazione, controlla se l'applicazione ha l'icona e il nome dell'app. Inoltre, assicurati che sia l'icona che il nome siano autoesplicativi e riflettano l'intento principale dell'applicazione.
- Avviare l'applicazione e verificare se viene visualizzata la schermata iniziale.
- Controlla il timeout della schermata iniziale e il tempo impiegato per caricare la schermata iniziale. La schermata Home dell'applicazione dovrebbe caricarsi entro un tempo accettabile. Se il caricamento della schermata Home richiede solo più tempo, ci sono più possibilità che l'utente chiuda o addirittura disinstalli l'applicazione stessa. Inoltre, controlla come vengono caricati i contenuti nella schermata Home.
- La funzione principale dell'applicazione dovrebbe essere immediatamente evidente. Dovrebbe parlare da solo.
- Controlla se l'app supporta sia l'orientamento orizzontale che quello verticale. In tal caso, controlla l'app in entrambi gli orientamenti. L'interfaccia utente dell'applicazione dovrebbe essere impostata di conseguenza.
- Senza una connessione Internet, avvia l'applicazione. Assicurati che l'app si comporti come progettato/desiderato. È possibile che l'applicazione si blocchi all'avvio o visualizzi semplicemente una schermata vuota.
- Se l'applicazione utilizza servizi di localizzazione, controlla se viene visualizzato o meno l'avviso di autorizzazione alla posizione. Questo avviso dovrebbe essere richiesto all'utente una sola volta.
- Se l'applicazione invia notifiche push, controlla se viene visualizzato o meno l'avviso di autorizzazione della notifica push. Anche questo avviso dovrebbe essere richiesto all'utente una sola volta.
- Avviare l'applicazione, chiuderla e riavviarla. Controlla se l'app si comporta come progettato/desiderato
- Chiudi l'applicazione toccando il pulsante Home del dispositivo e apri nuovamente l'app. Controlla se l'app funziona come progettato/desiderato.
- Una volta installata, controlla se l'app è elencata nell'app Impostazioni dell'iPhone.
- Dopo aver reso attiva l'applicazione, controlla se l'applicazione può essere trovata nell'"App Store". Sarà supportata la versione del sistema operativo per l'applicazione. Quindi, assicurati che l'applicazione possa essere trovata nell'"App Store" del dispositivo con la versione del sistema operativo supportata. Inoltre, l'applicazione non deve essere elencata nell'"App Store" del dispositivo con versione del sistema operativo non supportata.
- Controlla se l'applicazione entra in modalità sospensione quando è in esecuzione in background per evitare il consumo della batteria.
- Se le prestazioni dell'applicazione sono lente o durante il caricamento dei contenuti, controlla se è presente un'icona di stato di avanzamento (“Caricamento in corso…”), preferibilmente con un messaggio specifico.
- Cerca l'applicazione con il suo nome nella barra di ricerca del dispositivo. Controlla se l'app è elencata
- Controlla se l'aspetto dei pulsanti che eseguono azioni standard non viene modificato nell'app (ad esempio: aggiorna, organizza, cestina, Rispondi, indietro, ecc.)
- Controllare se i pulsanti standard non vengono utilizzati per altre funzioni rispetto a quelle per cui vengono normalmente utilizzati
Strategia di test iOS
La figura seguente introduce alcuni tipi comuni di strategie di test iOS.
Test automatizzato
I test automatizzati rappresentano il maggior vantaggio dei test iOS. Ti consente di rilevare rapidamente bug e problemi di prestazioni. I vantaggi dei test automatizzati come mostrato di seguito:
- I test automatizzati possono essere eseguiti su più dispositivi, risparmiando tempo
- I test automatizzati possono prendere di mira gli SDK. Puoi eseguire test su diverse versioni dell'SDK
- I test automatizzati aumentano la produttività dei test e consentono di risparmiare sui costi di sviluppo del software
- Esistono molti framework di test open source che supportano i test automatizzati su iOS
Test unitari con OCUnit
Quando è stato rilasciato l'SDK iOS originale, mancava Test unitari capacità. Quindi Apple ha riportato in auge il file OCUnit soluzione di test unitario nell'SDK iOS versione 2.2.
OCUnit è un framework di test per C-Objective nel sistema operativo Mac. I maggiori vantaggi di un framework OCUnit sono la stretta integrazione in XCode ambiente di sviluppo come mostrato di seguito.
Alcuni dei vantaggi di OCUnit sono mostrati nella figura seguente.
Test dell'interfaccia utente con UIAutomation
Automazione dell'interfaccia utente è un JavaCopione libreria fornita da Apple Inc, che può essere utilizzata per eseguire un test automatizzato su dispositivi reali e su iOS Simulator. Questo framework viene aggiunto a iOS SDK4.0. Utilizzando l'automazione dell'interfaccia utente, puoi automatizzare il test dell'applicazione non solo sul simulatore ma anche sul dispositivo reale.
UIAutomation ti offre questi vantaggi:
- Ridurre lo sforzo Test manuale
- Usa meno la tua memoria per eseguire tutti i tuoi test
- Semplifica la procedura di test dell'interfaccia utente (basta premere uno o tre pulsanti ed eseguire tutte le suite di test)
Lo strumento UIAutomation funziona da script scritti in JavaScript. Simula gli eventi utente sull'applicazione iOS di destinazione.
Contro e vantaggi dell'UIAutomation
Vantaggi | Svantaggi | |
---|---|---|
1. | Buon supporto per il gesto e la rotazione | Non è open source, meno supporto da parte dello sviluppatore |
2. | Può eseguire test UIAutomation sul dispositivo, non sull'unico simulatore. | Non è possibile integrarsi molto bene con altri strumenti |
3. | Sviluppato da JavaScript è un linguaggio di programmazione molto diffuso. |
La figura sopra rappresenta alcune classi comuni nel framework UIAutomation.
- Il Elemento UIA class è la superclasse per tutti gli elementi dell'interfaccia utente nel contesto di Automation
- Il UIATarget La classe rappresenta gli elementi dell'interfaccia utente di alto livello del sistema sotto test
- Il UIALogger fornisce informazioni su test ed errori sulla funzionalità di recupero
- Il UIAActivityViewclass consente l'accesso e il controllo delle visualizzazioni delle attività all'interno della tua app.
- Il UIAActionSheet class consente l'accesso e il controllo dei fogli di azione all'interno della tua app.
- Utente Azione evento
- Classe UISlider
- Classe UIAButton
- Classe UIAKey
- Classe UIAKeyboard
Altri framework di test automatizzati
- Frank: Automatizzato Test di accettazione quadro per iPhone e iPad
- KIF : è un iOS test di integrazione struttura. Consente una facile automazione delle app iOS sfruttando gli attributi di accessibilità che il sistema operativo rende disponibili per le persone con disabilità visive.
Test manuale
Test esplorativi
Si tratta di un test senza un piano di test formale. Il test esplorativo è un metodo di test a basso costo, ma può non individuare potenziali bug nella tua applicazione iOS.
Test esplorativi Contro e Pro
Vantaggi | Svantaggi | |
---|---|---|
1. | Less è necessaria la preparazione, individuare tempestivamente i bug gravi. | Richiede un'elevata abilità del tester |
2. | Non serve Piano di test velocizzare il rilevamento dei bug. | La copertura del test è bassa. Non garantisce che tutti i tuoi requisiti siano testati. |
3. | La maggior parte dei bug vengono scoperti precocemente tramite una sorta di test esplorativo | Mancanza di documentazione sui test |
Test degli utenti
Il test utente è un tipo di test manuale su iOS. Lo scopo di questi test è creare app migliori, non solo senza bug app. La figura seguente mostra quattro tipi di test utente
Test di concetto
Valutare la risposta dell'utente a un'idea applicativa prima del rilascio sul mercato. Le procedure di testing concettuale su iOS sono descritte di seguito
Test di usabilità
Test di usabilità è un test su quanto sia facile usare la tua applicazione iOS. Nei test iOS, il test di usabilità potrebbe essere registrato da ricordare o condividere con gli altri.
Esistono alcuni strumenti che supportano i test di usabilità su iOS.
TryMyUI app di test per utenti mobili per Android e iOS.
Delight.io, questo strumento può acquisire l'interazione reale dell'utente sulle tue app iOS.
Beta test
Il beta testing è il test d'integrazione con dati reali per ottenere un feedback finale dagli utenti. Per distribuire le tue app per il beta testing, devi seguire i passaggi seguenti.
-Pre-condizionata: se stai testando la versione beta di un candidato finale per un rilascio, assicurati di convalidare l'app prima di distribuirla ai tester.
-Trova tester tramite il servizio: raccogli gli ID dispositivo dai tester e li aggiungi a Centro membri
-Creare una distribuzione ad hoc: la distribuzione ad hoc consente al tester di eseguire la tua app sul proprio dispositivo senza necessità Xcode. Questo passaggio comprende 2 passaggi secondari
- Creare certificati di distribuzione
- Crea profili di provisioning ad hoc
-Richiedi feedback al tester: Il tester effettua test e ti invia segnalazioni di bug. Dopo il rilascio dell'app, puoi ottenere i report da iTunes connessione.
A / B testing
A / B testing è uno dei modi più potenti per valutare l'efficacia della tua app iOS. Utilizza esperimenti randomizzati con due dispositivi, A e B.
Il test A/B comprende tre passaggi principali
- Configura un test: preparate 2 versioni della tua app iOS (A e B) e metrica di prova
- Test: Testare contemporaneamente sui dispositivi 2 delle versioni di app iOS indicate sopra.
- Analizzi i dati: Misura e seleziona la versione migliore da rilasciare
I seguenti strumenti supportano i test A/B su iOS.
- Sorgere: test A/B sia per iOS che per Android. Può essere integrato nella tua app iOS e rendere il processo di test più rapido.
migliori pratiche per i test A/B
- Definire il bersaglio della tua prova. Qualsiasi test è inutile senza un obiettivo.
- Orologio gli utenti finali utilizzano la tua app per la prima volta
- Correre prima testare solo per aggiornamento. Ti fa risparmiare tempo quando conduci i test
- Monitorare attentamente il tuo test. Puoi apprendere esperienze dal tuo test monitorandolo.
test iOS migliori pratiche
Ecco alcuni suggerimenti che dovresti sapere quando organizzi il test della tua applicazione iOS
- Testare l'applicazione su a dispositivo reale per diventare reali riguardo alle prestazioni
- Migliorare i tuoi metodi di test, perché i metodi di test tradizionali non sono più sufficienti a coprire tutti i test sui test iOS
- utilizzando registro della console per testare l'applicazione iOS. Questa è una funzionalità iOS che include informazioni da ogni applicazione sul dispositivo.
- funzionalità di bug dell'applicazione utilizzando schermo integrato breve comando. Aiuta lo sviluppatore a capire come si verificano i bug.
- Segnalazione degli arresti anomali è uno strumento utile per testare la tua applicazione. Possono rilevare arresti anomali e registrare dettagli in modo da poter indagare facilmente sui bug.
MITI sui test iOS
Questa sezione esamina alcuni miti e realtà popolari sui test iOS
Testare l'applicazione su iOS e Android sono la stessa cosa.
iOS e Android sono due piattaforme sviluppate da Apple Inc e Google. Sono totalmente diversi. Ecc. Ambienti di test, framework di test, linguaggi di programmazione.
È sufficiente l'applicazione di prova su iOS Simulator.
Il simulatore iOS non è abbastanza potente per testare un'app. Poiché iOS Simulator presenta alcune limitazioni:
- Limitazioni hardware (fotocamera, ingresso microfono, sensore)
- Potrebbe sembrare che l'interfaccia utente della tua app funzioni più velocemente e in modo più fluido rispetto a un dispositivo
- Limitazioni dell'API
- Alcuni framework non sono supportati (Media Player, Store Kit, Message UI...)
Tutti scaricheranno le mie app sull'app store perché ha molte funzionalità
Più funzionalità ha la tua applicazione, più bug potresti ottenere. Nessun utente scaricherà la tua applicazione se presenta ancora molti difetti.