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.

  • ???? Foundation: iOS funziona solo su hardware Apple, quindi ogni app deve essere convalidata rispetto alle versioni di iOS e ai dispositivi supportati.
  • โœ… Elenco di controllo: I controlli generici riguardano l'installazione, l'orario di avvio, l'orientamento, le autorizzazioni e la visibilitร  sull'App Store.
  • ๐Ÿค– Automazione: XCTest e XCUITest sostituiscono i framework obsoleti OCUnit e UIAutomation per i test unitari e dell'interfaccia utente.
  • ๐Ÿงช Metodi manuali: I test esplorativi, di usabilitร , concettuali, beta e A/B raccolgono il feedback reale degli utenti.
  • ๐Ÿš€ Impatto: I test su dispositivi reali, uniti alla distribuzione beta di TestFlight, garantiscono prestazioni stabili prima del rilascio sull'App Store.

Test di app iOS: manuali e automatizzati

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.

Dispositivi Apple che eseguono app iOS

La figura seguente mostra le domande piรน frequenti che gli sviluppatori si pongono durante la creazione di un'applicazione iOS.

Domande frequenti durante la creazione di un'app 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.

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

Mappa mentale degli elementi da considerare per i test iOS.

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.

Tipi comuni di strategie di test 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.

Integrazione di OCUnit nel Xcode Industria XNUMX

Alcuni dei vantaggi di OCUnit sono illustrati nella figura seguente.

Vantaggi dei test unitari con OCUnit

Test dell'interfaccia utente con UIAutomation

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.

Classi comuni nel framework UIAutomation

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.

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.

Procedura di test concettuale su iOS

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.

Fasi di distribuzione del test beta

-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.

Test A/B su due dispositivi iOS

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

  1. Testare l'applicazione su a dispositivo reale per ottenere una visione realistica delle prestazioni
  2. Migliorare i tuoi metodi di test, perchรฉ i metodi di test tradizionali non sono piรน sufficienti a coprire tutti i test nei test iOS
  3. Usa il registro della console Per testare l'applicazione iOS. Questa funzionalitร  di iOS include informazioni provenienti da ogni applicazione presente sul dispositivo.
  4. funzionalitร  di bug dell'applicazione utilizzando il screenshot integrato comando. Aiuta lo sviluppatore a capire come si verificano i bug.
  5. 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.

DOMANDE FREQUENTI

Sรฌ. Le piattaforme assistite dall'IA generano casi di test, rilevano regressioni visive e riparano i localizzatori di elementi danneggiati quando l'interfaccia utente cambia. Strumenti come Prova sigma Consenti ai team di creare test iOS in un linguaggio semplice e comprensibile.

L'intelligenza artificiale, grazie alla sua capacitร  di autoripararsi, aggiorna i localizzatori degli elementi dopo le modifiche all'interfaccia utente, segnala i test instabili e dร  prioritร  ai casi ad alto rischio, riducendo il lavoro manuale necessario dopo ogni rilascio di iOS.

Sรฌ. Le serrature scorrevoli portatili e i catenacci a superficie possono essere usati per mettere in sicurezza una porta a scomparsa dall'esterno. Alcuni kit con catena di sicurezza consentono anche il bloccaggio esterno con chiave o manopola girevole. Appium รจ attivamente mantenuto e guida le app iOS attraverso il framework XCUITest di Apple, supportando i test in Javasceneggiatura, Python, Java, oppure C#.

No. Un ID Apple gratuito con Xcode ti consente di testare sul tuo dispositivo. Il programma Apple Developer a pagamento (99 dollari USA/anno) รจ necessario per TestFlight distribuzione e pubblicazione sull'App Store.

Riassumi questo post con: