ios app testing beginners guide with practical approach
Osnovno prikupljanje znanja za iOS testiranje aplikacija:
“Znate, svi imaju mobitel, ali ne znam ni jednu osobu koja voli njihov mobitel. Želim napraviti telefon koji ljudi vole. ' - Steve Jobs.
To je bilo o iPhoneu Stevea Jobsa. Steve je doista natjerao Apple da radi na tome da njihov mobilni uređaj postane omiljeni svima svima.
Korisnici su oduvijek voljeli Appleove mobilne uređaje, bilo to iPhone, iPod Touch ili iPad. Trenutni podaci sugeriraju da u svijetu postoji gotovo milijarda Appleovih uređaja koji rade na iOS-u.
To je cijela milijarda njih.
Slijedi analiza tržišnog udjela iPhonea u 2016. godini:
(slika izvor )
Što ćete naučiti:
- iOS
- iOS testiranje
- Vrste testiranja aplikacija za iOS
- Ručno testiranje - Korištenje uređaja
- Ručno testiranje - Korištenje emulatora
- iOS automatizacija
- Najbolji primjeri iz prakse za testiranje iOS aplikacija
- iOS automatizacijski okviri
- Zaključak
- Preporučena literatura
iOS
iOS je mobilni operativni sustav koji je Apple dizajnirao upravo za svoje uređaje, često nazvane iDevices. Od 2007. godine, kada je iOS napravljen samo za iPhone, operativni sustav evoluirao je tako da podržava Touch uređaje i iPade.
Trenutna istraživanja izvještavaju da je iOS drugi najpopularniji mobilni operativni sustav na tržištu. Android radi na uređajima koje su izradili različiti proizvođači, ali ljepota iOS-a je u tome što je ograničen samo na Appleov hardver, što jasno navodi popularnost operativnog sustava.
iOS je tijekom godina vidio ukupno 10 glavnih izdanja i u svakom je izdanju ponudio značajna ažuriranja značajki.
Ovaj iOS operativni sustav poznat je po svojoj jednostavnosti za upotrebu, fluidnosti u operacijama, aplikacijama koje se ne ruše itd. Tijekom rasprave o APP-ovima, Apple iTunes trgovina aplikacija za iOS prilično je bogata s nizom aplikacija koje pucaju do 2,2 milijuna. Preuzimanje aplikacija brzo se popelo na nevjerojatnih 130 milijardi.
iOS je operativni sustav koji nije ograničen nijednom zonskom ili jezičnom barijerom. Ovo je jedan od glavnih čimbenika ovog operativnog sustava koji postaje toliko poznat u samo 10 godina svog razvoja. Podržava 40 različitih jezika.
Ne samo jezici, čak je i korisničko sučelje iOS uređaja vrlo privlačno i otmjeno u usporedbi s Android uređajima.
Dok detaljno govorimo o aplikacijama, u nastavku su navedeni neki od statističkih podataka o njima:
- Trgovina aplikacija Apple iTunes svakodnevno dobiva gotovo 1000 novih prijava.
- Otprilike 1/3rdod ukupnog broja aplikacija u Apple iTunes trgovini aplikacija je besplatno za preuzimanje.
- Naknade za plaćene iOS aplikacije u prosjeku se kreću od 1,10 do 1,30 USD.
- Prosječna cijena iOS igre kreće se od 0,55 do 0,65 USD.
Koliko ste aplikacija koristili na iPhoneu, iPodu Touchu ili iPadu?
Prilična šačica! Pravo? Počevši od Gmaila i Facebooka do Clash of Clans and Asphalts. Ovakve aplikacije, brojke i raznolikost korisnika donose testerima softvera ozbiljno poslovanje. Zar ne ??
Kao ispitivač, također je potrebno izvršiti ne samo funkcionalnost, već i detaljno testiranje korisničkog sučelja kako bi se aplikacija provjerila na iPhoneu, iPodu i iPadu zbog razlike u njihovim veličinama.
iOS testiranje
Kao što je ranije spomenuto, iOS je ograničen samo na Appleov hardver ili uređaje izrađene od Applea. To je doista veliko olakšanje. Međutim, postoje brojni Apple uređaji i njihove verzije koji podržavaju iOS.
Dno crta je da Apple ima zatvoreni sustav, za razliku od Androida koji je otvoren sustav. Izdanja OS-a ili uređaja dobro su planirana.
To je dodatna prednost jer:
- Veličina uređaja koji su dostupni ili će biti objavljeni je fiksna i kao QA moramo imati vrlo jasnu predodžbu o tome koji su svi uređaji van tržišta. QA postaje lako odlučiti test probu za testiranje
- Kao i uređaji, ne trebamo raditi dubinsku analizu OS-a, budući da je riječ o zatvorenom sustavu, manje je vremena (i truda) za odlučivanje o testnom poligonu za testiranje OS-a.
- Apple ima široku paletu vlastitih alata za automatizaciju, iako ih je pomalo nezgodno naučiti.
- Sjećam se da sam za GPS testiranje za Android morao potrošiti 2-3 dana kako bih saznao kako stvoriti lažne skripte za slanje lažnog mjesta. No, u iOS-u je bilo vrlo jednostavno i jednostavno jer ima ugrađenu funkcionalnost za slanje lažnog GPS-a za hodanje, trčanje, vožnju biciklom itd.
- Za početno testiranje ne preporučuje se testiranje GPS-a terenskim testom, preporučljivo je slanje lažnih GPS podataka, a također štedi vrijeme.
- Apple ima stroge smjernice za podnošenje zahtjeva, ovo je velika pomoć na neki način, a ne odbijanje nakon podnošenja i dobre šanse za uspjeh, za razliku od ostalih OS-a u kojima ne postoje stroge smjernice.
- Funkcionalnost uređaja i samog OS-a su fiksne i izravne, stoga smanjuju šanse da propustite načine na koje aplikacija može raditi. U iOS-u ne postoji način za prisilno zaustavljanje aplikacije dok na Androidu možemo ubiti i prisilno zaustaviti aplikacije. Tako se smanjuje složenost za testiranje ovdje.
Ovo su neke od prednosti koje proizlazimo iz Appleovih proizvoda, ali ne nužno da su to prednosti svakog proizvoda ili aplikacije. Iako je s aplikacijama koje su razvijene na više platformi, iOS-om teško rukovati.
The visoka razina klasifikacija je prikazana dolje:
Prvi korak u testiranju iOS aplikacija je razmatranje vrste implementacije.
Implementacija aplikacije može biti bilo koja od dolje navedene 3 vrste:
1) Internetske aplikacije: To su aplikacije koje se ponašaju slično kao i ugradnje u iOS aplikacije. To su uobičajene web stranice kojima korisnik pristupa u iPhoneovom pregledniku Safari.
2) Izvorna aplikacija: Aplikacija koja je razvijena pomoću iOS SDK (Software Development Kit) pokreće se na podržanim iOS uređajima poput VLC, Flipboard, Uber itd.
3) Hibridna aplikacija: Ovo je smjesa ili hibrid obje gore spomenute vrste. To omogućuje pristup web sadržaju kroz područje za pregled web sadržaja, a ima i neke elemente korisničkog sučelja za iOS. Npr. Zomato, Twitter, Gmail itd
Vrste testiranja aplikacija za iOS
Različite vrste testiranja iOS aplikacija (kao što se to radi u tipičnim uvjetima) mogu biti sljedeće:
- Ručno testiranje - Korištenje uređaja
- Ispitivanje sustava
- UI / UX testiranje
- Ispitivanje sigurnosti
- Ispitivanje na terenu
- Ručno testiranje - Korištenje emulatora
- Jedinstveno ispitivanje
- Ispitivanje integracije
- Testiranje korisničkog sučelja
- Ispitivanje automatizacije
- Ispitivanje regresije
- BVT ispitivanje
- Ispitivanje kompatibilnosti
- Ispitivanje performansi
Primjer prijave:
Prije nego što krenemo u različite aspekte procesa testiranja iOS-a, uzmimo primjer tipične iOS aplikacije.
Uzmimo u obzir prijavu za prikupljanje sredstava za sportski tim. Aplikacija će imati prijavu na društveni račun (Google / Facebook) i stranicu za plaćanje.
Prije odlaska na stranicu za plaćanje trebala bi postojati mogućnost odabira iznosa definiranih sustavom ili prilagođeno polje za unos iznosa. Nakon završetka plaćanja, na ekranu bi se trebao prikazati PDF s certifikatom, a istodobno se PDF također mora poslati e-poštom na račun e-pošte korisnika koji je trenutno prijavljen.
Ručno testiranje - Korištenje uređaja
a) Ispitivanje sustava:
Ova vrsta iOS testiranja izvodi se na sustavu kako bi se provjerilo rade li različite komponente sustava zajedno.
U ovom postupku testiranja, aplikacija iOS pokreće se na stvarnom Apple uređaju, nakon čega slijedi interakcija s korisničkim sučeljem radi pokretanja određenog skupa ili skupova korisničkih radnji. Tipične radnje korisnika mogu biti dodirivanje ili prevlačenje prstom po zaslonu.
Konačno, rezultat se testira u odnosu na očekivani ishod.
Za našePrimjergore navedeno, tipično ispitivanje sustava može sadržavati sljedeće korake:
- Prijavite se u iOS sportski tim i aplikaciju za prikupljanje sredstava pomoću prijave na Facebook račun koristeći otvorenu autentifikaciju.
- Odaberite unaprijed definirani iznos sustava od 10 USD iz zadanih opcija.
- Nastavite do ulaza za plaćanje.
- Za postupak plaćanja odaberite opciju mobilnog novčanika PayTm.
Ispitivanja sustava su operacije koje uglavnom pokrivaju različite tokove s kraja na kraj u sustavu. Svaki test mora se izvršiti s različitim dostupnim konfiguracijama. Također ovisi o uređaju i iOS verziji na kojoj je aplikacija instalirana.
b) iOS UI testiranje
UI / UX iOS uređaja bio je ključni element njihove priče o uspjehu.
UI / UX testiranje na iOS uređajima može se klasificirati u sljedeće kategorije:
- Ulazi: Testiranje funkcionalnosti zaslona osjetljivog na dodir (poput dugog / kratkog dodira, 3D dodira, pomicanja), veličina gumba, pozicioniranje gumba, boja fontova i njihova veličina itd. Spadaju u ovu kategoriju.
- Tvrdi ključevi: Izvorne aplikacije besprijekorno funkcioniraju s ugrađenim hardverskim tipkama / tvrdim tipkama koje se nalaze na uređaju, kao što su tipka za dom, tipke za zvuk itd. Testirana aplikacija također bi trebala slično funkcionirati s tvrdim tipkama.
- Mekane tipke / meka tipkovnica: Koliko je dosadno kad se tipkovnica ne pojavi kada ste na stranici s porukama Whatsapp? Potreban je izgled tipkovnice, mogućnost skrivanja kad vam ne treba, podrška za smajliće, simbole, sve znakove / simbole itd.
- U našem Primjer , tipkovnica se može pojaviti na slici na više mjesta, poput unosa prilagođenog iznosa, unosa vjerodajnica / podataka o kartici u gateway itd.
- Zaslon: Ako je aplikacija podržana na više uređaja, treba testirati njezinu orijentaciju na svim uređajima. Mogu se dogoditi neke promjene razlučivosti na temelju uređaja koji je odabran za postupak testiranja. Istodobno, trebalo bi provesti testiranje za portretni / pejzažni način i upotrebu tipkovnice u svakom od slučajeva.
Ako je vaša aplikacija kreirana ne samo za iOS, malo je uputa koje treba posebno testirati za iOS, poput:
- Popisi: U iOS-u kada postoji popis koji će se prikazati, uvijek se prikaže potpuno novi zaslon, za razliku od Androida na kojem se prikazuje skočni prozor.
Slijedi primjer istog:
( izvor )
- Poruke: Kada se aplikacija sruši, poruka prikazana u iOS-u razlikuje se od one u Androidu. Također ako ste primijetili, male poruke bljeskaju na android telefonima kada oslobodite memoriju poput ‘#GB oslobođene memorije’ itd., Ali u iOS-u nikada ne možemo vidjeti flash poruke.
Slijedi primjer:
( izvor )
- Izbriši potvrdu: Ako pažljivo promatrate iOS aplikaciju, na skočnom skočnom prozoru za potvrdu brisanja akcija Otkazivanje nalazi se lijevo od opcije Izbriši. Dok je u Androidu ili drugom OS-u obrnuto.
Ovo su neki od primjera koji trebaju zasebne test slučajeve i testiranje jer iOS ima zadani UI, poruke itd., Koji se ne mogu mijenjati.
c) Ispitivanje sigurnosti:
U našem primjer , imamo aplikaciju s pristupnikom za plaćanje i stranicu za prijavu podržanu integracijom društvenih stranica.
Na primjer , pretpostavimo da na telefonu imate ICICI aplikaciju i kada se prijavite, a ne podatke o računu, ako su prikazani nečiji podaci ili ako izvršite prijenos novca, a aplikacija pošalje OTP na neki drugi telefonski broj koji nije vaš , možete zamisliti što će se dogoditi. Stoga je sigurnosno testiranje neophodno.
Podaci u smislu prijave na društvene mreže i pristupnika za plaćanje trebaju biti šifrirani ili zaštićeni kako bi se aplikacija zaštitila od hakiranja.
d) Terensko ispitivanje:
Provodi se terenski test kako bi se provjerilo ponašanje aplikacije na podatkovnoj mreži telefona.
Ovaj se test obično provodi kada aplikacija dosegne stabilnu fazu i ne ruši se kada se testira u tvrtki i kada su riješeni svi problemi s funkcionalnošću. To se uglavnom radi za testiranje performansi aplikacije na sporoj podatkovnoj mreži.
Ručno testiranje - Korištenje emulatora
a) Jedinstveno ispitivanje:
To uglavnom radi razvojni tim / pojedinačni programer. Ovo testiranje provjerava funkcionira li određeni modul izvornog koda prema očekivanjima ili ne.
Programeri dizajniraju jedinstvene testne slučajeve za jednu komponentu, tj. Izolirani modul na kojem rade. Ovaj test dokazuje da pojedinačni modul funkcionira nakon čega se ubrizgava u izvorni kod da bi radio kao element integrirane arhitekture. Kao što zaglavlje kaže, ovo je uglavnom ručno probno pokretanje i izvedeno pomoću testne emulacije.
b) Integracijsko ispitivanje:
U prethodnim koracima razgovarali smo više o jedinstvenom testiranju. Sada, kad smo sigurni u funkcionalnost pojedinih jedinica / modula, postaje potrebno provjeriti i integraciju. Ovo se ispitivanje provodi kako bi se otkrila pitanja koja se odnose na različite točke integracije.
U našem Primjeri , možemo nazvati prijavu kao jedan modul, a gateway za plaćanje kao drugi modul.
Jedinstveno testiranje obuhvaćat će testiranje oba pojedinačno. Međutim, integracijskim testiranjem testirat će se cjelovitost oba modula.
c) Testiranje korisničkog sučelja:
Kao što je gore objašnjeno, za aplikaciju je potrebno izvršiti testiranje korisničkog sučelja jer je to ključni čimbenik uspjeha aplikacije.
Kupnja svih modela telefona za testiranje praktički nije moguća jer bi koštala puno. Stoga je upotreba emulatora najbolja opcija jer se ne naplaćuje, a očite greške u korisničkom sučelju lako se love na emulatorima.
iOS automatizacija
a) Ispitivanje regresije:
U neprekidnom okruženju neprestano se rade promjene radi poboljšanja aplikacije ili rješavanja problema koji su pronađeni u prethodnoj verziji. Tijekom provođenja promjena, postoji šansa da promjene izvršene u aplikaciji mogu izmijeniti postojeću funkcionalnost.
Jednostavno rečeno, izvršene promjene mogu uvesti novi skup problema u aplikaciji.
Da bi se provjerilo radi li aplikacija na isti način čak i nakon uvođenja promjena, mora se izvršiti regresijsko testiranje. A kako se radi o ponavljajućoj aktivnosti, automatizacija dobro dođe za ovu vrstu probnog rada.
b) BVT ispitivanje:
Dobar je običaj pokretanje automatiziranog paketa na novoj gradnji objavljenom za testiranje, jer štedi puno vremena, a ako se osnovne funkcije sruše, odmah se izvještava. U usporedbi s ručnim naporima, rezultati automatiziranih osnovnih provjera verifikacije za prihvaćanje ili odbijanje izrade mogu se uzeti za nekoliko minuta.
c) Ispitivanje kompatibilnosti:
Kao što je već rečeno, Apple ima brojne uređaje / vrste. Točnije, na tržištu postoji 15 različitih vrsta iPhonea, 6 iPod Touch modela, 10 iPad modela i 2 iPad Pro modela.
Sada, kada se razvije aplikacija poput naše (aplikacija za prikupljanje sredstava za sportski tim), trebali bi je podržati svi gore navedeni uređaji. To podrazumijeva jedno: Svi testni slučajevi trebaju se pokrenuti na svim tim uređajima.
Sada ručni napor nije moguć kad je ovoliki broj uređaja ogroman. Radi kompatibilnosti poželjno je ispitivanje automatizacije.
d) Ispitivanje izvedbe:
Neki od onih koji su testirani u testiranju performansi su:
- Kako se aplikacija ponaša kad je operativna ili radi jako dugo. Tijekom operativnog razdoblja neka aplikacija komunicira / komunicira / ostane neaktivna.
- Svaki put se mora izvesti ista operacija s različitom količinom tereta.
- Kako se sustav ponaša kad je prijenos podataka zaista ogroman.
Ovi se slučajevi ponavljaju i uglavnom se rade pomoću automatizacije.
Najbolji primjeri iz prakse za testiranje iOS aplikacija
Testiranje iOS aplikacija može biti teško, nezgodno i izazovno ako se ne izvede ispravno.
Da bi se testiranje iOS aplikacije pokrenulo u pravom smjeru, mogu se primijeniti sljedeće prakse:
# 1) Zaboravite emulatore: U većini slučajeva emulatori se preferiraju u odnosu na stvarne uređaje. Ali, to nije idealan slučaj. Stvari poput korisničkih interakcija, potrošnje baterije, dostupnosti mreže, performansi u korištenju, raspodjele memorije ne mogu se testirati na emulatorima. Dakle, pokušajte cijelo vrijeme testirati na stvarnim uređajima.
# 2) Automatizirajte stvari, a ne ručno: Koliko brzo izvršavate određeni zadatak? U današnjem svijetu svi su uglavnom zabrinuti za provedeno vrijeme. Automatizacija ne samo da smanjuje vrijeme izvršenja već i povećava učinkovitost, učinkovitost i pokrivenost testiranja softvera.
# 3) Podijelite posao: Podijelite testiranje s timovima, uključujući razvojni tim. Možemo dobiti pomoć u pogledu ručnog izvršavanja testnih slučajeva, kao i pomoć razvojnog tima u pogledu automatizacije ručnih testnih slučajeva.
# 4) Uhvatite zapisnike rušenja: Aplikacija za iOS možda se zamrzava ili ruši pod određenim okolnostima. Da bi riješili problem, dnevnici padova igraju vitalnu ulogu.
Sljedeći koraci mogu se izvesti za hvatanje dnevnika rušenja:
- Za MacOS:
- Sinkronizirajte iOS uređaj s računalom (Mac).
- Za Mac OS držite tipku Option da biste otvorili traku izbornika.
- Idite na Izbornik Idi i kliknite na Knjižnica.
- Idite na ~ / Library / Logs / CrashReporter / MobileDevice //.
- Naziv datoteke dnevnika trebao bi počinjati s imenom aplikacije.
- Za OS Windows:
- Sinkronizirajte iOS uređaj s računalom (Windows).
- Dođite do C: Users AppData Roaming Applecomputer Logs CrashReporter MobileDevice \
- Naziv datoteke dnevnika trebao bi počinjati s imenom aplikacije.
# 5) Snimanje dnevnika konzole:
Dnevnici konzole daju ukupne informacije o aplikacijama na iOS uređaju.
To se može učiniti pomoću alata poput iTools. U aplikaciji iTools kliknite ikonu 'Toolbox' kad je iOS uređaj povezan sa sustavom na kojem je pokrenut iTools. Klikom na 'Real-Time log' prikazat će se dnevnik konzole u stvarnom vremenu.
# 6) Snimanje zaslona: Postaje lako razumjeti problem i stoga ga je lako popraviti ako su koraci vizualni.
Preporučljivo je snimiti zaslon ili napraviti snimke zaslona problema kako bi ih razvojni tim bolje razumio. Snimak zaslona možete snimiti pomoću ugrađene značajke pritiskom na tipke za napajanje i početni zaslon.
Snimanje zaslona može se izvršiti pomoću Quick Time Player snimanja dok je iOS uređaj spojen na Mac pomoću munjevitog kabela.
iOS automatizacijski okviri
U nastavku su navedeni neki od najčešće korištenih okvira automatizacije:
# 1) epohe;
Appium koristi selenium web upravljački program za automatizaciju testiranja iOS aplikacija.
Ova je platforma neovisna i može se koristiti i na webu i na mobilnim uređajima (i Android i iOS). Ovo je otvoreni izvor i nije ograničeno jezikom. Promjene aplikacije ili pristup izvornom kodu nisu potrebni za automatizaciju korištenja Appiuma.
Appium djeluje neovisno o tipu aplikacije: bio on, izvorni, hibridni ili web.
# 2) Calabash:
Calabash je okvir otvorenog koda za više platformi koji podržava testiranje automatizacije za Android i iOS.
Kalabaš testovi napisani su na krastavcu koji je sličan onome u specifikaciji i jednostavan je za razumijevanje. Calabash se sastoji od knjižnica koje omogućuju korisniku interakciju s izvornim i hibridnim aplikacijama. Podržava interakcije kao što su geste, tvrdnje, snimka zaslona itd.
# 3) Earl Gray:
Earl Gray je Googleov vlastiti interni okvir za testiranje korisničkog sučelja. Ovo je korišteno za testiranje YouTubea, Google fotografija, Google Play glazbe, Google kalendara itd.
Earl Gray nedavno je napravljen otvorenim kodom. Neke od glavnih prednosti Earl Greya su, ugrađena sinkronizacija, provjere vidljivosti prije interakcija, istinska korisnička interakcija (tapkanje, prevlačenje itd.). Ovo je vrlo slično Espressu od Googlea koji se koristi za automatizaciju korisničkog sučelja za Android.
kako ažurirati Windows 10 bios -
# 4) Automatizacija korisničkog sučelja:
UI Automation razvio je Apple i vrlo je sličan UI Automatoru za Android. API-je definira Apple, a testovi su napisani na JAVA-i.
# 5) KAKO:
KIF je kratica za naziv „Neka bude funkcionalan“. Ovo je okvir otvorene kode treće strane.
Ovo je testni okvir integracije iOS-a koji je usko povezan i koristi se za XCTest ispitne ciljeve. KIF je jednostavno konfigurirati ili integrirati s projektom Xcode, pa stoga nisu potrebni dodatni web poslužitelj ili dodatni paketi. KIF ima široku pokrivenost u pogledu iOS verzija.
Zaključak
Testiranje iOS aplikacija može biti najzahtjevniji zadatak. Nadam se da ste kroz ovaj članak dobro razumjeli testiranje iOS aplikacija.
Međutim, odabirom pravog pristupa, najboljim mogućim postupkom testiranja, metodologijama, alatima, emulatorima / uređajima itd. Učinit će testiranje iOS aplikacija vrlo uspješnim.
Naš predstojeći vodič će vam predstaviti sve osnovne koncepte u koje je uključen Vodič za testiranje Android aplikacija .
Preporučena literatura
- Najbolji alati za testiranje softvera 2021. (Alati za automatizaciju ispitivanja kvalitete)
- Vodič za ispitivanje prenosivosti s praktičnim primjerima
- Alfa testiranje i beta testiranje (cjelovit vodič)
- Funkcionalno ispitivanje vs nefunkcionalno testiranje
- Napravite Appium Test za iOS aplikaciju
- Testiranje e-knjige za preuzimanje priručnika
- Što je rano testiranje: testirajte rano, često testirajte, ALI kako? (Praktični vodič)
- Tutoriali za testiranje mobilnih aplikacija (cjelovit vodič s više od 30 vodiča)