Vodič za testiranje iOS aplikacija
⚡ Pametni sažetak
Testiranje iOS aplikacija provjerava instalira li se, izvodi li se i ponaša li se ispravno aplikacija na Apple uređajima. Kombinira ručne tehnike s automatiziranim okvirima poput XCTesta i XCUITesta kako bi se rano otkrili rušenja, nekompatibilnosti i curenje memorije.

Što je testiranje iOS aplikacije?
Testiranje iOS aplikacije je proces testiranja u kojem se iOS aplikacija testira na stvarnim Apple uređajima kako bi se provjerilo radi li prema očekivanjima ili ne za određene radnje korisnika kao što su vrijeme instalacije, korisničko sučelje, korisničko iskustvo, izgled, ponašanje, funkcionalnost, vrijeme učitavanja, performanse, aplikacija Unos u trgovini, podrška za verziju OS-a itd.
Zašto testiranje iOS aplikacija?
Testiranje iOS aplikacije je potreban jer je iOS Appleova platforma za mobilne aplikacije, prvi put objavljena 29. lipnja 2007. Za razliku od AndroidApple ne licencira iOS za instalaciju na hardver koji nije Appleov. iOS i iOS aplikacije mogu se instalirati samo na Apple uređaje; stoga vaša iOS aplikacija mora biti kompatibilna s verzijama iOS-a i iOS uređajima koje vaši korisnici posjeduju.
Donja slika prikazuje uobičajena pitanja s kojima se programeri suočavaju prilikom izrade iOS aplikacije.
Nije važno koliko vremena uložite u dizajn i implementaciju; pogreške su neizbježne i bugovi će se pojaviti. Donja slika prikazuje neke uobičajene bugove u iOS aplikacijama.
Rušenje aplikacije
Jedan od najfrustrirajućih problema pri korištenju Appleovih uređaja jest taj što se aplikacija često ruši tijekom izvršavanja. Često se aplikacija ruši zbog grešaka ili curenja memorije u kodu.
Nekompatibilnosti aplikacije
Vaša iOS aplikacija može savršeno raditi na trenutnoj verziji iOS-a, ali ako se iOS nadogradi, možda neće raditi zbog problema s nekompatibilnošću.
Sigurnosna ranjivost
Sigurnosna ranjivost u iOS-u omogućuje hakeru napad na vaše iOS uređaje i krađu vaših privatnih podataka. Tijekom godina otkrivene su ozbiljne sigurnosne ranjivosti iPhonea u različitim verzijama iOS-a.
Propuštanje memorije
Curenje memorije blokovi su dodijeljene memorije koje program više ne koristi. Curenje memorije uzrokuje rušenje vaše iOS aplikacije.
To su greške i uvijek ih treba popraviti.
iOS testiranje MindMapa
Kao što je prikazano na gornjoj slici, iOS Ispitivanje MindMap prikazuje sve stavke koje tester treba uzeti u obzir prilikom testiranja na iOS-u.
Kontrolni popis za testiranje iOS aplikacija
Ovaj kontrolni popis posebno je osmišljen za testiranje karakteristika mobilnih aplikacija za iOS. Očito je da testira samo generičke karakteristike aplikacije, a ne funkcionalnost aplikacije.
- Provjerite vrijeme instalacije aplikacije na uređaj. Provjerite je li aplikacija instalirana u prihvatljivom vremenu.
- Nakon što je aplikacija instalirana, provjerite ima li aplikacija ikonu i naziv aplikacije. Također, provjerite jesu li i ikona i naziv jasni sami po sebi i odražavaju li osnovnu namjenu aplikacije.
- Pokrenite aplikaciju i provjerite prikazuje li se početni zaslon.
- Provjerite vrijeme čekanja za početni zaslon i vrijeme potrebno za učitavanje početnog zaslona. Početni zaslon aplikacije trebao bi se učitati u prihvatljivom vremenu. Ako početni zaslon predugo traje za učitavanje, veća je vjerojatnost da će korisnik zatvoriti ili čak deinstalirati samu aplikaciju. Također, provjerite kako se sadržaj učitava na početnom zaslonu.
- Glavna funkcija aplikacije trebala bi biti vidljiva odmah. Trebao bi govoriti sam za sebe.
- Provjerite podržava li aplikacija i pejzažnu i portretnu orijentaciju. Ako je tako, provjerite aplikaciju u obje orijentacije. Korisničko sučelje aplikacije trebalo bi se prilagoditi u skladu s tim.
- Bez internetske veze pokrenite aplikaciju. Provjerite ponaša li se aplikacija kako je zamišljeno/željeno. Postoji mogućnost da se aplikacija sruši prilikom pokretanja ili da samo prikaže prazan zaslon.
- Ako aplikacija koristi usluge lokacije, provjerite prikazuje li se upozorenje o dopuštenju lokacije ili ne. Ovo upozorenje treba se korisniku prikazati samo jednom.
- Ako aplikacija šalje push obavijesti, provjerite prikazuje li se upozorenje o dopuštenju za push obavijesti ili ne. Ovo upozorenje također bi trebalo biti prikazano korisniku samo jednom.
- Pokrenite aplikaciju, zatvorite je i ponovno pokrenite. Provjerite ponaša li se aplikacija kako je zamišljeno/željeno.
- Zatvorite aplikaciju dodiromping gumb Početna na uređaju i ponovno otvorite aplikaciju. Provjerite radi li aplikacija kako je zamišljeno/željeno.
- Nakon instalacije provjerite je li aplikacija navedena u postavkama iPhonea.
- Nakon što je aplikacija objavljena, provjerite može li se pronaći u "App Storeu". Postoje podržane verzije operativnih sustava za aplikaciju. Stoga provjerite može li se aplikacija pronaći u "App Storeu" uređaja na podržanim verzijama operativnih sustava. Također, aplikacija ne bi trebala biti navedena u "App Storeu" uređaja na nepodržanim verzijama operativnih sustava.
- Provjerite ide li aplikacija u stanje mirovanja kada radi u pozadini kako biste spriječili pražnjenje baterije.
- Ako je izvedba aplikacije spora ili kad god se sadržaj učitava, provjerite postoji li ikona statusa napretka ("Učitavanje..."), po mogućnosti s određenom porukom.
- Pretražite aplikaciju prema njenom nazivu u traci za pretraživanje uređaja. Provjerite je li aplikacija navedena
- Provjerite je li izgled gumba koji izvršavaju standardne radnje promijenjen u aplikaciji (na primjer: osvježi, organiziraj, premjesti u smeće, odgovori, natrag itd.).
- Provjerite koriste li se standardne tipke za funkcije koje nisu one za koje se inače koriste
Strategija testiranja iOS-a
Nakon što znate što provjeriti, sljedeći korak je kako to testirati. Donja slika prikazuje neke uobičajene vrste strategija testiranja iOS-a.
Automatizirano testiranje
Automatizirano testiranje jedna je od najvećih prednosti iOS testiranja. Omogućuje vam brzo otkrivanje grešaka i problema s performansama. Prednosti automatiziranog testiranja prikazane su u nastavku:
- Automatizirano testiranje može se izvoditi na više uređaja, štedeći vaše vrijeme
- Automatizirano testiranje može ciljati SDK-ove. Možete provoditi testove na različitim verzijama SDK-a.
- Automatizirano testiranje povećava produktivnost testiranja i štedi troškove razvoja softvera
- Postoji mnogo okvira za testiranje otvorenog koda koji podržavaju automatizirano testiranje na iOS-u.
Jedinično testiranje s OCUnitom
Kad je originalni iOS SDK objavljen, nedostajalo je Ispitivanje jedinice mogućnosti. Tako je Apple donio OCUnit rješenje za jedinično testiranje u iOS SDK verziji 2.2.
OCUnit je bio okvir za testiranje Objective-C-a na Macu (sada macOS). Najveća prednost OCUnit okvira bila je njegova čvrsta integracija u Xcode razvojno okruženje, kao što je prikazano u nastavku.
Bilješka: OCUnit (SenTestingKit) je zastario; od Xcode 5, Appleov XCTest Framework ga je zamijenio kao standard - pogledajte odjeljak XCTest u nastavku. Snimke zaslona ovdje prikazuju stariji Xcode verzija.
Neke od prednosti OCUnita prikazane su na slici ispod.
Testiranje korisničkog sučelja s UIAutomation
UI automatizacija je bila JavaScript biblioteka koju pruža Apple Inc., a koja se može koristiti za izvođenje automatiziranih testova na stvarnim uređajima i na iOS simulatoru. Ovaj okvir je dodan u iOS SDK 4.0. Pomoću UI automatizacije možete automatizirati testiranje aplikacije ne samo na simulatoru već i na stvarnom uređaju.
Bilješka: Apple je ukinuo automatizaciju korisničkog sučelja u Xcode 8 (2016.) i kasnije su ga uklonili. Koristite XCUITest za nove projekte testiranja korisničkog sučelja; klase i snimke zaslona u nastavku odražavaju stariji niz alata.
UIAutomation je donio sljedeće prednosti:
- Smanjeni napor na Ručno ispitivanje
- Potrebno je manje truda za izvršavanje svih vaših testova
- Pojednostavljen postupak testiranja korisničkog sučelja (pritisnite nekoliko gumba i pokrenite sve svoje testne pakete)
Instrument UIAutomation radio je iz skripti napisanih u JavaSkripta. Simulirala je korisničke događaje na ciljnoj iOS aplikaciji.
Prednosti i nedostaci UIAutomationa
| Prednosti | Nedostaci | |
|---|---|---|
| 1. | Dobra podrška za geste i rotaciju | Nije otvorenog koda, manje podrške od programera |
| 2. | Može pokretati UIAutomation testove na uređaju, ne samo na simulatoru. | Ne može se vrlo dobro integrirati s drugim alatima |
| 3. | Razvijeno u JavaSkripta, popularan programski jezik. |
Gornja slika predstavlja neke uobičajene klase u UIAutomation okviru.
- The UIAElement klasa je super klasa za sve elemente korisničkog sučelja u kontekstu automatizacije
- The UIATarget klasa predstavlja elemente korisničkog sučelja visoke razine sustava koji se testira
- The UIALogger klasa pruža informacije o testu i pogrešci o funkciji dohvaćanja
- The UIAActivityView klasa omogućuje pristup i kontrolu prikaza aktivnosti unutar vaše aplikacije.
- The UIAActionSheet klasa omogućuje pristup i kontrolu akcijskih listova unutar vaše aplikacije.
- korisnik Radnja događaja
- UISlider klasa
- Klasa UIAButton
- Klasa UIAKey
- Klasa tipkovnice UIA
Ostali okviri za automatsko testiranje
- Frank: Automatizirano Prihvaćanje testa okvir za iPhone i iPad (više se aktivno ne održava)
- KIF: je iOS integracijski test okvir. Omogućuje jednostavnu automatizaciju iOS aplikacija iskorištavanjem atributa pristupačnosti koje OS čini dostupnima osobama s oštećenjima vida.
- Appium: popularan otvoreni kod, cross-platforma okvir koji automatizira iOS aplikacije putem Appleovog XCUITest upravljačkog programa
XCTest i XCUITest: Appleovi moderni okviri za testiranje
OCUnit i UIAutomation su važna povijest, ali oba su sada umirovljena. Apple je zamijenio OCUnit s XCTest in Xcode 5 (2013.) i zastarjeli UIAutomation u Xcode 8 (2016.) u korist XCUITest, komponenta za testiranje korisničkog sučelja XCTesta. To su testni okviri koje Apple isporučuje i podržava u svakoj trenutnoj verziji Xcode.
S XCTestom pišete jedinične testove u Swift ili Objective-C i pokrenuti ih iz Xcode Testni Navigator xcodebuild komandne linije, na simulatoru ili na stvarnim uređajima. XCUITest vodi vašu aplikaciju kroz sloj pristupačnosti, tako da se UI testovi ponašaju slično kao stvarni korisnik.
| Naslijeđeni okvir | Moderna zamjena | Što se promijenilo |
|---|---|---|
| OCUnit (SenTestingKit) | XCTest | Isti koncepti jediničnog testiranja, sada ugrađeni u svaki Xcode predložak projekta |
| UIAutomation (JavaSkripta) | XCUITest | UI testovi su napisani u Swift ili Objective-C umjesto JavaScript |
💡 Savjet: Višeplatformski alati kao što su Appium automatizirajte iOS putem XCUITesta ispod haube, tako da se te vještine izravno prenose.
Ručno testiranje
Automatizacija donosi brzinu, ali ručne tehnike u nastavku dodaju ljudsku prosudbu koju skripte ne mogu pružiti.
Istraživačko ispitivanje
To je testiranje bez formalnog plana testiranja. Istraživačko testiranje je jeftina metoda testiranja, ali može previdjeti potencijalne greške u vašoj iOS aplikaciji.
Eksploratorno testiranje Protiv naspram prednosti
| Prednosti | Nedostaci | |
|---|---|---|
| 1. | Less potrebna je priprema; ozbiljni bugovi se otkrivaju rano. | Zahtijeva visoku vještinu ispitivača |
| 2. | Ne Plan testiranja je potrebno, što ubrzava otkrivanje grešaka. | Pokrivenost testom je niska. Ne jamči da su svi vaši zahtjevi testirani. |
| 3. | Većina bugova rano se otkrije nekom vrstom istraživačkog testiranja | Nedostatak dokumentacije o ispitivanju |
Testiranje korisnika
Korisničko testiranje je vrsta ručnog testiranja na iOS-u. Svrha ovog testiranja nije samo stvaranje boljih aplikacija bez grešaka aplikacije. Donja slika prikazuje četiri vrste korisničkog testiranja.
Testiranje koncepta
Procijenite reakciju korisnika na ideju aplikacije prije njenog puštanja na tržište. Postupci testiranja koncepta na iOS-u opisani su na slici ispod.
Ispitivanje upotrebljivosti
Ispitivanje upotrebljivosti je test koliko je jednostavno koristiti vašu iOS aplikaciju. U iOS testiranju, test upotrebljivosti može biti zabilježio zapamtiti ili podijeliti s drugima.
Neki alati koji podržavaju testiranje upotrebljivosti na iOS-u su:
Trymata aplikacije za testiranje mobilnih korisnika Android i iOS.
Oduševljenje.io, ovaj alat može snimiti stvarnu interakciju korisnika na vašim iOS aplikacijama.
Beta testiranje
Beta testiranje je integracijsko testiranje sa stvarnim podacima kako biste dobili konačne povratne informacije od korisnika. Da biste distribuirali svoje aplikacije za beta testiranje, morate slijediti korake u nastavku.
-Pre-uređaj: Ako testirate beta verziju konačnog kandidata za izdanje, provjerite valjanost aplikacije prije nego što je distribuirate testerima.
-Pronađite testera putem servisa: prikupljate ID-ove uređaja od testera i dodajete ih na svoj Apple Developer račun
-Stvorite ad-hoc distribucijuAd Hoc distribucija omogućuje testeru da pokrene vašu aplikaciju na svom uređaju bez potrebe Xcode. Ovaj korak uključuje 2 pod-koraka
- Stvorite distribucijske certifikate
- Stvorite Ad-hoc profile za pružanje usluga
-Traži povratne informacije od ispitivača: Testeri provode testiranje i šalju vam izvješća o greškama. Nakon što vaša aplikacija bude objavljena, izvješća možete dobiti od App Store Connect (ranije iTunes Poveži se).
Bilješka: Danas većina timova distribuira beta verzije s TestFlight, što vam omogućuje da pozovete do 10 000 vanjskih testera bez ručnog prikupljanja ID-ova uređaja.
A / B testiranje
A / B testiranje jedan je od najmoćnijih načina za procijenite učinkovitost vaše iOS aplikacije, Koristi randomizirani eksperimenti s dva uređaja, A i B.
A/B testiranje uključuje tri glavna koraka
- Konfigurirajte testPripremite 2 verzije svoje iOS aplikacije (A i B) i testnu metriku
- testIstovremeno testirajte dvije gore navedene verzije iOS aplikacije na uređajima.
- AnaliziratiIzmjerite i odaberite bolju verziju za objavu
Sljedeći alati podržavaju A/B testiranje na iOS-u.
- Ustani: A/B testiranje za iOS i AndroidMože se integrirati u vašu iOS aplikaciju i ubrzava proces testiranja.
Najbolje prakse za A/B testiranje
- Definirajte meta vašeg testa. Svaki test je beskoristan bez cilja.
- Gledaj krajnji korisnici koriste vašu aplikaciju prvi put
- trčanje jedan testirajte samo po ažuriranju. Štedi vam vrijeme prilikom provođenja testiranja
- Praćenje Pažljivo proučite svoj test. Iz testa možete učiti prateći ga.
iOS testiranje Najbolja praksa
Evo nekoliko savjeta koje biste trebali znati kada organizirate testiranje svoje iOS aplikacije
- Testirajte aplikaciju na a pravi uređaj kako bi se dobila realna slika performansi
- Poboljšati vaše metode testiranja, jer tradicionalne metode testiranja više nisu dovoljne za pokrivanje svih testova u iOS testiranju
- Koristite dnevnik konzole za testiranje iOS aplikacije. Ova iOS značajka uključuje informacije iz svake aplikacije na uređaju.
- dokument greške u aplikacijama koje koriste ugrađena snimka zaslona naredba. Pomaže programeru da shvati kako se greške javljaju.
- Izvještavanje o padu Alati su korisni prilikom testiranja vaše aplikacije. Mogu otkriti padove i zabilježiti detalje kako biste mogli lako istražiti greške.
MITOVI o iOS testiranju
Ovaj odjeljak ispituje nekoliko popularnih mitova i stvarnosti testiranja iOS-a
Testiranje aplikacija na iOS-u i Android je ista stvar.
iOS i Android su dvije platforme koje je razvio Apple Inc. i Google respektivno. Potpuno se razlikuju u testnim okruženjima, testnim okvirima i programskim jezicima.
Dovoljno je testirati aplikaciju na iOS simulatoru.
iOS Simulator nije dovoljno jak za testiranje aplikacije jer ima neka ograničenja:
- Hardverska ograničenja (kamera, ulaz za mikrofon, senzor)
- Može se činiti da korisničko sučelje vaše aplikacije radi brže i lakše nego na uređaju
- API ograničenja
- Neki okviri nisu podržani (Media Player, Store Kit, Message UI..)
Svi će preuzeti moje aplikacije s App Storea jer imaju mnogo značajki
Što više značajki vaša aplikacija ima, to više grešaka možete dobiti. Nijedan korisnik neće preuzeti vašu aplikaciju ako još uvijek ima mnogo nedostataka.

.png)











