Handleiding voor het testen van iOS-apps
⚡ Slimme samenvatting
iOS-apptesten controleren of een applicatie correct installeert, presteert en zich gedraagt op Apple-apparaten. Het combineert handmatige technieken met geautomatiseerde frameworks zoals XCTest en XCUITest om crashes, incompatibiliteiten en geheugenlekken vroegtijdig op te sporen.

Wat is het testen van iOS-apps?
Testen van iOS-apps is een testproces waarbij een iOS-applicatie wordt getest op echte Apple-apparaten om te controleren of deze werkt zoals verwacht of niet voor specifieke gebruikersacties zoals installatietijd, gebruikersinterface, gebruikerservaring, uiterlijk, gedrag, functionaliteit, laadtijd, prestaties, app Winkelvermelding, ondersteuning voor OS-versie, enz.
Waarom iOS-app-testen?
Testen van iOS-apps is vereist omdat iOS het platform van Apple is voor mobiele applicaties, dat voor het eerst werd uitgebracht op 29 juni 2007. In tegenstelling tot AndroidApple verleent geen licenties voor iOS-installatie op niet-Apple-hardware. iOS en iOS-applicaties kunnen alleen op Apple-apparaten worden geïnstalleerd; daarom moet uw iOS-app compatibel zijn met de iOS-versies en iOS-apparaten die uw gebruikers bezitten.
Onderstaande afbeelding toont veelvoorkomende vragen waarmee ontwikkelaars te maken krijgen bij het maken van een iOS-applicatie.
Het maakt niet uit hoeveel tijd je investeert in ontwerp en implementatie; fouten zijn onvermijdelijk en er zullen bugs opduiken. De onderstaande afbeelding toont enkele veelvoorkomende bugs in iOS-applicaties.
Applicatie crasht
Een van de meest frustrerende problemen bij het gebruik van Apple-apparaten is dat een applicatie regelmatig vastloopt tijdens het gebruik. Vaak komt dit door bugs of geheugenlekken in de code.
Incompatibiliteit met toepassingen
Je iOS-applicatie werkt mogelijk perfect op de huidige iOS-versie, maar na een iOS-upgrade werkt deze mogelijk niet meer vanwege compatibiliteitsproblemen.
Beveiligingsprobleem
Een beveiligingslek in iOS stelt hackers in staat om uw iOS-apparaten aan te vallen en uw privégegevens te stelen. In de loop der jaren zijn er ernstige beveiligingslekken in verschillende iOS-versies van de iPhone ontdekt.
Geheugenlekken
Geheugenlekken zijn blokken toegewezen geheugen die het programma niet langer gebruikt. Geheugenlekken zorgen ervoor dat uw iOS-applicatie crasht.
Het zijn bugs en moeten altijd worden opgelost.
iOS MindMap testen
Zoals in de bovenstaande afbeelding te zien is, gebruikt iOS Testen Deze mindmap toont alle punten waar een tester rekening mee moet houden bij het testen van iOS-applicaties.
Controlelijst voor het testen van iOS-applicaties
Deze checklist is specifiek ontworpen om de kenmerken van iOS-mobiele applicaties te testen. Uiteraard test hij alleen algemene applicatiekenmerken en niet de functionaliteit van de app.
- Controleer de installatietijd van de applicatie op het apparaat. Zorg ervoor dat de installatie binnen een acceptabele tijd is voltooid.
- Controleer na de installatie of de applicatie een pictogram en een naam heeft. Zorg er ook voor dat zowel het pictogram als de naam duidelijk zijn en de kernfunctie van de applicatie weergeven.
- Start de applicatie en controleer of er een opstartscherm wordt weergegeven.
- Controleer de time-out van het opstartscherm en de laadtijd van het startscherm. Het startscherm van de applicatie moet binnen een acceptabele tijd laden. Als het te lang duurt voordat het startscherm laadt, is de kans groter dat de gebruiker de applicatie afsluit of zelfs verwijdert. Controleer ook hoe de inhoud op het startscherm wordt weergegeven.
- De hoofdfunctie van de applicatie moet onmiddellijk duidelijk zijn. Het zou voor zichzelf moeten spreken.
- Controleer of de app zowel de liggende als de staande oriëntatie ondersteunt. Zo ja, test de app dan in beide oriëntaties. De gebruikersinterface van de applicatie zou zich hierop moeten aanpassen.
- Start de applicatie zonder internetverbinding. Zorg ervoor dat de app zich gedraagt zoals bedoeld/gewenst. Het is mogelijk dat de applicatie vastloopt bij het opstarten of dat er alleen een blanco scherm wordt weergegeven.
- Als de applicatie gebruikmaakt van locatieservices, controleer dan of de melding voor locatietoestemming wordt weergegeven. Deze melding mag slechts één keer aan de gebruiker worden getoond.
- Als de applicatie pushmeldingen verzendt, controleer dan of de melding voor pushmeldingstoestemming wordt weergegeven. Deze melding mag slechts één keer aan de gebruiker worden getoond.
- Start de applicatie, sluit deze af en start hem opnieuw. Controleer of de app zich gedraagt zoals bedoeld/gewenst.
- Sluit de applicatie door erop te tikkenping Druk op de Home-knop van het apparaat en open de app opnieuw. Controleer of de app naar behoren werkt.
- Controleer na de installatie of de app in de instellingen van je iPhone wordt weergegeven.
- Nadat de applicatie live is gegaan, controleer dan of deze te vinden is in de App Store. Er worden verschillende besturingssystemen voor de applicatie ondersteund. Zorg er dus voor dat de applicatie te vinden is in de App Store van apparaten met een ondersteund besturingssysteem. De applicatie mag niet worden weergegeven in de App Store van apparaten met een niet-ondersteund besturingssysteem.
- Controleer of de applicatie naar de slaapmodus gaat wanneer deze op de achtergrond wordt uitgevoerd om te voorkomen dat de batterij leegraakt.
- Als de prestaties van de applicatie traag zijn of wanneer de inhoud wordt geladen, controleer dan of er een voortgangsstatuspictogram is (“Laden...”), bij voorkeur met een specifiek bericht.
- Zoek de applicatie op naam in de zoekbalk van je apparaat. Controleer of de app in de lijst staat.
- Controleer of het uiterlijk van knoppen die standaardacties uitvoeren (bijvoorbeeld: vernieuwen, ordenen, verwijderen, beantwoorden, terug, enz.) niet is gewijzigd in de app.
- Controleer of standaardknoppen niet voor andere functies worden gebruikt dan waarvoor ze normaal bedoeld zijn.
iOS-teststrategie
Als je eenmaal weet wat je moet controleren, is de volgende stap hoe je het moet testen. De onderstaande afbeelding toont enkele veelvoorkomende teststrategieën voor iOS.
Geautomatiseerde testen
Geautomatiseerd testen is een van de grootste voordelen van iOS-testen. Het stelt je in staat om snel bugs en prestatieproblemen op te sporen. De voordelen van geautomatiseerd testen worden hieronder weergegeven:
- Geautomatiseerd testen kan op meerdere apparaten worden uitgevoerd, waardoor u tijd bespaart
- Geautomatiseerd testen kan zich richten op SDK's. Je kunt tests uitvoeren op verschillende SDK-versies.
- Geautomatiseerd testen verhoogt uw testproductiviteit en bespaart op softwareontwikkelingskosten.
- Er zijn veel open-source testframeworks die geautomatiseerd testen op iOS ondersteunen.
Unittesten met OCUnit
Toen de originele iOS SDK werd uitgebracht, ontbrak deze Testen van een eenheid mogelijkheden. Dus Apple bracht de OCUnit Unit testoplossing geïmplementeerd in iOS SDK versie 2.2.
OCUnit was een testframework voor Objective-C op de Mac (nu macOSHet grootste voordeel van het OCUnit-framework was de nauwe integratie ervan in de Xcode ontwikkelomgeving, zoals hieronder weergegeven.
Let op: OCUnit (SenTestingKit) is verouderd; sinds Xcode 5, Apple's XCTest Het framework heeft het als standaard vervangen — zie het XCTest-gedeelte hieronder. Screenshots hier tonen een oudere versie. Xcode versie.
Enkele voordelen van OCUnit worden weergegeven in de onderstaande afbeelding.
UI-testen met UIAutomation
UI Automation was een JavaScript Een bibliotheek van Apple Inc. die gebruikt kan worden om geautomatiseerde tests uit te voeren op echte apparaten en in de iOS-simulator. Dit framework werd toegevoegd in iOS SDK 4.0. Met UI Automation kun je het testen van de applicatie automatiseren, niet alleen op de simulator, maar ook op een echt apparaat.
Let op: Apple heeft UI Automation afgeschaft in Xcode Versie 8 (2016) en later verwijderd. Gebruik XCUITest voor nieuwe UI-testprojecten; de onderstaande klassen en schermafbeeldingen weerspiegelen de oudere toolchain.
UIAutomation bood de volgende voordelen:
- Verminderde inspanning op Handmatig testen
- Het uitvoeren van al uw tests kostte minder moeite.
- De UI-testprocedure is vereenvoudigd (druk op een paar knoppen en voer uw volledige testsuites uit).
Het UIAutomation-instrument werkte met scripts die geschreven waren in JavaScript. Het simuleerde gebruikersgebeurtenissen in de doel-iOS-applicatie.
Nadelen versus voordelen van UIAutomation
| VOORDELEN | NADELEN | |
|---|---|---|
| 1. | Goede ondersteuning voor gebaren en rotatie | Het is geen open source, minder ondersteuning van de ontwikkelaar |
| 2. | Je kunt UIAutomation-tests uitvoeren op het apparaat zelf, niet alleen op de simulator. | Kan niet extreem goed integreren met andere tools |
| 3. | Ontwikkeld in JavaScript, een populaire programmeertaal. |
De bovenstaande afbeelding toont enkele veelgebruikte klassen in het UIAutomation-framework.
- De UIA Element class is de superklasse voor alle gebruikersinterface-elementen in de context van de automatisering
- De UIATarget klasse vertegenwoordigt de gebruikersinterface-elementen op hoog niveau van het te testen systeem
- De UIAlogger klasse biedt test- en foutinformatie over de ophaalfunctionaliteit
- De UIAActiviteitsweergave class biedt toegang tot en controle over activiteitsweergaven binnen uw app.
- De UIAActieblad class biedt toegang tot en controle over actiebladen binnen uw app.
- Gebruiker Gebeurtenis actie
- UISlider-klasse
- UIAButton-klasse
- UIAKey-klasse
- UIAKeyboard-klasse
Andere geautomatiseerde testframeworks
- openhartig: Geautomatiseerd Toelatingstest framework voor iPhone en iPad (wordt niet langer actief onderhouden)
- KIF: is een iOS integratietest kader. Het maakt eenvoudige automatisering van iOS-apps mogelijk door gebruik te maken van de toegankelijkheidskenmerken die het besturingssysteem beschikbaar stelt voor mensen met een visuele handicap.
- Appium: een populaire open source, cross-platform framework dat iOS-apps automatiseert via Apple's XCUITest-driver
XCTest en XCUITest: Apple's moderne testframeworks
OCUnit en UIAutomation zijn belangrijke historische tools, maar beide zijn inmiddels niet meer in gebruik. Apple heeft OCUnit vervangen door XCTest in Xcode 5 (2013) en verouderde UIAutomation in Xcode 8 (2016) ten gunste van XCUITest, het UI-testonderdeel van XCTest. Dit zijn de testframeworks die Apple levert en ondersteunt in elke huidige versie van Xcode.
Met XCTest schrijf je unit tests in Swift of Objective-C en voer ze uit vanuit de Xcode Test Navigator, de xcodebuild Via de commandoregel, in de simulator of op echte apparaten. XCUITest stuurt je app door de toegankelijkheidslaag, waardoor UI-tests zich gedragen zoals een echte gebruiker.
| Legacy-framework | Moderne vervanging | Wat veranderde |
|---|---|---|
| OCUnit (SenTestingKit) | XCTest | Dezelfde concepten voor unit-testen, nu ingebouwd in alles. Xcode projectsjabloon |
| UIAutomation (JavaScript) | XCUITest | UI-tests worden geschreven in Swift of Objective-C in plaats daarvan JavaScript |
👏 Tip: Platformonafhankelijke tools zoals Appium Automatiseer iOS via XCUITest, zodat deze vaardigheden direct overdraagbaar zijn.
Handmatig testen
Automatisering zorgt voor snelheid, maar de onderstaande handmatige technieken voegen menselijk oordeel toe dat scripts niet kunnen bieden.
Verkennend testen
Het is testen zonder een formeel testplan. Exploratief testen is een goedkope testmethode, maar het kan potentiële bugs in je iOS-applicatie over het hoofd zien.
Verkennende tests Tegens versus voordelen
| VOORDELEN | NADELEN | |
|---|---|---|
| 1. | Less Voorbereiding is nodig; ernstige problemen worden vroegtijdig opgespoord. | Vereist een hoge vaardigheid van de tester |
| 2. | Nee Testplan is nodig, wat de detectie van bugs versnelt. | De testdekking is laag. Het garandeert niet dat al uw vereisten worden getest. |
| 3. | De meeste bugs worden vroeg ontdekt door middel van verkennende tests | Gebrek aan testdocumentatie |
Tests door gebruikers
Gebruikerstesten zijn een vorm van handmatig testen op iOS. Het doel van deze tests is niet alleen om betere apps te maken vrij van bugs apps. De onderstaande afbeelding toont vier soorten gebruikerstesten.
Concept testen
Evalueer de reacties van gebruikers op een applicatie-idee voordat je het op de markt brengt. De procedures voor concepttesten op iOS worden in de onderstaande afbeelding beschreven.
Usability Testing
Usability Testing Het is een test die meet hoe gemakkelijk je iOS-applicatie te gebruiken is. Bij iOS-testen kan een gebruiksvriendelijkheidstest bijvoorbeeld zijn: opgenomen om te onthouden of om met anderen te delen.
Enkele tools die bruikbaarheidstests op iOS ondersteunen zijn:
Trymata apps voor het testen van mobiele gebruikers voor Android en iOS.
Delight.io, kan deze tool echte gebruikersinteractie op uw iOS-apps vastleggen.
Beta testen
Bètatesten zijn de integratie testen met echte data om definitieve feedback van gebruikers te krijgen. Om je apps beschikbaar te stellen voor bètatesten, moet je de onderstaande stappen volgen.
-Voorwaarde: Als u een definitieve kandidaat voor een release aan het bètatesten bent, zorg er dan voor dat u de app valideert voordat u deze onder testers distribueert.
-Zoek tester via serviceJe verzamelt apparaat-ID's van testers en voegt deze toe aan je Apple Developer-account.
-Creëer ad-hocdistributieAd-hoc distributie stelt de tester in staat uw app op zijn of haar apparaat uit te voeren zonder dat dit nodig is. Xcode. Deze stap omvat 2 substappen
- Distributiecertificaten maken
- Maak ad-hoc inrichtingsprofielen
-Vraag feedback aan de tester: Testers voeren tests uit en sturen bugrapporten naar u. Nadat uw app is uitgebracht, kunt u de rapporten opvragen. App Store-verbinding (voorheen iTunes aansluiten).
Let op: Tegenwoordig distribueren de meeste teams bètaversies met Test vluchtwaarmee je tot 10,000 externe testers kunt uitnodigen zonder handmatig apparaat-ID's te hoeven verzamelen.
A / B-testen
A / B-testen is een van de krachtigste manieren om dat te doen evalueer de effectiviteit van uw iOS-app. Het gebruikt gerandomiseerde experimenten met twee apparaten, A en B.
A/B-testen omvatten drie hoofdstappen
- Configureer een testBereid 2 versies van je iOS-app voor (A en B) en een testparameter.
- TestTest de twee bovenstaande iOS-appversies gelijktijdig op verschillende apparaten.
- Analyseren: Meten en de betere versie selecteren om uit te brengen
De volgende tools ondersteunen A/B-testen op iOS.
- Arise: A/B-testen voor zowel iOS als AndroidHet kan in je iOS-app worden geïntegreerd en maakt het testproces sneller.
Best practices voor A/B-testen
- Definieer de doel van je toets. Elke test is nutteloos zonder doelwit.
- Watch eindgebruikers gebruiken uw app de eerste keer
- lopen een Test slechts per update. Dit bespaart u tijd bij het uitvoeren van tests.
- Monitor Neem je toets zorgvuldig in de gaten. Je kunt van je toets leren door hem te monitoren.
iOS-testen Beste praktijk
Hier zijn enkele tips die u moet weten bij het organiseren van het testen van uw iOS-applicatie
- Test de applicatie op een echt apparaat om een realistisch beeld van de prestaties te krijgen
- Verbeteren je testmethoden, want traditionele testmethoden volstaan niet langer om alle tests in iOS-testen te dekken.
- Gebruik de console-logboek Om de iOS-applicatie te testen. Deze iOS-functie bevat informatie van elke applicatie op het apparaat.
- Document applicatiefouten met behulp van de ingebouwde schermafbeelding commando. Het helpt de ontwikkelaar te begrijpen hoe de bugs ontstaan.
- Crashrapportage Tools zijn handig bij het testen van je applicatie. Ze kunnen crashes detecteren en details vastleggen, zodat je de bugs gemakkelijk kunt onderzoeken.
MYTHES over iOS-testen
In dit gedeelte worden enkele populaire mythen en realiteiten van iOS-testen onderzocht
Applicaties testen op iOS en Android Het is hetzelfde.
iOS en Android zijn twee platforms ontwikkeld door Apple Inc. en Google respectievelijk. Ze verschillen totaal van elkaar wat betreft testomgevingen, testframeworks en programmeertalen.
Het testen van de applicatie op de iOS-simulator is voldoende.
De iOS-simulator is niet krachtig genoeg voor het testen van een app, omdat deze enkele beperkingen heeft:
- Hardwarebeperkingen (camera, microfooningang, sensor)
- Het lijkt erop dat de gebruikersinterface van uw app zowel sneller als soepeler werkt dan op een apparaat
- API-beperkingen
- Sommige frameworks worden niet ondersteund (Media Player, Store Kit, Message UI...)
Iedereen zal mijn apps downloaden in de App Store, omdat ze veel functies hebben.
Hoe meer functies uw applicatie heeft, hoe meer bugs u kunt krijgen. Geen enkele gebruiker zal uw applicatie downloaden als deze nog steeds veel gebreken vertoont.

.png)











