Tutorial sul test delle app iOS
โก Riepilogo intelligente
Il test delle app iOS verifica che un'applicazione si installi, funzioni e si comporti correttamente sui dispositivi Apple. Combina tecniche manuali con framework automatizzati come XCTest e XCUITest per individuare tempestivamente arresti anomali, incompatibilitร e perdite di memoria.

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 รจ necessario perchรฉ iOS รจ la piattaforma di Apple per le applicazioni mobili, rilasciata per la prima volta il 29 giugno 2007. A differenza AndroidApple 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 di iOS e i dispositivi iOS posseduti dai tuoi utenti.
La figura seguente mostra le domande piรน frequenti che gli sviluppatori si pongono durante la creazione di un'applicazione iOS.
Non importa quanto tempo si investa nella progettazione e nell'implementazione; gli errori sono inevitabili e i bug si presenteranno. La figura seguente mostra alcuni bug comuni nelle applicazioni iOS.
Arresto anomalo dell'applicazione
Uno dei problemi piรน frustranti nell'utilizzo dei dispositivi Apple รจ la frequente possibilitร che un'applicazione si blocchi durante l'esecuzione. Spesso, il blocco รจ dovuto a bug o perdite di memoria nel codice.
Incompatibilitร delle applicazioni
La tua applicazione iOS potrebbe funzionare perfettamente con la versione attuale di iOS, ma se iOS viene aggiornato, potrebbe non funzionare a causa di problemi di incompatibilitร .
Vulnerabilitร della sicurezza
Una vulnerabilitร di sicurezza in iOS consente a un hacker di attaccare i dispositivi iOS e rubare le informazioni private. Nel corso degli anni, sono state scoperte gravi vulnerabilitร di sicurezza in diverse versioni di iOS per iPhone.
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 Collaudo La mappa mentale mostra tutti gli elementi che un tester dovrebbe considerare quando esegue test su iOS.
Elenco di controllo per il test delle applicazioni iOS
Questa checklist รจ specificamente progettata per testare le caratteristiche delle applicazioni mobili iOS. Ovviamente, testa solo le caratteristiche generiche dell'applicazione e non le sue funzionalitร .
- Controlla il tempo impiegato dall'applicazione per installarsi sul dispositivo. Assicurati che l'installazione avvenga entro un tempo accettabile.
- Una volta installata l'applicazione, verifica che abbia un'icona e un nome. Assicurati inoltre che sia l'icona che il nome siano autoesplicativi e riflettano lo scopo principale dell'applicazione.
- Avvia l'applicazione e verifica se viene visualizzata una schermata iniziale.
- Verifica il timeout della schermata iniziale e il tempo di caricamento della schermata principale. La schermata principale dell'applicazione dovrebbe caricarsi entro un tempo accettabile. Se il caricamento della schermata principale รจ troppo lento, รจ piรน probabile che l'utente chiuda l'applicazione o addirittura la disinstalli. Controlla anche come vengono caricati i contenuti nella schermata principale.
- La funzione principale dell'applicazione dovrebbe essere immediatamente evidente. Dovrebbe parlare da solo.
- Verifica se l'app supporta sia l'orientamento orizzontale che quello verticale. In caso affermativo, prova l'app in entrambi gli orientamenti. L'interfaccia utente dell'applicazione dovrebbe adattarsi di conseguenza.
- Senza una connessione a Internet, avvia l'applicazione. Verifica che l'app si comporti come previsto. ร possibile che l'applicazione si blocchi all'avvio o che visualizzi una schermata vuota.
- Se l'applicazione utilizza i servizi di localizzazione, verifica se viene visualizzato o meno l'avviso relativo all'autorizzazione alla localizzazione. Questo avviso dovrebbe essere mostrato all'utente una sola volta.
- Se l'applicazione invia notifiche push, verifica se viene visualizzato l'avviso di autorizzazione per le notifiche push. Questo avviso dovrebbe essere mostrato all'utente una sola volta.
- Avvia l'applicazione, chiudila e riavviala. Verifica se l'app si comporta come previsto/desiderato.
- Chiudi l'applicazione toccandoping Premi il pulsante Home del dispositivo e riapri l'app. Verifica se l'app funziona come previsto.
- Una volta installata, verifica se l'app รจ presente nell'elenco delle impostazioni dell'iPhone.
- Dopo la pubblicazione dell'applicazione, verifica che sia disponibile nell'"App Store". L'applicazione sarร compatibile con diverse versioni del sistema operativo. Assicurati quindi che sia presente nell'"App Store" sui dispositivi con sistemi operativi supportati. L'applicazione non deve essere elencata nell'"App Store" sui dispositivi con sistemi operativi non supportati.
- 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 inserendo il suo nome nella barra di ricerca del dispositivo. Verifica se l'app รจ presente nell'elenco.
- Verifica che l'aspetto dei pulsanti che eseguono azioni standard non sia alterato nell'app (ad esempio: aggiorna, organizza, cestino, rispondi, indietro, ecc.).
- Verificare che i pulsanti standard non vengano utilizzati per funzioni diverse da quelle per cui sono normalmente utilizzati.
Strategia di test iOS
Una volta stabilito cosa controllare, il passo successivo รจ come testarlo. La figura seguente illustra alcune tipologie comuni di strategie di test per iOS.
Test automatizzato
I test automatizzati rappresentano uno dei maggiori vantaggi nel testing di iOS. Permettono di individuare rapidamente bug e problemi di prestazioni. I vantaggi dei test automatizzati sono illustrati di seguito:
- I test automatizzati possono essere eseguiti su piรน dispositivi, risparmiando tempo
- I test automatizzati possono essere indirizzati agli SDK. ร possibile eseguire test su diverse versioni dell'SDK.
- I test automatizzati aumentano la produttivitร dei test e riducono i costi di sviluppo del software.
- Esistono numerosi 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 portato le OCUnit Soluzione per i test unitari nell'SDK iOS versione 2.2.
OCUnit era un framework di test per Objective-C su Mac (ora macOS). Il vantaggio maggiore del framework OCUnit era la sua stretta integrazione nel Xcode ambiente di sviluppo, come mostrato di seguito.
Nota: OCUnit (SenTestingKit) รจ obsoleto; poichรฉ Xcode 5, di Apple Test XCT Il framework lo ha sostituito come standard โ vedi la sezione XCTest qui sotto. Gli screenshot qui mostrano una versione precedente Xcode versione.
Alcuni dei vantaggi di OCUnit sono illustrati nella figura seguente.
Test dell'interfaccia utente con UIAutomation
L'automazione dell'interfaccia utente era un JavaCopione Libreria fornita da Apple Inc., utilizzabile per eseguire test automatizzati su dispositivi reali e sul simulatore iOS. Questo framework รจ stato aggiunto nell'SDK iOS 4.0. Grazie all'automazione dell'interfaccia utente, รจ possibile automatizzare i test dell'applicazione non solo sul simulatore, ma anche su un dispositivo reale.
Nota: Apple ha deprecato l'automazione dell'interfaccia utente in Xcode 8 (2016) e versioni successive l'hanno rimosso. Utilizzare XCUITest per i nuovi progetti di test dell'interfaccia utente; le classi e gli screenshot seguenti riflettono la toolchain precedente.
UIAutomation ha apportato i seguenti vantaggi:
- Sforzo ridotto su Test manuale
- Richiede meno sforzo per eseguire tutti i test
- Procedura di test dell'interfaccia utente semplificata (basta premere pochi pulsanti ed eseguire l'intera suite di test).
Lo strumento UIAutomation funzionava da script scritti in JavaScript. Simulava gli eventi utente sull'applicazione iOS di destinazione.
Vantaggi e svantaggi dell'automazione dell'interfaccia utente
| Pro | Contro | |
|---|---|---|
| 1. | Buon supporto per il gesto e la rotazione | Non รจ open source, meno supporto da parte dello sviluppatore |
| 2. | ร possibile eseguire i test di UIAutomation sul dispositivo, non solo sul simulatore. | Non รจ possibile integrarsi molto bene con altri strumenti |
| 3. | Sviluppato in JavaScript, un linguaggio di programmazione molto diffuso. |
La figura sopra riportata rappresenta alcune classi comuni nel framework UIAutomation.
- Migliori Elemento UIA class รจ la superclasse per tutti gli elementi dell'interfaccia utente nel contesto di Automation
- Migliori UIATarget La classe rappresenta gli elementi dell'interfaccia utente di alto livello del sistema sotto test
- Migliori UIALogger fornisce informazioni su test ed errori sulla funzionalitร di recupero
- Migliori UIAActivityView class consente l'accesso e il controllo delle visualizzazioni delle attivitร all'interno della tua app.
- Migliori 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 Framework per iPhone e iPad (non piรน attivamente mantenuto)
- 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.
- Appium: un popolare software open source, cross-platform Framework che automatizza le app iOS tramite il driver XCUITest di Apple.
XCTest e XCUITest: i moderni framework di test di Apple
OCUnit e UIAutomation sono importanti nella storia, ma entrambi sono ormai in pensione. Apple ha sostituito OCUnit con Test XCT in Xcode 5 (2013) e ha deprecato UIAutomation in Xcode 8 (2016) a favore di XCUITest, il componente di test dell'interfaccia utente di XCTest. Questi sono i framework di test che Apple fornisce e supporta in ogni versione corrente di Xcode.
Con XCTest, scrivi i test unitari in Swift o Objective-C e eseguirli dal Xcode Test Navigator, il xcodebuild Dalla riga di comando, sul simulatore o su dispositivi reali, XCUITest guida la tua app attraverso il livello di accessibilitร , in modo che i test dell'interfaccia utente si comportino in modo molto simile a un utente reale.
| Quadro di riferimento preesistente | Sostituzione moderna | Cosa รจ cambiato |
|---|---|---|
| OCUnit (SenTestingKit) | Test XCT | Gli stessi concetti di unit testing, ora integrati in ogni Xcode modello di progetto |
| Automazione dell'interfaccia utente (Java(Sceneggiatura) | XCUITest | I test dell'interfaccia utente sono scritti in Swift o Objective-C invece di JavaCopione |
๐ก Suggerimento: Strumenti multipiattaforma come Appium Automatizziamo iOS tramite XCUITest, quindi queste competenze sono trasferibili direttamente.
Test manuale
L'automazione porta velocitร , ma le tecniche manuali descritte di seguito aggiungono un giudizio umano che gli script non possono fornire.
Test esplorativi
Si tratta di un test eseguito senza un piano di test formale. Il test esplorativo รจ un metodo di test a basso costo, ma puรฒ non rilevare potenziali bug nella tua applicazione iOS.
Test esplorativi Contro e Pro
| Pro | Contro | |
|---|---|---|
| 1. | Less ร necessaria preparazione; i bug gravi vengono individuati tempestivamente. | Richiede un'elevata abilitร del tester |
| 2. | Non Piano di test รจ necessario, il che velocizza 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 reazione degli utenti a un'idea di applicazione prima di lanciarla sul mercato. Le procedure di test del concept su iOS sono descritte nella figura seguente.
Test di usabilitร
Test di usabilitร รจ un test di quanto sia facile usare la tua applicazione iOS. Nei test iOS, un test di usabilitร puรฒ essere registrato da ricordare o condividere con gli altri.
Alcuni strumenti che supportano i test di usabilitร su iOS sono:
Trymata 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 i test beta, 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 dei dispositivi dai tester e li aggiungi al tuo account sviluppatore Apple
-Creare 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 comprende 2 passaggi secondari
- Creare certificati di distribuzione
- Crea profili di provisioning ad hoc
-Richiedi feedback al tester: I tester eseguono i test e ti inviano i report dei bug. Dopo il rilascio dell'app, puoi ottenere i report da App Store Connetti (in precedenza iTunes Collegare).
Nota: Oggi la maggior parte dei team distribuisce build beta con TestFlightche consente di invitare fino a 10,000 tester esterni senza dover raccogliere manualmente gli ID dei dispositivi.
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: Prepara 2 versioni della tua app iOS (A e B) e una metrica di test
- Test: Testa le 2 versioni dell'app iOS sopra indicate contemporaneamente sui dispositivi.
- Analizzi i dati: Misurare e selezionare la versione migliore da rilasciare
I seguenti strumenti supportano i test A/B su iOS.
- Sorgere: test A/B sia per iOS che per AndroidPuรฒ essere integrato nella tua app iOS e velocizza il processo di test.
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 Esegui i test solo per ogni aggiornamento. Ti fa risparmiare tempo durante l'esecuzione dei test.
- Monitorare Esamina attentamente il tuo test. Monitorandolo, potrai imparare dai tuoi risultati.
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 ottenere una visione realistica delle prestazioni
- Migliorare i tuoi metodi di test, perchรฉ i metodi di test tradizionali non sono piรน sufficienti a coprire tutti i test nei test iOS
- Usa il registro della console Per testare l'applicazione iOS. Questa funzionalitร di iOS include informazioni provenienti da ogni applicazione presente sul dispositivo.
- funzionalitร di bug dell'applicazione utilizzando il screenshot integrato comando. Aiuta lo sviluppatore a capire come si verificano i bug.
- Segnalazione degli arresti anomali Gli strumenti sono utili durante il test dell'applicazione. Possono rilevare arresti anomali e registrare i dettagli, consentendo di analizzare facilmente i bug.
MITI sui test iOS
Questa sezione esamina alcuni miti e realtร popolari sui test iOS
Test delle applicazioni su iOS e Android รจ la stessa cosa.
iOS and Android sono due piattaforme sviluppate da Apple Inc. e Google rispettivamente. Sono totalmente diversi negli ambienti di test, nei framework di test e nei linguaggi di programmazione.
ร sufficiente testare l'applicazione sul simulatore iOS.
Il simulatore iOS non รจ abbastanza potente per testare un'app, perchรฉ 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 dall'app store perchรฉ hanno molte funzionalitร
Piรน funzionalitร ha la tua applicazione, piรน bug potresti ottenere. Nessun utente scaricherร la tua applicazione se presenta ancora molti difetti.

.png)











