Vejledning til test af iOS-apps
โก Smart opsummering
iOS App Testing verificerer, at en applikation installeres, fungerer og opfรธrer sig korrekt pรฅ Apple-enheder. Den kombinerer manuelle teknikker med automatiserede frameworks som XCTest og XCUITest for at opdage nedbrud, inkompatibiliteter og hukommelseslรฆkager tidligt.

Hvad er iOS App Testing?
iOS app test er en testproces, hvor en iOS-applikation testes pรฅ rigtige Apple-enheder for at kontrollere, om den fungerer som forventet eller ej for specifikke brugerhandlinger som installationstid, brugergrรฆnseflade, brugeroplevelse, udseende, adfรฆrd, funktionalitet, indlรฆsningstid, ydeevne, app Butiksfortegnelse, understรธttelse af OS-version osv.
Hvorfor iOS-apptestning?
iOS app test er pรฅkrรฆvet, fordi iOS er Apples platform til mobilapplikationer, der fรธrst blev udgivet den 29. juni 2007. I modsรฆtning til AndroidApple licenserer ikke iOS til installation pรฅ hardware, der ikke er fra Apple. iOS og iOS-applikationer kan kun installeres pรฅ Apple-enheder; derfor skal din iOS-app vรฆre kompatibel med de iOS-versioner og iOS-enheder, dine brugere ejer.
Figuren nedenfor viser almindelige spรธrgsmรฅl, som udviklere stรฅr over for, nรฅr de opretter en iOS-applikation.
Det er ligegyldigt, hvor meget tid du investerer i design og implementering; fejl er uundgรฅelige, og der vil opstรฅ fejl. Figuren nedenfor viser nogle almindelige fejl i iOS-applikationer.
Applikationen gรฅr ned
Et af de mest frustrerende problemer ved brug af Apples enheder er, at en applikation ofte gรฅr ned under kรธrsel. Ofte gรฅr appen ned pรฅ grund af fejl eller hukommelseslรฆkager i koden.
Ansรธgningsinkompatibiliteter
Din iOS-applikation kรธrer muligvis perfekt pรฅ den nuvรฆrende iOS-version, men hvis iOS opgraderes, fungerer den muligvis ikke pรฅ grund af kompatibilitetsproblemer.
Sikkerhedssรฅrbarhed
En sikkerhedssรฅrbarhed i iOS giver en hacker mulighed for at angribe dine iOS-enheder og stjรฆle dine private oplysninger. Gennem รฅrene er der blevet opdaget alvorlige sikkerhedssรฅrbarheder i forskellige iOS-versioner pรฅ iPhones.
Hukommelse lรฆkker
Hukommelseslรฆkager er blokke af allokeret hukommelse, som programmet ikke lรฆngere bruger. Hukommelseslรฆkager fรฅr din iOS-applikation til at gรฅ ned.
De er fejl og bรธr altid rettes.
iOS tester MindMap
Som vist pรฅ figuren ovenfor, iOS Test MindMap viser alle de punkter, som en tester bรธr overveje, nรฅr de udfรธrer test pรฅ iOS.
Tjekliste til iOS-applikationstest
Denne tjekliste er specifikt designet til at teste karakteristikaene for iOS-mobilapplikationer. Den tester naturligvis kun generiske applikationskarakteristika og ikke appens funktionalitet.
- Kontrollรฉr den installationstid, det tager for applikationen at installere pรฅ enheden. Sรธrg for, at applikationen installeres inden for en acceptabel tid.
- Nรฅr applikationen er installeret, skal du kontrollere, om applikationen har et appikon og navn. Sรธrg ogsรฅ for, at bรฅde ikon og navn er selvforklarende og afspejler applikationens kernehensigt.
- Start applikationen, og kontroller, om der vises en velkomstskรฆrm.
- Kontroller timeout for startskรฆrmen og den tid, det tager at indlรฆse startskรฆrmen. Applikationens startskรฆrm bรธr indlรฆses inden for en acceptabel tid. Hvis startskรฆrmen tager for lang tid at indlรฆse, er der stรธrre chance for, at brugeren afslutter eller endda afinstallerer selve applikationen. Kontroller ogsรฅ, hvordan indholdet indlรฆses pรฅ startskรฆrmen.
- Applikationens hovedfunktion skal vรฆre tydelig med det samme. Det burde tale for sig selv.
- Tjek om appen understรธtter bรฅde liggende og stรฅende format. Hvis det er tilfรฆldet, sรฅ tjek appen i begge formater. Applikationens brugergrรฆnseflade burde justeres i overensstemmelse hermed.
- Start applikationen uden en internetforbindelse. Sรธrg for, at appen fungerer som designet/รธnsket. Der er en risiko for, at applikationen gรฅr ned ved opstart eller blot viser en tom skรฆrm.
- Hvis applikationen bruger lokationstjenester, skal du kontrollere, om alarmen om lokationstilladelse vises eller ej. Denne alarm bรธr kun vises til brugeren รฉn gang.
- Hvis applikationen sender push-notifikationer, skal du kontrollere, om tilladelsesalarmen for push-notifikationer vises eller ej. Denne alarm bรธr ogsรฅ kun vises til brugeren รฉn gang.
- Start applikationen, luk den, og genstart den. Kontroller, om appen opfรธrer sig som designet/รธnsket.
- Luk applikationen ved at trykke pรฅping Tryk pรฅ enhedens hjem-knap, og รฅbn appen igen. Kontroller, om appen fungerer som designet/รธnsket.
- Nรฅr appen er installeret, skal du kontrollere, om den er angivet i iPhones indstillinger.
- Nรฅr applikationen er udgivet, skal du kontrollere, om den kan findes i "App Store". Der vil vรฆre understรธttede OS-versioner til applikationen. Sรธrg derfor for, at applikationen kan findes i "App Store" for enheder med understรธttede OS-versioner. Applikationen bรธr heller ikke vรฆre angivet i "App Store" for enheder med ikke-understรธttede OS-versioner.
- Kontroller, om applikationen gรฅr i dvaletilstand, nรฅr den kรธrer i baggrunden, for at forhindre batteriafladning.
- Hvis applikationens ydeevne er langsom, eller nรฅr indholdet indlรฆses, skal du kontrollere, om der er et statusikon for status ("indlรฆser..."), helst med en specifik meddelelse.
- Sรธg efter appen med dens navn i enhedens sรธgefelt. Kontroller, om appen er pรฅ listen.
- Tjek om udseendet af knapper, der udfรธrer standardhandlinger, ikke รฆndres i appen (f.eks.: opdater, organiser, papirkurv, svar, tilbage osv.)
- Kontroller, om standardknapper ikke bruges til andre funktioner end dem, de normalt bruges til
iOS teststrategi
Nรฅr du ved, hvad du skal kontrollere, er nรฆste trin, hvordan du tester det. Figuren nedenfor introducerer nogle almindelige typer iOS-teststrategier.
Automatiseret test
Automatiseret testning er en af โโde stรธrste fordele ved iOS-testning. Det gรธr det muligt hurtigt at opdage fejl og ydeevneproblemer. Fordelene ved automatiseret testning er vist nedenfor:
- Automatiseret test kan kรธre pรฅ flere enheder, hvilket sparer din tid
- Automatiseret testning kan mรฅlrettes mod SDK'er. Du kan kรธre tests pรฅ forskellige SDK-versioner
- Automatiseret testning รธger din testproduktivitet og sparer softwareudviklingsomkostninger
- Der findes mange open source-testframeworks, der understรธtter automatiseret testning pรฅ iOS.
Enhedstest med OCUnit
Da den originale iOS SDK blev frigivet, manglede den Enhedstest muligheder. Sรฅ Apple bragte OCUnit enhedstestlรธsning i iOS SDK version 2.2.
OCUnit var et testframework til Objective-C pรฅ Mac (nu macOSDen stรธrste fordel ved OCUnit-frameworket var dets tรฆtte integration i Xcode udviklingsmiljรธ, som vist nedenfor.
Bemรฆrk: OCUnit (SenTestingKit) er udfaset; siden Xcode 5, Apples XCTest framework har erstattet det som standarden โ se XCTest-afsnittet nedenfor. Skรฆrmbilleder her viser et รฆldre Xcode version.
Nogle af fordelene ved OCUnit er vist i figuren nedenfor.
UI-test med UIAutomation
UI-automatisering var en JavaScript bibliotek leveret af Apple Inc., som kunne bruges til at udfรธre automatiserede tests pรฅ rigtige enheder og pรฅ iOS Simulator. Dette framework blev tilfรธjet i iOS SDK 4.0. Ved hjรฆlp af UI Automation kunne du automatisere test af applikationen ikke kun pรฅ simulatoren, men ogsรฅ pรฅ en rigtig enhed.
Bemรฆrk: Apple udfasede UI-automatisering i Xcode 8 (2016) og fjernede den senere. Brug XCUITest til nye UI-testprojekter; klasserne og skรฆrmbillederne nedenfor afspejler den รฆldre vรฆrktรธjskรฆde.
UIAutomation medfรธrte disse fordele:
- Reduceret indsats pรฅ Manuel testning
- Krรฆvede mindre indsats for at udfรธre alle dine tests
- Forenklede UI-testproceduren (tryk pรฅ et par knapper, og kรธr dine fulde testpakker)
UIAutomation-instrumentet fungerede ud fra scripts skrevet i JavaScript. Det simulerede brugerhรฆndelser pรฅ den pรฅgรฆldende iOS-applikation.
Ulemper vs. fordele ved UIAutomation
| FORDELE | ULEMPER | |
|---|---|---|
| 1. | God stรธtte til gestus og rotation | Det er ikke open source, mindre stรธtte fra udvikleren |
| 2. | Kan kรธre UIAutomation-tests pรฅ enheden, ikke kun pรฅ simulatoren. | Kan ikke integreres med andre vรฆrktรธjer sรฆrlig godt |
| 3. | Udviklet i JavaScript, et populรฆrt programmeringssprog. |
Ovenstรฅende figur reprรฆsenterer nogle almindelige klasser i UIAutomation-frameworket.
- UIAElement klasse er superklassen for alle brugergrรฆnsefladeelementer i forbindelse med automatiseringen
- UIATarget klasse reprรฆsenterer brugergrรฆnsefladeelementerne pรฅ hรธjt niveau i det system, der testes
- UIALogger klasse giver test- og fejlinformation om genfindingsfunktionalitet
- UIActivityView klasse giver adgang til og kontrol over aktivitetsvisninger i din app.
- UIAAactionSheet klasse giver adgang til og kontrol over handlingsark i din app.
- Bruger Begivenhedshandling
- UISlider klasse
- UIAButton klasse
- UIAKรธgle klasse
- UIAKeyboard klasse
Andre automatiserede testrammer
- ร ben: Automatiseret Acceptance Test framework til iPhone og iPad (vedligeholdes ikke lรฆngere aktivt)
- KIF: er en iOS integrationstest rammer. Det giver mulighed for nem automatisering af iOS-apps ved at udnytte de tilgรฆngelighedsattributter, som OS gรธr tilgรฆngelige for dem med synshandicap.
- Appiumen populรฆr open source, cross-platform et framework, der automatiserer iOS-apps via Apples XCUITest-driver
XCTest og XCUITest: Apples moderne testrammer
OCUnit og UIAutomation er vigtige historier, men begge er nu udgรฅet. Apple erstattede OCUnit med XCTest in Xcode 5 (2013) og udfasede UIAutomation i Xcode 8 (2016) til fordel for XCUIT Test, UI-testkomponenten i XCTest. Dette er de testframeworks, som Apple leverer og understรธtter i alle aktuelle versioner af Xcode.
Med XCTest skriver du enhedstests i Swift eller Objective-C og kรธr dem fra Xcode Testnavigatoren xcodebuild kommandolinjen, pรฅ simulatoren eller pรฅ rigtige enheder. XCUITest kรธrer din app gennem tilgรฆngelighedslaget, sรฅ brugergrรฆnsefladetests opfรธrer sig stort set som en rigtig bruger.
| รldre rammevรฆrk | Moderne udskiftning | Hvad รฆndrede sig |
|---|---|---|
| OCUnit (SenTestingKit) | XCTest | De samme enhedstestkoncepter, nu indbygget i alle Xcode projektskabelon |
| UIAutomation (JavaManuskript) | XCUIT Test | UI-tests er skrevet i Swift eller Objective-C i stedet for JavaScript |
๐ก Tip: Cross-platform vรฆrktรธjer som f.eks. Appium automatiser iOS via XCUITest under motorhjelmen, sรฅ disse fรฆrdigheder overfรธres direkte.
Manuel test
Automatisering bringer hastighed, men de manuelle teknikker nedenfor tilfรธjer menneskelig dรธmmekraft, som scripts ikke kan levere.
Undersรธgende test
Det er testning uden en formel testplan. Udforskende testning er en billig testmetode, men den kan overse potentielle fejl i din iOS-applikation.
Udforskende test Ulemper vs. Fordele
| FORDELE | ULEMPER | |
|---|---|---|
| 1. | Less forberedelse er nรธdvendig; alvorlige fejl opdages tidligt. | Krรฆver hรธj dygtighed af testeren |
| 2. | Ingen Testplan er nรธdvendig, hvilket fremskynder fejldetektering. | Testdรฆkningen er lav. Det garanterer ikke, at alle dine krav er testet. |
| 3. | De fleste fejl opdages tidligt ved en form for udforskende test | Manglende testdokumentation |
Bruger Testing
Brugertest er en type manuel test pรฅ iOS. Formรฅlet med denne test er at skabe bedre apps, ikke kun fejlfri apps. Figuren nedenfor viser fire typer brugertestning.
Koncepttest
Evaluer brugerens reaktion pรฅ en applikationsidรฉ, fรธr den frigives til markedet. Procedurerne for koncepttestning pรฅ iOS er beskrevet i figuren nedenfor.
Usability Testing
Usability Testing er en test af, hvor nemt det er at bruge din iOS-applikation. I iOS-testning kan en brugervenlighedstest udfรธres registreres at huske eller dele med andre.
Nogle vรฆrktรธjer, der understรธtter brugervenlighedstest pรฅ iOS, er:
Trymata mobile brugertest apps til Android og iOS.
Delight.io, kan dette vรฆrktรธj fange รฆgte brugerinteraktion pรฅ dine iOS-apps.
Betatestning
Beta-test er integrationstest med reelle data for at fรฅ endelig feedback fra brugerne. For at distribuere dine apps til betatestning skal du fรธlge nedenstรฅende trin.
-Pre-condition: Hvis du betatester en endelig kandidat til en udgivelse, skal du sรธrge for at validere appen, fรธr du distribuerer den til testere.
-Find tester via serviceDu indsamler enheds-id'er fra testere og tilfรธjer dem til din Apple Developer-konto
-Opret ad hoc distributionAd hoc-distribution giver testeren mulighed for at kรธre din app pรฅ sin enhed uden at skulle Xcode. Dette trin omfatter 2 undertrin
- Opret distributionscertifikater
- Opret ad-hoc-klargรธringsprofiler
-Bed om feedback fra testeren: Testere udfรธrer test og sender fejlrapporter til dig. Nรฅr din app er udgivet, kan du fรฅ rapporterne fra App Store Connect (tidligere iTunes Opret forbindelse).
Bemรฆrk: I dag distribuerer de fleste teams betaversioner med TestFlight, som giver dig mulighed for at invitere op til 10,000 eksterne testere uden at skulle indsamle enheds-id'er manuelt.
A / B-test
A / B-test er en af โโde mest kraftfulde mรฅder at evaluere effektiviteten af โโdin iOS-app. Det bruger randomiserede eksperimenter med to enheder, A og B.
A/B-test omfatter tre hovedtrin
- Konfigurer en testForbered 2 versioner af din iOS-app (A & B) og en testmetrik
- TestTest de 2 ovenstรฅende iOS-appversioner pรฅ enheder samtidigt.
- AnalyserMรฅl og vรฆlg den bedre version til udgivelse
Fรธlgende vรฆrktรธjer understรธtter A/B-testning pรฅ iOS.
- Opstรฅ: A/B-test til bรฅde iOS og AndroidDen kan integreres i din iOS-app og gรธr testprocessen hurtigere.
Bedste praksis for A/B-test
- Definer mรฅl af din test. Enhver test er ubrugelig uden et mรฅl.
- Ur slutbrugere bruger din app fรธrste gang
- Kรธr en kun test pr. opdatering. Det sparer dig tid, nรฅr du udfรธrer test
- Overvรฅg din test omhyggeligt. Du kan lรฆre af din test ved at overvรฅge den.
iOS test Bedste praksis
Her er nogle tips, du bรธr vide, nรฅr du organiserer testen af โโdin iOS-applikation
- Test applikationen pรฅ en รฆgte enhed for at fรฅ et realistisk billede af prรฆstationen
- Forbedre dine testmetoder, fordi traditionelle testmetoder ikke lรฆngere er tilstrรฆkkelige til at dรฆkke alle tests i iOS-testning
- Brug konsol log for at teste iOS-applikationen. Denne iOS-funktion indeholder oplysninger fra alle applikationer pรฅ enheden.
- Dokument applikationsfejl ved hjรฆlp af indbygget skรฆrmbillede kommando. Det hjรฆlper udvikleren med at forstรฅ, hvordan fejlene opstรฅr.
- Crash-rapportering Vรฆrktรธjer er nyttige, nรฅr du tester din applikation. De kan registrere nedbrud og logge detaljer, sรฅ du nemt kan undersรธge fejlene.
MYTER om iOS-test
Dette afsnit undersรธger et par populรฆre myter og realiteter ved iOS-test
Test af applikationer pรฅ iOS og Android er det samme.
iOS og Android er to platforme udviklet af Apple Inc. og Google henholdsvis. De er helt forskellige i testmiljรธer, testframeworks og programmeringssprog.
Det er nok at teste applikationen pรฅ iOS Simulator.
iOS-simulatoren er ikke stรฆrk nok til at teste en app, fordi den har nogle begrรฆnsninger:
- Hardwarebegrรฆnsninger (kamera, mikrofonindgang, sensor)
- Din apps brugergrรฆnseflade kan se ud til at kรธre bรฅde hurtigere og glattere end pรฅ en enhed
- API-begrรฆnsninger
- Nogle rammer understรธttes ikke (Media Player, Store Kit, Message UI..)
Alle vil downloade mine apps i app store, fordi de har mange funktioner.
Jo flere funktioner din applikation har, jo flere fejl kan du fรฅ. Ingen bruger vil downloade din applikation, hvis den stadig har mange defekter.

.png)











