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.

  • 📱 Foundation: iOS werkt alleen op Apple-hardware, dus elke app moet worden gevalideerd voor ondersteunde iOS-versies en -apparaten.
  • ✅ checklist: De algemene controles omvatten installatie, opstarttijd, oriëntatie, machtigingen en zichtbaarheid in de App Store.
  • 🤖 Automatisering: XCTest en XCUITest vervangen de verouderde frameworks OCUnit en UIAutomation voor unit- en UI-testen.
  • 🧪 Handmatige methoden: Verkennende tests, gebruiksvriendelijkheidstests, concepttests, bètatests en A/B-tests verzamelen feedback van echte gebruikers.
  • 🚀 Impact: Testen op echte apparaten in combinatie met de bètaversie via TestFlight zorgt voor stabiele prestaties vóór de release in de App Store.

iOS-apptesten - handmatig en geautomatiseerd

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.

Apple-apparaten waarop iOS-apps draaien

Onderstaande afbeelding toont veelvoorkomende vragen waarmee ontwikkelaars te maken krijgen bij het maken van een iOS-applicatie.

Veelgestelde vragen bij het ontwikkelen van een iOS-app

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.

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

Mindmap voor iOS-testen met aandachtspunten

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.

Veelvoorkomende soorten iOS-teststrategieën

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.

OCUnit-integratie in de Xcode omgeving houden

Enkele voordelen van OCUnit worden weergegeven in de onderstaande afbeelding.

Voordelen van unit testen met OCUnit

UI-testen met UIAutomation

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.

Veelgebruikte klassen in het UIAutomation-framework

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.

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.

Concepttestprocedure op iOS

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.

Distributiestappen voor bètatests

-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 op twee iOS-apparaten

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

  1. Test de applicatie op een echt apparaat om een ​​realistisch beeld van de prestaties te krijgen
  2. Verbeteren je testmethoden, want traditionele testmethoden volstaan ​​niet langer om alle tests in iOS-testen te dekken.
  3. Gebruik de console-logboek Om de iOS-applicatie te testen. Deze iOS-functie bevat informatie van elke applicatie op het apparaat.
  4. Document applicatiefouten met behulp van de ingebouwde schermafbeelding commando. Het helpt de ontwikkelaar te begrijpen hoe de bugs ontstaan.
  5. 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.

Veelgestelde vragen

Ja. Platforms met AI-ondersteuning genereren testcases, detecteren visuele regressies en herstellen defecte elementlocators wanneer uw gebruikersinterface verandert. Tools zoals Testsigma Laat teams iOS-tests schrijven in begrijpelijke taal.

Dankzij AI-gebaseerde zelfherstellende functies worden elementlocators na UI-wijzigingen bijgewerkt, onbetrouwbare tests gemarkeerd en risicovolle gevallen geprioriteerd, waardoor de handmatige herwerking na elke iOS-release wordt verminderd.

Ja. Appium wordt actief onderhouden en stuurt iOS-apps aan via Apple's XCUITest-framework, ter ondersteuning van tests in Javascript, Python, Java, of C#.

Nee. Een gratis Apple ID met Xcode Hiermee kun je testen op je eigen apparaat. Het betaalde Apple Developer Program (US$ 99/jaar) is vereist. Test vlucht distributie en publicatie in de App Store.

Vat dit bericht samen met: