Che cos'è il test delle app iOS?
iOS App Testing è 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 utente specifiche come tempo di installazione, interfaccia utente, esperienza utente, aspetto, comportamento, funzionalità, tempo di caricamento, prestazioni, elenco sull'App Store, supporto della versione del sistema operativo, ecc.
Perché testare le app iOS?
È richiesto il test delle app iOS perché iOS è la piattaforma Apple per le applicazioni mobili rilasciata il 29 giugno 2007. A differenza di Android, Apple non concede in licenza iOS per l'installazione su hardware non Apple. Le applicazioni iOS e iOS possono essere installate solo su dispositivi Apple, quindi 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 sottostante.
- Applicazione in crash
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é ci sono alcuni bug o perdite di memoria nelle app.
- Incompatibilità dell'applicazione
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à di sicurezza
Una vulnerabilità di sicurezza in iOS consente all'hacker di attaccare i tuoi dispositivi iOS, rubare le tue informazioni private. Fino ad ora, sono state scoperte gravi vulnerabilità di 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 della tua applicazione iOS. Sono bug e dovrebbero essere sempre corretti.
In questo tutorial imparerai-
- Perché testare iOS?
- iOS che prova MindMap
- Elenco di controllo per il test iOS
- Strategia di test iOS
- Test automatizzati
- Test di unità con OCUnit
- Test dell'interfaccia utente con UIAutomation
- Test manuale
- Test esplorativi
- Test utente
- Test di concetto
- Test di usabilità
- Beta test
- Test A / B
- Test iOS Best practice
- MITI sui test iOS
iOS che prova MindMap
Come mostrato nella figura sopra, iOS Testing MindMap mostra tutti gli elementi che il tester dovrebbe considerare quando esegue i test su iOS.
Elenco di controllo per il test delle applicazioni iOS
Questo elenco di controllo è progettato specificamente per testare le caratteristiche delle applicazioni mobili iOS. Ovviamente, verifica solo le caratteristiche generiche dell'applicazione e non la funzionalità di essa.
- Verificare il tempo di installazione impiegato dall'applicazione sul dispositivo. Assicurati che l'applicazione sia 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'intenzione principale dell'applicazione.
- Avvia l'applicazione e verifica 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 maggiori possibilità per l'utente di chiudere o addirittura disinstallare 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 che visualizzi semplicemente una schermata vuota.
- Se l'applicazione utilizza i servizi di localizzazione, controlla se l'avviso di autorizzazione alla posizione viene visualizzato o meno. Questo avviso dovrebbe essere richiesto all'utente solo una volta.
- Se l'applicazione invia notifiche push, controlla se viene visualizzato o meno l'avviso di autorizzazione della notifica push. Questo avviso dovrebbe anche essere richiesto all'utente una sola volta.
- Avvia l'applicazione, chiudila e riavvia. Controlla se l'app si comporta come progettato / desiderato
- Chiudi l'applicazione toccando il pulsante Home del dispositivo e riapri l'app. Controlla se l'app funziona come progettato / desiderato.
- Una volta installata, controlla se l'app è elencata nell'app delle impostazioni di iPhone.
- Dopo che l'applicazione è stata pubblicata, controlla se è possibile trovarla in "App Store". Ci sarà una versione del sistema operativo supportata per l'applicazione. Quindi, assicurati che l'applicazione possa essere trovata in "App Store" del dispositivo con la versione del sistema operativo supportata. Inoltre, l'applicazione non dovrebbe essere elencata nell '"App Store" del dispositivo con versione del sistema operativo non supportato.
- Verificare se l'applicazione va in modalità di sospensione durante l'esecuzione in background per evitare che la batteria si scarichi.
- Se le prestazioni dell'applicazione sono lente o durante il caricamento dei contenuti, verificare 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 è alterato nell'app (ad esempio: aggiorna, organizza, cestino, Rispondi, Indietro, ecc.)
- Verificare se i pulsanti standard non vengono utilizzati per altre funzioni rispetto a quelle per cui sono normalmente utilizzati
Strategia di test iOS
La figura seguente introduce alcuni tipi comuni di strategie di test iOS.
Test automatizzati
I test automatici sono i maggiori vantaggi dei test iOS. Ti consente di rilevare rapidamente il bug e i problemi di prestazioni. I vantaggi del test automatizzato come mostrato di seguito:
- I test automatici possono essere eseguiti su più dispositivi, risparmiando tempo
- I test automatici possono indirizzare gli SDK. Puoi eseguire il test su diverse versioni dell'SDK
- I test automatizzati aumentano la produttività dei test, risparmiando sui costi di sviluppo del software
- Esistono molti framework di test open source che supportano il test automatizzato su iOS
Test di unità con OCUnit
Quando è stato rilasciato l'SDK iOS originale, mancava di funzionalità di test unitario. Quindi Apple ha riportato la soluzione di unit test OCUnit in iOS SDK versione 2.2.
OCUnit è un framework di test per C-Objective in Mac OS. I maggiori vantaggi di un framework OCUnit sono la stretta integrazione nell'ambiente di sviluppo XCode come mostrato di seguito.
Alcuni dei vantaggi di OCUnit sono mostrati nella figura sottostante.
Test dell'interfaccia utente con UIAutomation
UI Automation è una libreria JavaScript 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, è possibile automatizzare il test dell'applicazione non solo sul simulatore ma anche sul dispositivo reale.
UIAutomation ti offre questi vantaggi:
- Riduci gli sforzi per i test manuali
- 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 completamente le suite di test)
Lo strumento UIAutomation funziona da script, scritti in JavaScript. Simula gli eventi utente sull'applicazione iOS di destinazione.
Contro vs pro di UIAutomation
Professionisti | Contro | |
---|---|---|
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 l'unico simulatore. | Non si integra molto bene con altri strumenti |
3. | Sviluppato da JavaScript, è un popolare linguaggio di programmazione. |
La figura sopra rappresenta alcune classi comuni nel framework UIAutomation.
- La classe UIAElement è la super classe per tutti gli elementi dell'interfaccia utente nel contesto dell'automazione
- La classe UIATarget rappresenta gli elementi dell'interfaccia utente di alto livello del sistema sottoposto a test
- La classe UIALogger fornisce informazioni su test ed errori sulla funzionalità di recupero
- La classe UIAActivityView consente l'accesso e il controllo delle visualizzazioni delle attività all'interno dell'app.
- La classe UIAActionSheet consente l'accesso e il controllo dei fogli di azione all'interno della tua app.
- Azione evento utente
- Classe UISlider
- Classe UIAButton
- Classe UIAKey
- Classe UIAKeyboard
Altri framework di test automatizzati
- MonkeyTalk: uno strumento per test automatizzati di applicazioni iOS, Android, HTML5 e Adobe. È un ambiente integrato per la gestione e l'esecuzione di suite di test
- Frank: framework per il test di accettazione automatizzato per iPhone e iPad
- KIF: è un framework di test di integrazione iOS . 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
È un test senza un piano di test formale. Il test esplorativo è un metodo di test a basso costo, ma può perdere potenziali bug nella tua applicazione iOS.
Test esplorativi Contro vs Pro
Professionisti | Contro | |
---|---|---|
1. | È necessaria meno preparazione, rileva precocemente i bug gravi. | Richiede un'elevata abilità del tester |
2. | Non è necessario il piano di test per accelerare il rilevamento dei bug. | La copertura del test è bassa. Non garantisce che tutti i requisiti vengano testati. |
3. | La maggior parte dei bug vengono scoperti presto da una sorta di test esplorativo | Mancanza di documentazione di test |
Test utente
Il test utente è un tipo di test manuale su iOS. Lo scopo di questo test è creare app migliori, non solo app prive di bug . La figura seguente mostra quattro tipi di test utente
Test di concetto
Valuta la risposta degli utenti a un'idea di applicazione prima di rilasciarla sul mercato. Le procedure di test concettuale su iOS sono descritte di seguito
Test di usabilità
Usability Testing è un test di quanto sia facile usare la tua applicazione iOS. Nei test iOS, il test di usabilità potrebbe essere registrato per ricordare o condividere con altri.
Ci sono alcuni strumenti che supportano i test di usabilità su iOS.
Magitest, un semplice test di usabilità iOS per siti e app.
Delight.io, questo strumento può catturare l'interazione reale dell'utente sulle tue app iOS.
Beta test
Il Beta Testing è il test di integrazione con dati reali per ottenere il feedback finale dagli utenti. Per distribuire le tue app per il beta test, devi seguire i passaggi seguenti.
- Presupposto : se stai eseguendo il beta test di un candidato finale per una versione, assicurati di convalidare l'app prima di distribuirla ai tester.
- Trova tester tramite servizio : raccogli gli ID dispositivo dai tester e li aggiungi al Member Center
- Crea una distribuzione ad-hoc : la distribuzione ad hoc consente al tester di eseguire la tua app sul proprio dispositivo senza bisogno di Xcode. Questo passaggio include 2 passaggi secondari
- Crea certificati di distribuzione
- Crea profili di provisioning ad-hoc
- Richiedi feedback al tester: il tester conduce i test e ti invia segnalazioni di bug. Dopo il rilascio della tua app, puoi ottenere i rapporti da iTunes Connect.
Test A / B
Il test A / B è 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 fasi principali
- Configura un test : preparate 2 versioni della tua app iOS (A e B) e metrica di test
- Test : prova simultaneamente 2 versioni di app iOS sopra sui dispositivi.
- Analizza : misura e seleziona la versione migliore da rilasciare
I seguenti strumenti supportano i test A / B su iOS.
- Arise: test A / B sia per iOS che per Android. Può essere integrato nella tua app iOS e rendere più veloce il processo di test.
Best practice per i test A / B
- Definisci l' obiettivo del tuo test. Qualsiasi test è inutile senza un obiettivo.
- Guarda gli utenti finali che utilizzano la tua app per la prima volta
- Esegui un solo test per aggiornamento. Ti fa risparmiare tempo quando effettui i test
- Monitora attentamente il tuo test. Puoi imparare le esperienze dal tuo test monitorandolo.
Test iOS Best practice
Ecco alcuni suggerimenti che dovresti sapere quando organizzi il test della tua applicazione iOS
- Testare l'applicazione su un dispositivo reale per ottenere risultati reali
- Migliora i tuoi metodi di test, perché i metodi di test tradizionali non sono più sufficienti per coprire tutti i test sui test iOS
- Utilizzo del registro della console per testare l'applicazione iOS. Questa è una funzionalità iOS che include informazioni da ogni applicazione sul dispositivo.
- Documentare i bug dell'applicazione utilizzando il comando breve dello schermo incorporato . Aiuta lo sviluppatore a capire come si verificano i bug.
- La segnalazione di arresti anomali è uno strumento utile per testare l'applicazione. Possono rilevare arresti anomali e registrare i dettagli in modo da poter indagare facilmente sui bug.
MITI sui test iOS
Questa sezione esamina alcuni popolari miti e realtà dei test iOS
L'applicazione di test su iOS e Android è la stessa cosa.
iOS e Android sono due piattaforme sviluppate da Apple Inc e Google. Sono totalmente differenti. Ambienti di test ecc., Framework di test, linguaggi di programmazione.
L'applicazione di prova su iOS Simulator è sufficiente.
iOS Simulator non è abbastanza potente per testare un'app. Perché iOS Simulator ha alcune limitazioni:
- Limitazioni hardware (fotocamera, ingresso microfono, sensore)
- L'interfaccia utente della tua app potrebbe sembrare più veloce e più fluida rispetto a un dispositivo
- Limitazioni API
- Alcuni framework non 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.