Tutorial de testare a aplicațiilor iOS

⚡ Rezumat inteligent

Testarea aplicațiilor iOS verifică dacă o aplicație se instalează, funcționează și se comportă corect pe dispozitivele Apple. Aceasta combină tehnici manuale cu framework-uri automate precum XCTest și XCUITest pentru a detecta din timp blocările, incompatibilitățile și pierderile de memorie.

  • ???? Foundation: iOS rulează doar pe hardware Apple, așa că fiecare aplicație trebuie validată în funcție de versiunile și dispozitivele iOS compatibile.
  • Listă de verificare: Verificările generice acoperă instalarea, ora de lansare, orientarea, permisiunile și vizibilitatea în App Store.
  • 🤖 Automatizare: XCTest și XCUITest înlocuiesc framework-urile depreciate OCUnit și UIAutomation pentru testarea unitară și a interfeței utilizator.
  • 🧪 Metode manuale: Testarea exploratorie, de utilizare, de concept, beta și A/B captează feedback real din partea utilizatorilor.
  • 🚀 Impact: Testarea pe dispozitive reale plus distribuția beta TestFlight oferă performanțe stabile înainte de lansarea în App Store.

Testarea aplicațiilor iOS - Manuală și automatizată

Ce este testarea aplicațiilor iOS?

Testarea aplicației iOS este un proces de testare în care o aplicație iOS este testată pe dispozitive Apple reale pentru a verifica dacă funcționează conform așteptărilor sau nu pentru anumite acțiuni ale utilizatorului, cum ar fi timpul de instalare, interfața cu utilizatorul, experiența utilizatorului, aspectul, comportamentul, funcționalitatea, timpul de încărcare, performanța, aplicația Lista în magazin, suport pentru versiunea sistemului de operare etc.

De ce testarea aplicației iOS?

Testarea aplicației iOS este necesar deoarece iOS este platforma Apple pentru aplicații mobile, lansată pentru prima dată pe 29 iunie 2007. Spre deosebire de AndroidApple nu acordă licențe pentru instalarea iOS pe hardware non-Apple. iOS și aplicațiile iOS pot fi instalate numai pe dispozitive Apple; prin urmare, aplicația iOS trebuie să fie compatibilă cu versiunile iOS și dispozitivele iOS deținute de utilizatorii dvs.

Dispozitive Apple care rulează aplicații iOS

Figura de mai jos prezintă întrebări frecvente cu care se confruntă dezvoltatorii atunci când creează o aplicație iOS.

Întrebări frecvente la crearea unei aplicații iOS

Nu contează cât timp investești în design și implementare; greșelile sunt inevitabile, iar erorile vor apărea. Figura de mai jos prezintă câteva erori comune în aplicațiile iOS.

Erori frecvente în aplicațiile iOS

Aplicația se prăbușește

Una dintre cele mai frustrante probleme atunci când se utilizează dispozitivele Apple este că o aplicație se poate bloca frecvent în timpul execuției. Adesea, aplicația se blochează din cauza unor erori sau a unor scurgeri de memorie în cod.

Incompatibilități de aplicație

Aplicația ta iOS poate rula perfect pe versiunea actuală de iOS, dar dacă iOS este actualizat, este posibil să nu funcționeze din cauza unor probleme de incompatibilitate.

Vulnerabilitatea de securitate

O vulnerabilitate de securitate în iOS permite unui hacker să atace dispozitivele iOS și să vă fure informațiile private. De-a lungul anilor, au fost descoperite vulnerabilități severe de securitate ale iPhone-urilor în diferite versiuni de iOS.

Scurgeri de memorie

Scurgerile de memorie sunt blocuri de memorie alocată pe care programul nu le mai folosește. Scurgerile de memorie fac ca aplicația dvs. iOS să se blocheze.
Sunt erori și ar trebui să fie întotdeauna remediate.

iOS testează MindMap

Hartă mentală pentru testarea iOS cu elemente de luat în considerare

După cum se arată în figura de mai sus, iOS Testarea MindMap prezintă toate elementele pe care un tester ar trebui să le ia în considerare atunci când efectuează teste pe iOS.

Lista de verificare pentru testarea aplicației iOS

Această listă de verificare este concepută special pentru a testa caracteristicile aplicațiilor mobile iOS. Evident, testează doar caracteristicile generice ale aplicației și nu funcționalitatea acesteia.

  • Verificați timpul de instalare necesar aplicației pe dispozitiv. Asigurați-vă că aplicația este instalată într-un interval de timp acceptabil.
  • După ce aplicația este instalată, verificați dacă are o pictogramă și un nume. De asemenea, asigurați-vă că atât pictograma, cât și numele sunt explicite, reflectând intenția principală a aplicației.
  • Lansați aplicația și verificați dacă se afișează o fereastră de pornire.
  • Verificați timpul de așteptare pentru ecranul de pornire și timpul necesar pentru încărcarea ecranului principal. Ecranul principal al aplicației ar trebui să se încarce într-un timp acceptabil. Dacă ecranul principal durează prea mult să se încarce, există șanse mai mari ca utilizatorul să închidă sau chiar să dezinstaleze aplicația. De asemenea, verificați modul în care este încărcat conținutul pe ecranul principal.
  • Funcția principală a aplicației ar trebui să fie vizibilă imediat. Ar trebui să vorbească de la sine.
  • Verificați dacă aplicația acceptă atât orientarea peisaj, cât și cea portret. Dacă da, verificați aplicația în ambele orientări. Interfața cu utilizatorul a aplicației ar trebui să se ajusteze în mod corespunzător.
  • Lansați aplicația fără conexiune la internet. Asigurați-vă că aplicația se comportă conform proiectării/doririi. Există posibilitatea ca aplicația să se blocheze la lansare sau să afișeze pur și simplu un ecran gol.
  • Dacă aplicația utilizează servicii de localizare, verificați dacă este afișată sau nu alerta de permisiune pentru locație. Această alertă ar trebui să fie afișată utilizatorului o singură dată.
  • Dacă aplicația trimite notificări push, verificați dacă alerta de permisiune pentru notificări push este afișată sau nu. Această alertă ar trebui, de asemenea, să fie solicitată utilizatorului o singură dată.
  • Lansați aplicația, închideți-o și relansați-o. Verificați dacă aplicația se comportă conform proiectării/doririi.
  • Închideți aplicația prin atingereping Apăsați butonul Acasă al dispozitivului și deschideți din nou aplicația. Verificați dacă aplicația funcționează conform proiectării/doririi.
  • După instalare, verifică dacă aplicația este listată în setările iPhone-ului.
  • După ce aplicația este lansată, verificați dacă aceasta poate fi găsită în „App Store”. Vor exista versiuni de sistem de operare acceptate pentru aplicație. Așadar, asigurați-vă că aplicația poate fi găsită în „App Store” pentru dispozitivele cu versiuni de sistem de operare acceptate. De asemenea, aplicația nu ar trebui să fie listată în „App Store” pentru dispozitivele cu versiuni de sistem de operare neacceptate.
  • Verificați dacă aplicația intră în modul de repaus când rulează în fundal pentru a preveni descărcarea bateriei.
  • Dacă performanța aplicației este lentă sau ori de câte ori se încarcă conținutul, verificați dacă există o pictogramă de stare de progres („Se încarcă…”), de preferință cu un mesaj specific.
  • Căutați aplicația cu numele acesteia în bara de căutare a dispozitivului. Verificați dacă aplicația este listată.
  • Verificați dacă aspectul butoanelor care efectuează acțiuni standard nu este modificat în aplicație (de exemplu: actualizare, organizare, coș de gunoi, răspuns, înapoi etc.)
  • Verificați dacă butoanele standard nu sunt folosite pentru alte funcții decât cele pentru care sunt utilizate în mod normal

Strategia de testare iOS

Odată ce știi ce să verifici, următorul pas este cum să testezi acel lucru. Figura de mai jos prezintă câteva tipuri comune de strategii de testare iOS.

Tipuri comune de strategii de testare iOS

Testarea automată

Testarea automată este unul dintre cele mai mari avantaje în testarea iOS. Vă permite să detectați rapid erorile și problemele de performanță. Beneficiile testării automate sunt prezentate mai jos:

  • Testarea automată poate rula pe mai multe dispozitive, economisindu-vă timp
  • Testarea automată poate viza SDK-uri. Puteți rula teste pe diferite versiuni de SDK.
  • Testarea automată crește productivitatea testării și economisește costurile de dezvoltare software
  • Există multe framework-uri de testare open source care acceptă testarea automată pe iOS

Testarea unitară cu OCUnit

Când a fost lansat SDK-ul original pentru iOS, acesta a lipsit Testarea unității capacități. Așadar, Apple a adus OCUnit soluție de testare unitară în iOS SDK versiunea 2.2.

OCUnit a fost un framework de testare pentru Objective-C pe Mac (acum macOSCel mai mare avantaj al framework-ului OCUnit a fost integrarea sa strânsă în Xcode mediul de dezvoltare, așa cum se arată mai jos.

Notă: OCUnit (SenTestingKit) este depreciat; deoarece Xcode 5, Apple XCTest framework-ul l-a înlocuit ca standard — consultați secțiunea XCTest de mai jos. Capturile de ecran de aici arată o versiune mai veche Xcode versiune.

Integrarea OCUnit în Xcode mediu inconjurator

Unele dintre beneficiile OCUnit sunt prezentate în figura de mai jos.

Beneficiile testării unitare cu OCUnit

Testarea UI cu UIAutomation

Testarea UI cu UIAutomation

Automatizarea interfeței utilizator a fost o JavaScenariu bibliotecă furnizată de Apple Inc., care putea fi utilizată pentru a efectua teste automate pe dispozitive reale și pe Simulatorul iOS. Acest framework a fost adăugat în iOS SDK 4.0. Folosind Automatizarea UI, ați putea automatiza testarea aplicației nu numai pe simulator, ci și pe un dispozitiv real.

Notă: Apple a depreciat automatizarea interfeței utilizator în Xcode 8 (2016) și ulterior a fost eliminată. Folosiți XCUITest pentru proiecte noi de testare a interfeței utilizator; clasele și capturile de ecran de mai jos reflectă lanțul de instrumente mai vechi.

UIAutomation a adus următoarele beneficii:

  • Efort redus pe Testarea manuală
  • Necesită mai puțin efort pentru a executa toate testele
  • Procedura de testare a interfeței utilizator simplificată (apăsați câteva butoane și rulați suite complete de teste)

Instrumentul UIAutomation a funcționat pe baza unor scripturi scrise în JavaScript. Acesta simula evenimentele utilizatorului în aplicația iOS țintă.

Contra vs. Pro UIAutomation

Pro Contra
1. Suport bun pentru gest și rotație Nu este open source, mai puțin suport din partea dezvoltatorului
2. Poate rula teste UIAutomation pe dispozitiv, nu doar pe simulator. Nu se poate integra extrem de bine cu alte instrumente
3. Dezvoltat în JavaScript, un limbaj de programare popular.

Clase comune în framework-ul UIAutomation

Figura de mai sus reprezintă câteva clase comune în framework-ul UIAutomation.

  • UIAElement clasa este super-clasa pentru toate elementele interfeței cu utilizatorul în contextul automatizării
  • UIATarget clasa reprezintă elementele de interfață cu utilizatorul de nivel înalt ale sistemului testat
  • UIALogger clasă oferă informații de testare și eroare privind funcționalitatea de recuperare
  • UIAActivityView clasa permite accesul și controlul vizualizărilor activității din aplicația dvs.
  • UIAActionSheet clasa permite accesul și controlul foilor de acțiune din aplicația dvs.
  • Utilizator Eveniment Acțiune
  • Clasa UISlider
  • Clasa UIAButton
  • Clasa UIAkey
  • Clasa UIAKeyboard

Alte cadre de testare automată

  • Sincer: Automatizat Test de acceptare framework pentru iPhone și iPad (nu mai este întreținut activ)
  • KIF: este un iOS test de integrare cadru. Permite automatizarea ușoară a aplicațiilor iOS prin valorificarea atributelor de accesibilitate pe care sistemul de operare le pune la dispoziție pentru cei cu dizabilități de vedere.
  • Appium: o sursă deschisă populară, cross-platform framework care automatizează aplicațiile iOS prin driverul XCUITest de la Apple

XCTest și XCUITest: Cadrele de testare moderne de la Apple

OCUnit și UIAutomation sunt deja importante din istorie, dar ambele sunt acum retrase. Apple a înlocuit OCUnit cu XCTest in Xcode 5 (2013) și UIAutomation depreciat în Xcode 8 (2016) în favoarea Testul XCUIT, componenta de testare a interfeței utilizator din XCTest. Acestea sunt framework-urile de testare pe care Apple le livrează și le acceptă în fiecare versiune actuală a Xcode.

Cu XCTest, scrii teste unitare în Swift sau Objective-C și să le rulați din Xcode Navigator de teste xcodebuild linia de comandă, în Simulator sau pe dispozitive reale. XCUITest ghidează aplicația prin stratul de accesibilitate, astfel încât testele UI se comportă la fel ca un utilizator real.

Cadrul vechi Înlocuire modernă Ce s-a schimbat
OCUnit (SenTestingKit) XCTest Aceleași concepte de testare unitară, acum integrate în fiecare Xcode șablon de proiect
Automatizare UI (Javascenariu) Testul XCUIT Testele UI sunt scrise în Swift sau Objective-C în loc de JavaScenariu

👍 Sfat: Instrumente multiplatformă, cum ar fi Appium automatizați iOS prin XCUITest, astfel încât aceste abilități să fie transferate direct.

Testarea manuală

Automatizarea aduce viteză, dar tehnicile manuale de mai jos adaugă o judecată umană pe care scripturile nu o pot oferi.

Testarea exploratorie

Este vorba de testare fără un plan de testare formal. Testarea exploratorie este o metodă de testare ieftină, dar poate rata potențiale erori din aplicația iOS.

Testarea exploratorie Contra vs. Pro

Pro Contra
1. Less este necesară pregătire; erorile grave sunt detectate din timp. Necesită abilități înalte ale testatorului
2. Nu Planul de testare este necesar, ceea ce accelerează detectarea erorilor. Acoperirea testului este scăzută. Nu garantează că toate cerințele dumneavoastră sunt testate.
3. Majoritatea erorilor sunt descoperite devreme printr-un fel de testare exploratorie Lipsa documentației de testare

Testarea utilizatorilor

Testarea utilizatorului este un tip de testare manuală pe iOS. Scopul acestei teste este de a crea aplicații mai bune, nu numai fără bug-uri aplicații. Figura de mai jos prezintă patru tipuri de testare a utilizatorilor.

Patru tipuri de testare a utilizatorilor

Testarea conceptului

Evaluați reacția utilizatorului la o idee de aplicație înainte de a o lansa pe piață. Procedurile de testare a conceptului pe iOS sunt descrise în figura de mai jos.

Procedura de testare a conceptului pe iOS

Testarea utilizabilității

Testarea utilizabilității este un test al ușurinței utilizării aplicației iOS. În testarea iOS, un test de utilizabilitate poate fi inregistrata pentru a-și aminti sau pentru a împărtăși altora.

Câteva instrumente care acceptă testarea utilizabilității pe iOS sunt:

Trymata aplicații de testare pentru utilizatorii mobili pentru Android și iOS.

Încântare.io, acest instrument poate capta interacțiunea reală a utilizatorului în aplicațiile dvs. iOS.

Testare beta

Testarea beta este testarea de integrare cu date reale pentru a obține feedback final de la utilizatori. Pentru a distribui aplicațiile pentru testare beta, trebuie să urmați pașii de mai jos.

Pașii de distribuție pentru testarea beta

-Pre-condiționare: Dacă testați un candidat final pentru o versiune beta, asigurați-vă că validați aplicația înainte de a o distribui testerilor.

-Găsiți tester prin intermediul serviciuluiColectezi ID-urile dispozitivelor de la testeri și le adaugi în contul tău de dezvoltator Apple

-Creați distribuție ad-hocDistribuția ad-hoc permite testerului să ruleze aplicația pe dispozitivul său fără a fi nevoie Xcode. Acest pas include 2 sub-pași

  • Creați certificate de distribuție
  • Creați profiluri de furnizare ad-hoc

-Solicitați feedback de la testator: Testerii efectuează teste și vă trimit rapoarte de erori. După ce aplicația dvs. este lansată, puteți obține rapoartele de la App Store Connect (anterior iTunes conectați).

Notă: Astăzi, majoritatea echipelor distribuie versiuni beta cu TestFlight, care vă permite să invitați până la 10,000 de testeri externi fără a colecta manual ID-urile dispozitivelor.

A / B de testare

A / B de testare este una dintre cele mai puternice căi de a evaluați eficacitatea aplicației dvs. iOS. Folosește experimente randomizate cu două dispozitive, A și B.

Testare A/B pe două dispozitive iOS

Testarea A/B include trei pași principali

  • Configurați un testPregătește 2 versiuni ale aplicației tale iOS (A și B) și o metrică de testare
  • TestareTestați simultan cele 2 versiuni ale aplicației iOS de mai sus pe dispozitive.
  • AnalizaMăsurați și selectați versiunea mai bună pentru lansare

Următoarele instrumente acceptă testarea A/B pe iOS.

  • ridica: testare A/B atât pentru iOS, cât și AndroidPoate fi integrat în aplicația iOS și accelerează procesul de testare.

Cele mai bune practici pentru testarea A/B

  • Definiți ţintă a testului dumneavoastră. Orice test este inutil fără o țintă.
  • Ceas utilizatorii finali folosesc aplicația dvs. prima dată
  • Alerga unu testare doar per actualizare. Vă economisește timp la efectuarea testelor
  • monitor cu atenție testul. Poți învăța din test monitorizându-l.

Testare iOS Cele mai bune practici

Iată câteva sfaturi pe care ar trebui să le cunoașteți atunci când organizați testarea aplicației dvs. iOS

  1. Testați aplicația pe a dispozitiv real pentru a obține o imagine realistă asupra performanței
  2. Îmbunătăți metodele dvs. de testare, deoarece metodele tradiționale de testare nu mai sunt suficiente pentru a acoperi toate testele din testarea iOS
  3. Folosește jurnalul consolei pentru a testa aplicația iOS. Această funcție iOS include informații din fiecare aplicație de pe dispozitiv.
  4. Document erori de aplicație folosind captură de ecran încorporată comandă. Ajută dezvoltatorul să înțeleagă cum apar erorile.
  5. Raportarea accidentelor Instrumentele sunt utile atunci când testezi aplicația. Acestea pot detecta erori și pot înregistra detalii, astfel încât să poți investiga cu ușurință erorile.

MITURILE despre testarea iOS

Această secțiune examinează câteva mituri și realități populare ale testării iOS

Testarea aplicațiilor pe iOS și Android este același lucru.

iOS și Android sunt două platforme dezvoltate de Apple Inc. și Google respectiv. Acestea sunt total diferite în mediile de testare, cadrele de testare și limbajele de programare.

Testarea aplicației pe Simulatorul iOS este suficientă.

Simulatorul iOS nu este suficient de puternic pentru testarea unei aplicații, deoarece are unele limitări:

  • Limitări hardware (cameră foto, intrare microfon, senzor)
  • Interfața de utilizare a aplicației dvs. poate părea să ruleze atât mai rapid, cât și mai fluid decât pe un dispozitiv
  • Limitări API
  • Unele cadre neacceptate (Media Player, Store Kit, Message UI..)

Toată lumea va descărca aplicațiile mele din App Store pentru că au multe funcții.

Cu cât aplicația dvs. are mai multe caracteristici, cu atât puteți obține mai multe erori. Niciun utilizator nu va descărca aplicația dvs. dacă are încă multe defecte.

Întrebări frecvente

Da. Platformele asistate de inteligență artificială generează cazuri de testare, detectează regresii vizuale și repară localizatoarele de elemente defecte atunci când interfața utilizator se modifică. Instrumente precum Siguranța testului permiteți echipelor să creeze teste iOS într-un limbaj simplu.

Auto-repararea bazată pe inteligență artificială actualizează localizatoarele de elemente după modificările interfeței utilizator, semnalează testele instabile și prioritizează cazurile cu risc ridicat, reducând reelaborarea manuală care urmează fiecărei lansări iOS.

Da. Appium este întreținută activ și gestionează aplicațiile iOS prin intermediul framework-ului XCUITest de la Apple, oferind suport pentru teste în Javascenariu, Python, Javasau C#.

Nu. Un ID Apple gratuit cu Xcode vă permite să testați pe propriul dispozitiv. Programul Apple pentru dezvoltatori (99 USD/an) este necesar pentru TestFlight distribuție și lansare în App Store.

Rezumați această postare cu: