ios app testing beginners guide with practical approach
Raccolta di conoscenze di base per il test delle app iOS:
'Sai, tutti hanno un cellulare, ma non conosco una persona a cui piace il cellulare. Voglio creare un telefono che la gente ami. ' - Steve Jobs.
Si trattava dell'iPhone di Steve Jobs. Steve ha davvero fatto in modo che Apple lavorasse per rendere il proprio dispositivo mobile il preferito di tutti i tempi.
Gli utenti hanno sempre amato i dispositivi mobili Apple, siano essi iPhone, iPod Touch o iPad. I dati attuali suggeriscono che ci sono quasi 1 miliardo di dispositivi Apple operativi nel mondo che funzionano su iOS.
Questo è un intero miliardo di loro.
Di seguito è riportata l'analisi della quota di mercato degli iPhone nel 2016:
[Immagine fonte ]
Cosa imparerai:
- ios
- iOS Testing
- Tipi di test dell'applicazione iOS
- Test manuale - Utilizzo del dispositivo
- Test manuale: utilizzo dell'emulatore
- iOS Automation
- Best practice per testare un'app iOS
- Framework di automazione iOS
- Conclusione
- Lettura consigliata
ios
iOS è un sistema operativo mobile progettato da Apple proprio per i suoi dispositivi, spesso definiti iDevices. Dal 2007, anno in cui iOS è stato realizzato solo per iPhone, il sistema operativo si è evoluto per supportare anche i dispositivi Touch e gli iPad.
La ricerca attuale riporta che iOS è il secondo sistema operativo mobile più popolare sul mercato. Android funziona su dispositivi costruiti da vari produttori, ma il bello di iOS è che è limitato solo all'hardware Apple, il che indica chiaramente la popolarità del sistema operativo.
iOS ha visto un totale di 10 versioni principali nel corso degli anni e ha offerto notevoli aggiornamenti delle funzionalità in ogni sua versione.
Questo sistema operativo iOS è famoso per la sua facilità d'uso, fluidità nelle operazioni, app prive di arresti anomali ecc. Mentre si discute delle APP, l'app store di Apple iTunes per iOS è troppo ricco con un numero di app che spara fino a 2,2 milioni. Il download di app è salito rapidamente a un numero enorme di 130 miliardi.
iOS è un sistema operativo, che non è limitato da alcuna barriera zonale o linguistica. Questo è uno dei principali fattori di questo sistema operativo che sta diventando così famoso in soli 10 anni del suo sviluppo. Supporta 40 lingue diverse.
Non solo le lingue, anche l'interfaccia utente dei dispositivi iOS è molto accattivante e di classe anche rispetto ai dispositivi Android.
Mentre parliamo delle Applicazioni in dettaglio, di seguito sono riportate alcune delle statistiche su di esso:
- L'app store di Apple iTunes riceve quasi 1000 nuove candidature ogni giorno.
- Circa 1/3rddelle applicazioni totali nell'app store di Apple iTunes possono essere scaricate gratuitamente.
- Le tariffe delle applicazioni iOS a pagamento variano in media da 1,10 a 1,30 $.
- Il prezzo medio per un gioco iOS varia da 0,55 a 0,65 $.
Quante applicazioni hai utilizzato sul tuo iPhone, iPod Touch o iPad?
Una bella manciata! Giusto? A partire da Gmail e Facebook fino a Clash of Clans e Asphalts. Questo tipo di applicazioni, i numeri e la varietà di utenti portano i tester del software a fare affari seri. Non è vero ??
Come tester, non solo la funzionalità, ma è necessario eseguire anche un test approfondito dell'interfaccia utente per verificare l'app su iPhone, iPod e iPad a causa della variazione delle loro dimensioni.
iOS Testing
Come discusso in precedenza, iOS è limitato solo all'hardware Apple o ai dispositivi realizzati da Apple. Questo è davvero un enorme sollievo. Tuttavia, ci sono numerosi dispositivi Apple e le loro versioni che supportano iOS.
La conclusione è che Apple ha un sistema chiuso, a differenza di Android che è un sistema aperto. Le versioni del sistema operativo o dei dispositivi sono ben pianificate.
Questo è un ulteriore vantaggio perché:
- Le dimensioni dei dispositivi disponibili o in fase di rilascio sono fisse e come controllo di qualità dobbiamo avere un'idea molto chiara di ciò che tutti i dispositivi sono fuori mercato. Diventa facile per un QA decidere il banco di prova per il test
- Come i dispositivi, non abbiamo bisogno di fare un'analisi approfondita per il sistema operativo, poiché è un sistema chiuso, richiede meno tempo (e fatica) per decidere il banco di prova per il test del sistema operativo.
- Apple ha una buona varietà di propri strumenti di automazione anche se sono un po 'difficili da imparare.
- Ricordo che per i test GPS per Android ho dovuto impiegare 2-3 giorni per scoprire come creare script fittizi per inviare una posizione falsa. Ma è stato molto semplice e diretto in iOS in quanto ha una funzionalità integrata per inviare falsi GPS per camminare, correre, andare in bicicletta, ecc.
- Per il test iniziale, si sconsiglia di testare il GPS con un test sul campo, è consigliabile inviare dati GPS fittizi e anche risparmiare tempo.
- Apple ha linee guida rigide per l'invio di una domanda, questo è un grande aiuto in un modo piuttosto che essere rifiutato dopo l'invio e una buona possibilità di successo, a differenza di altri sistemi operativi in cui non ci sono linee guida rigide.
- La funzionalità del dispositivo e del sistema operativo stesso è fissa e semplice, quindi riduce le possibilità di perdere i modi in cui un'app può funzionare. In iOS, non è possibile forzare l'arresto di un'app mentre possiamo uccidere e forzare l'arresto delle app su Android. Così le complessità sono ridotte per il test qui.
Questi sono alcuni dei vantaggi che traiamo dai prodotti Apple ma non necessariamente che questi siano i vantaggi di ogni prodotto o app. Mentre per le app sviluppate in Cross-platform, iOS è difficile da gestire.
Il alto livello la classificazione è come mostrato di seguito:
Il primo passo per entrare nel test delle applicazioni iOS è considerare il tipo di implementazione.
L'implementazione dell'applicazione può essere uno dei 3 tipi seguenti:
1) Applicazioni basate sul Web: Queste sono le applicazioni che si comportano in modo simile alla build nelle applicazioni iOS. Questi sono i normali siti web a cui un utente accede dal browser Safari dell'iPhone.
2) Applicazione nativa: Un'applicazione sviluppata utilizzando iOS SDK [Software Development Kit] viene eseguita in modo nativo sui dispositivi iOS supportati come VLC, Flipboard, Uber ecc.
3) Applicazione ibrida: Questa è la miscela o l'ibrido di entrambi i tipi sopra menzionati. Questo dà accesso al contenuto web attraverso un'area di visualizzazione del contenuto web e ha anche alcuni elementi dell'interfaccia utente per iOS. Per esempio. Zomato, Twitter, Gmail ecc
i migliori siti di download di musica gratuiti per telefoni Android
Tipi di test dell'applicazione iOS
I diversi tipi di test delle applicazioni iOS [poiché vengono eseguiti in condizioni tipiche] possono essere i seguenti:
- Test manuale - Utilizzo del dispositivo
- Test di sistema
- Test UI / UX
- Test di sicurezza
- Sperimentazione sul campo
- Test manuale: utilizzo dell'emulatore
- Test unitario
- Test d'integrazione
- Test dell'interfaccia utente
- Test di automazione
- Test di regressione
- Test BVT
- Test di compatibilità
- Test delle prestazioni
Esempio di applicazione:
Prima di passare ai vari aspetti dei processi di test iOS, diamo un esempio di una tipica applicazione iOS.
Prendiamo in considerazione una richiesta di raccolta fondi per una squadra sportiva. L'applicazione avrà un accesso all'account social [Google / Facebook] e una pagina di pagamento.
Prima di andare alla pagina di pagamento, dovrebbe esserci un'opzione per selezionare gli importi definiti dal sistema o un campo personalizzato per digitare l'importo. Una volta completato il pagamento, sullo schermo dovrebbe essere visualizzato un PDF certificato e, allo stesso tempo, il PDF deve essere inviato anche all'account di posta elettronica dell'utente attualmente connesso.
Test manuale - Utilizzo del dispositivo
a) Test del sistema:
Questo tipo di test iOS viene eseguito sul sistema per verificare se i vari componenti del sistema funzionano insieme.
In questo processo di test, l'applicazione iOS viene avviata su un vero dispositivo Apple, seguita dalla sua interazione con l'interfaccia utente per attivare uno o più set specifici di azioni dell'utente. Le azioni tipiche degli utenti possono essere un'operazione di tocco o un'operazione di scorrimento sullo schermo.
Infine, il risultato viene testato rispetto al risultato atteso.
Per noiEsempiosopra indicato, un tipico test di sistema può comprendere i seguenti passaggi:
domande e risposte dell'intervista del server ms sql per esperti
- Accedi alla squadra sportiva iOS e all'applicazione di raccolta fondi utilizzando l'accesso all'account Facebook utilizzando l'autenticazione aperta.
- Seleziona un importo di sistema predefinito di $ 10 dalle opzioni fornite.
- Procedi al gateway di pagamento.
- Seleziona l'opzione Portafoglio mobile PayTm per il processo di pagamento.
I test di sistema sono le operazioni che coprono maggiormente i vari flussi End to End nel sistema. Ogni test deve essere eseguito con le varie configurazioni disponibili. E dipende anche dal dispositivo e dalla versione iOS su cui è installata l'applicazione.
b) Test dell'interfaccia utente iOS
L'interfaccia utente / UX dei dispositivi iOS è stata un elemento chiave nella loro storia di successo.
I test UI / UX nei dispositivi iOS possono essere classificati nelle seguenti categorie:
- Ingressi: Rientrano in questa categoria i test delle funzionalità del touchscreen [come tocco lungo / breve, tocco 3D, scorrimento], dimensioni dei pulsanti, posizionamento dei pulsanti, colore dei caratteri e loro dimensione, ecc.
- Tasti fissi: Le applicazioni native funzionano perfettamente con i tasti hardware / hard key incorporati presenti sul dispositivo come il tasto Home, i pulsanti Sound, ecc. Anche l'applicazione sotto test dovrebbe interagire con i tasti hard in modo simile.
- Soft Keys / Soft Keyboard: Quanto è fastidioso quando la tastiera non viene visualizzata quando sei nella pagina dei messaggi di Whatsapp? L'aspetto di una tastiera, la possibilità di nascondersi quando non ne hai bisogno, il supporto per emoticon, simboli, tutti i caratteri / simboli ecc. Sono necessari.
- Nel nostro Esempio , la tastiera può entrare nell'immagine in più punti, ad esempio inserendo l'importo personalizzato, digitando le credenziali / i dettagli della carta nel gateway di pagamento ecc.
- Schermo: L'applicazione, se supportata su più dispositivi, deve essere testata per il suo orientamento in tutti i dispositivi. Possono esserci alcune modifiche alla risoluzione in base al dispositivo scelto per il processo di test. Allo stesso tempo, il test dovrebbe essere effettuato anche per le modalità verticale / orizzontale e l'uso della tastiera in ciascuno dei casi.
Se la tua app non è stata creata solo per iOS, ci sono pochi suggerimenti che devono essere testati specificamente per iOS come:
- Liste: In iOS, quando c'è un elenco da visualizzare, viene sempre visualizzata una schermata completamente nuova, a differenza di Android in cui viene visualizzato un pop-up.
Di seguito è riportato un esempio dello stesso:
[ fonte ]
- Messaggi: Quando un'app si arresta in modo anomalo, il messaggio mostrato in iOS è diverso da quello in un Android. Inoltre, se hai osservato, piccoli messaggi lampeggiano sui telefoni Android quando liberi memoria come '# GB di memoria liberata' e così via, ma non possiamo mai vedere messaggi flash in iOS.
Di seguito è riportato un esempio:
[ fonte ]
- Elimina conferma: Se osservi da vicino un'app iOS, in un popup di conferma dell'eliminazione, l'azione Annulla si trova a sinistra dell'opzione Elimina. Mentre in Android o in un altro sistema operativo è viceversa.
Questi sono alcuni degli esempi che richiedono test case e test separati poiché iOS ha la sua interfaccia utente predefinita, i suoi messaggi, ecc., Che non possono essere modificati.
c) Test di sicurezza:
Nel nostro esempio , abbiamo un'applicazione con un gateway di pagamento e una pagina di accesso supportata dall'integrazione della pagina social.
Per esempio , supponiamo che tu abbia un'app ICICI sul tuo telefono e quando accedi invece delle informazioni del tuo account se vengono visualizzate le informazioni di qualcun altro o se esegui un trasferimento di denaro e l'app invia l'OTP a un altro numero di telefono che non è il tuo , puoi immaginare cosa succederà. Pertanto, i test di sicurezza sono un must.
I dati in termini di accesso ai social media e gateway di pagamento devono essere crittografati o protetti in modo da proteggere l'applicazione dagli hack.
d) Test sul campo:
Viene eseguito un test sul campo per verificare il comportamento dell'app sulla rete dati del telefono.
Questo test viene solitamente eseguito quando l'app raggiunge una fase stabile e non si arresta in modo anomalo quando viene testata internamente e tutti i problemi di funzionalità sono stati risolti. Questo viene fatto principalmente per testare le prestazioni dell'app sulla rete dati lenta.
Test manuale: utilizzo dell'emulatore
a) Test unitario:
Questo viene fatto principalmente dal team di sviluppo / sviluppatore individuale. Questo test controlla se un particolare modulo del codice sorgente funziona come previsto o meno.
Gli sviluppatori progettano casi di unit test per un singolo componente, ovvero un modulo isolato su cui lavorano. Questo test dimostra il funzionamento del singolo modulo, dopodiché viene iniettato nel codice sorgente per funzionare come elemento dell'architettura integrata. Come dice l'intestazione, si tratta principalmente di un test manuale eseguito utilizzando l'emulazione di test.
b) Test di integrazione:
Nei passaggi precedenti, abbiamo discusso di più sui test di unità. Ora, essendo sicuri della funzionalità delle singole unità / moduli, si rende necessario verificare anche l'integrazione. Questo test viene eseguito per scoprire i problemi relativi a vari punti di integrazione.
Nel nostro Esempi , possiamo chiamare il login come un modulo e il gateway di pagamento come un altro modulo.
Il test unitario coprirà il test di entrambi individualmente. Tuttavia, il test di integrazione verificherà l'integrità di entrambi i moduli.
c) Test dell'interfaccia utente:
Come spiegato sopra, è necessario eseguire un test dell'interfaccia utente per un'app poiché è un fattore chiave per il successo dell'app.
L'acquisto di tutti i modelli di telefono per il test non è praticamente possibile perché costerebbe molto. Quindi l'utilizzo dell'emulatore è l'opzione migliore in quanto è gratuito e anche gli ovvi bug dell'interfaccia utente vengono facilmente rilevati dagli emulatori.
iOS Automation
a) Test di regressione:
Nell'ambiente in continua evoluzione, le modifiche vengono apportate continuamente per migliorare l'applicazione o per risolvere i problemi riscontrati nella versione precedente di essa. Durante l'implementazione delle modifiche, esiste la possibilità che le modifiche apportate all'applicazione possano alterare la funzionalità esistente.
In termini semplici, le modifiche apportate possono introdurre una nuova serie di problemi nell'applicazione.
Per verificare se l'applicazione funziona nello stesso modo anche dopo l'implementazione delle modifiche, è necessario eseguire il test di regressione. Inoltre, poiché si tratta di un'attività ripetitiva, l'automazione è utile per questo tipo di esecuzione di test.
b) Test BVT:
È una buona abitudine avere una suite automatizzata eseguita sulla nuova build rilasciata per i test poiché consente di risparmiare molto tempo e se le funzionalità di base si bloccano, viene segnalato immediatamente. Rispetto a uno sforzo manuale, i risultati dei test di verifica di base automatizzati per accettare o rifiutare una build possono essere ottenuti in pochi minuti.
c) Test di compatibilità:
Come discusso, ci sono numerosi dispositivi / tipi che vengono rilasciati da Apple. Per essere precisi, ci sono 15 diversi tipi di iPhone, 6 modelli di iPod Touch, 10 modelli di iPad e 2 modelli di iPad Pro sul mercato.
Ora, quando viene sviluppata un'app come la nostra [Applicazione di raccolta fondi per squadre sportive], dovrebbe essere supportata da tutti i dispositivi sopra menzionati. Ciò implica una cosa che: tutti i casi di test devono essere eseguiti su tutti questi dispositivi.
Ora, lo sforzo manuale non è possibile quando il numero di dispositivi è enorme come questo. Per compatibilità, è preferibile il test di automazione.
d) Test delle prestazioni:
Alcuni di quelli testati nei test delle prestazioni sono:
- Come si comporta l'applicazione quando viene resa operativa o viene eseguita per un tempo molto lungo. Durante il periodo operativo, fare in modo che l'applicazione comunichi / interagisca / rimanga inattiva.
- La stessa operazione deve essere eseguita ogni volta con quantità di carico diverse.
- Come si comporta il sistema quando il trasferimento dei dati è davvero enorme.
Questi casi sono di natura ripetitiva e vengono eseguiti principalmente utilizzando l'automazione.
Best practice per testare un'app iOS
Testare le applicazioni iOS può essere difficile, complicato, impegnativo se non viene eseguito correttamente.
Per spostare il test dell'app iOS nella giusta direzione, è possibile implementare le seguenti pratiche:
# 1) Dimentica gli emulatori: Nella maggior parte dei casi, gli emulatori sono preferiti rispetto ai dispositivi reali. Ma non è il caso ideale. Cose come le interazioni dell'utente, il consumo della batteria, la disponibilità della rete, le prestazioni sull'utilizzo, l'allocazione della memoria non possono essere testate sugli emulatori. Quindi, prova a testare su dispositivi reali tutto il tempo.
# 2) Automatizza le cose piuttosto che farlo manualmente: Quanto sei veloce nell'eseguire un'attività specifica? Nel mondo di oggi, tutti sono principalmente preoccupati per il tempo trascorso. L'automazione non solo riduce i tempi di esecuzione, ma aumenta anche l'efficacia, l'efficienza e la copertura del test del software.
# 3) Condividi il lavoro: Condividi i test tra i team, incluso il team di sviluppo. Possiamo ottenere l'aiuto in termini di esecuzione manuale dei casi di test così come ottenere aiuto dal team di sviluppo in termini di automazione dei casi di test manuali.
# 4) Cattura i registri dei crash: L'applicazione per iOS potrebbe bloccarsi o bloccarsi in determinate circostanze. Per risolvere il problema, i registri di arresto anomalo svolgono un ruolo fondamentale.
È possibile eseguire i seguenti passaggi per acquisire i registri degli arresti anomali:
- Per MacOS:
- Sincronizza il dispositivo iOS con il computer [Mac].
- Per Mac OS, tieni premuto il tasto Opzione per aprire la barra dei menu.
- Vai al menu Vai e fai clic su Libreria.
- Vai a ~ / Library / Logs / CrashReporter / MobileDevice //.
- Il nome del file di registro dovrebbe iniziare con il nome dell'applicazione.
- Per sistema operativo Windows:
- Sincronizza il dispositivo iOS con il computer [Windows].
- Vai a C: Users AppData Roaming Applecomputer Logs CrashReporter MobileDevice \
- Il nome del file di registro dovrebbe iniziare con il nome dell'applicazione.
# 5) Acquisizione dei registri della console:
I registri della console forniscono le informazioni generali delle applicazioni sul dispositivo iOS.
Questo può essere fatto usando strumenti come iTools. Nell'applicazione iTools, fare clic sull'icona 'Toolbox' quando il dispositivo iOS è connesso al sistema su cui è in esecuzione iTools. Facendo clic su 'Registro in tempo reale' si ottiene il registro della console in tempo reale.
creare un falso indirizzo email temporaneo
# 6) Acquisizione dello schermo: Diventa facile capire il problema e quindi è facile risolverlo se i passaggi sono visivi.
Si consiglia di registrare lo schermo o acquisire schermate dei problemi per farli comprendere meglio al team di sviluppo. Lo screenshot può essere acquisito utilizzando la funzione incorporata premendo contemporaneamente il pulsante di accensione e il pulsante Home.
La registrazione di uno schermo può essere eseguita utilizzando la registrazione Quick time player mentre il dispositivo iOS è connesso al Mac utilizzando il cavo Lightning.
Framework di automazione iOS
Di seguito sono elencati alcuni dei framework di automazione più comunemente utilizzati:
# 1) epoche;
Appium utilizza il driver Web Selenium per automatizzare i test delle applicazioni iOS.
Questa piattaforma è indipendente e può essere utilizzata sia sul web che sui dispositivi mobili [sia Android che iOS]. Questo è un open source e non è limitato dalla lingua. Le modifiche alle applicazioni o l'accesso al codice sorgente non sono necessari per l'automazione utilizzando Appium.
Appium funziona perfettamente indipendentemente dal tipo di applicazione: nativa, ibrida o Web.
# 2) Zucca:
Calabash è un framework multipiattaforma open source che supporta sia i test di automazione Android che iOS.
I test di zucca sono scritti in cetriolo che è simile a quello di una specifica ed è di facile comprensione. Calabash è costituito da librerie che consentono all'utente di interagire con applicazioni native e ibride. Supporta interazioni come gesti, affermazioni, screenshot ecc.
# 3) Earl Grey:
Earl Grey è il framework di test dell'interfaccia utente interno di Google. Questo è stato utilizzato per testare YouTube, Google Foto, Google Play Music, Google Calendar ecc.
Earl Grey è diventato Open source di recente. Alcuni dei principali vantaggi di Earl Grey sono, sincronizzazione incorporata, controlli di visibilità prima delle interazioni, vera interazione dell'utente [tocco, scorrimento, ecc.]. Questo è molto simile a Espresso di Google che viene utilizzato per l'automazione dell'interfaccia utente Android.
# 4) Automazione dell'interfaccia utente:
UI Automation è sviluppato da Apple ed è molto simile a UI Automator ad Android. Le API sono definite da Apple e i test sono scritti in JAVA.
# 5) COME:
KIF sta per 'Keep it Functional'. Questo è un framework di terze parti e open source.
Questo è un framework di test di integrazione iOS che è strettamente correlato e utilizzato per gli obiettivi di test XCTest. KIF è facile da configurare o integrare con il progetto Xcode e quindi non sono necessari server web aggiuntivi o pacchetti aggiuntivi. KIF ha un'ampia copertura in termini di versioni iOS.
Conclusione
Il test delle applicazioni iOS può essere un'attività molto impegnativa da fare. Spero che tu abbia avuto una buona comprensione del test dell'applicazione iOS attraverso questo articolo.
Tuttavia, selezionando l'approccio giusto, il miglior processo di test possibile, metodologie, strumenti, emulatori / dispositivi, ecc.Renderanno il test delle applicazioni iOS un grande successo.
Il nostro prossimo tutorial ti illustrerà tutti i concetti di base coinvolti Tutorial sul test delle app Android .
Lettura consigliata
- Migliori strumenti di test del software 2021 [Strumenti di automazione del test QA]
- Guida ai test di portabilità con esempi pratici
- Alpha test e beta test (una guida completa)
- Test funzionale vs test non funzionale
- Crea Appium Test per un'app iOS
- Download dell'eBook Testing Primer
- Che cos'è il test precoce: test in anticipo, test spesso MA come? (Una guida pratica)
- Tutorial per test di app per dispositivi mobili (una guida completa con oltre 30 tutorial)