iOS-App-Test-Tutorial

⚡ Intelligente Zusammenfassung

iOS-App-Tests überprüfen, ob eine Anwendung auf Apple-Geräten korrekt installiert wird, einwandfrei funktioniert und sich korrekt verhält. Sie kombinieren manuelle Verfahren mit automatisierten Frameworks wie XCTest und XCUITest, um Abstürze, Inkompatibilitäten und Speicherlecks frühzeitig zu erkennen.

  • 📱 Foundation: iOS läuft nur auf Apple-Hardware, daher muss jede App auf Kompatibilität mit unterstützten iOS-Versionen und -Geräten geprüft werden.
  • ✅ Checkliste: Die allgemeinen Prüfungen umfassen Installation, Startzeit, Ausrichtung, Berechtigungen und Sichtbarkeit im App Store.
  • 🤖 Automation: XCTest und XCUITest ersetzen die veralteten Frameworks OCUnit und UIAutomation für Unit- und UI-Tests.
  • 🧪 Manuelle Methoden: Explorative Tests, Usability-Tests, Konzepttests, Beta-Tests und A/B-Tests erfassen echtes Nutzerfeedback.
  • 🚀 Auswirkungen: Tests auf realen Geräten in Kombination mit der Beta-Verteilung über TestFlight gewährleisten eine stabile Performance vor der Veröffentlichung im App Store.

iOS-App-Testing – Manuell und Automatisiert

Was ist iOS-App-Testen?

Testen von iOS-Apps ist ein Testprozess, bei dem eine iOS-Anwendung auf echten Apple-Geräten getestet wird, um zu überprüfen, ob sie bei bestimmten Benutzeraktionen wie Installationszeit, Benutzeroberfläche, Benutzererfahrung, Erscheinungsbild, Verhalten, Funktionalität, Ladezeit, Leistung und App wie erwartet funktioniert oder nicht Store-Eintrag, Unterstützung der Betriebssystemversion usw.

Warum iOS-App-Tests?

Testen von iOS-Apps ist erforderlich, da iOS Apples Plattform für mobile Anwendungen ist, die erstmals am 29. Juni 2007 veröffentlicht wurde. Im Gegensatz zu AndroidApple lizenziert iOS nicht für die Installation auf Geräten anderer Hersteller. iOS und iOS-Anwendungen können nur auf Apple-Geräten installiert werden; daher muss Ihre iOS-App mit den iOS-Versionen und iOS-Geräten Ihrer Nutzer kompatibel sein.

Apple-Geräte, auf denen iOS-Apps laufen

Die folgende Abbildung zeigt häufige Fragen, mit denen Entwickler bei der Erstellung einer iOS-Anwendung konfrontiert werden.

Häufig gestellte Fragen bei der Entwicklung einer iOS-App

Egal wie viel Zeit Sie in Design und Implementierung investieren, Fehler sind unvermeidlich und Bugs werden auftreten. Die folgende Abbildung zeigt einige häufige Bugs in iOS-Anwendungen.

Häufige Fehler in iOS-Anwendungen

Anwendung stürzt ab

Eines der ärgerlichsten Probleme bei der Nutzung von Apple-Geräten ist, dass Anwendungen während der Ausführung häufig abstürzen können. Oftmals liegt die Ursache in Fehlern oder Speicherlecks im Code.

Anwendungsinkompatibilitäten

Ihre iOS-Anwendung läuft möglicherweise einwandfrei auf der aktuellen iOS-Version, aber nach einem iOS-Upgrade kann es aufgrund von Inkompatibilitätsproblemen zu Funktionsstörungen kommen.

Sicherheitslücke

Eine Sicherheitslücke in iOS ermöglicht es Hackern, Ihre iOS-Geräte anzugreifen und Ihre privaten Daten zu stehlen. Im Laufe der Jahre wurden in verschiedenen iOS-Versionen schwerwiegende Sicherheitslücken für iPhones entdeckt.

Speicherlecks

Speicherlecks sind Blöcke des zugewiesenen Speichers, die das Programm nicht mehr verwendet. Speicherlecks führen zum Absturz Ihrer iOS-Anwendung.
Es handelt sich um Fehler, die immer behoben werden sollten.

iOS testet MindMap

Mindmap für iOS-Tests: Zu berücksichtigende Punkte

Wie in der obigen Abbildung dargestellt, ist iOS Tests Die Mindmap zeigt alle Punkte, die ein Tester bei der Durchführung von Tests auf iOS berücksichtigen sollte.

Checkliste zum Testen von iOS-Anwendungen

Diese Checkliste wurde speziell für die Prüfung der Eigenschaften von iOS-Mobilanwendungen entwickelt. Sie prüft selbstverständlich nur allgemeine Anwendungsmerkmale und nicht die Funktionalität der App.

  • Prüfen Sie die Installationszeit der Anwendung auf dem Gerät. Stellen Sie sicher, dass die Installation innerhalb einer akzeptablen Zeit abgeschlossen ist.
  • Prüfen Sie nach der Installation der Anwendung, ob sie ein App-Symbol und einen Namen hat. Stellen Sie außerdem sicher, dass Symbol und Name selbsterklärend sind und den Kernzweck der Anwendung widerspiegeln.
  • Starten Sie die Anwendung und prüfen Sie, ob ein Startbildschirm angezeigt wird.
  • Überprüfen Sie die Ladezeit des Startbildschirms und die Ladezeit des Startbildschirms. Der Startbildschirm der Anwendung sollte innerhalb einer akzeptablen Zeit geladen werden. Dauert das Laden des Startbildschirms zu lange, steigt die Wahrscheinlichkeit, dass der Nutzer die Anwendung beendet oder sogar deinstalliert. Prüfen Sie außerdem, wie die Inhalte auf dem Startbildschirm angezeigt werden.
  • Die Hauptfunktion der Anwendung sollte sofort ersichtlich sein. Es sollte für sich selbst sprechen.
  • Prüfen Sie, ob die App sowohl Quer- als auch Hochformat unterstützt. Falls ja, testen Sie die App in beiden Ausrichtungen. Die Benutzeroberfläche der Anwendung sollte sich entsprechend anpassen.
  • Starten Sie die Anwendung ohne Internetverbindung. Stellen Sie sicher, dass die App wie gewünscht funktioniert. Es besteht die Möglichkeit, dass die Anwendung beim Start abstürzt oder nur einen leeren Bildschirm anzeigt.
  • Wenn die Anwendung Standortdienste nutzt, prüfen Sie, ob eine Benachrichtigung über die Standortberechtigung angezeigt wird. Diese Benachrichtigung sollte dem Benutzer nur einmal angezeigt werden.
  • Wenn die Anwendung Push-Benachrichtigungen sendet, prüfen Sie, ob die Berechtigungsabfrage für Push-Benachrichtigungen angezeigt wird. Diese Abfrage sollte dem Benutzer nur einmalig angezeigt werden.
  • Starten Sie die Anwendung, beenden Sie sie und starten Sie sie erneut. Prüfen Sie, ob die App sich wie vorgesehen/gewünscht verhält.
  • Schließen Sie die Anwendung durch Tippen.ping Drücken Sie die Home-Taste des Geräts und öffnen Sie die App erneut. Prüfen Sie, ob die App wie gewünscht funktioniert.
  • Nach der Installation prüfen Sie, ob die App in den Einstellungen Ihres iPhones aufgeführt ist.
  • Nach der Veröffentlichung der Anwendung prüfen Sie, ob sie im App Store verfügbar ist. Die Anwendung wird für bestimmte Betriebssystemversionen unterstützt. Stellen Sie daher sicher, dass die Anwendung im App Store von Geräten mit unterstützten Betriebssystemversionen gefunden werden kann. Die Anwendung sollte im App Store von Geräten mit nicht unterstützten Betriebssystemversionen nicht gelistet sein.
  • Überprüfen Sie, ob die Anwendung in den Ruhemodus wechselt, wenn sie im Hintergrund ausgeführt wird, um eine Entladung der Batterie zu verhindern.
  • Wenn die Leistung der Anwendung langsam ist oder wenn Inhalte geladen werden, prüfen Sie, ob ein Fortschrittsstatussymbol („Laden…“) angezeigt wird, vorzugsweise mit einer bestimmten Meldung.
  • Suchen Sie die Anwendung anhand ihres Namens in der Suchleiste Ihres Geräts. Prüfen Sie, ob die App in der Liste aufgeführt ist.
  • Prüfen Sie, ob das Erscheinungsbild von Schaltflächen, die Standardaktionen ausführen, in der App verändert wurde (z. B. Aktualisieren, Organisieren, Papierkorb, Antworten, Zurück usw.).
  • Prüfen Sie, ob die Standardtasten nicht für andere Funktionen als ihre übliche Verwendung genutzt werden.

iOS-Teststrategie

Sobald Sie wissen, was zu überprüfen ist, geht es im nächsten Schritt darum, wie Sie es testen. Die folgende Abbildung stellt einige gängige Teststrategien für iOS vor.

Gängige Arten von iOS-Teststrategien

Automatisiertes Testen

Automatisierte Tests sind einer der größten Vorteile beim iOS-Testing. Sie ermöglichen die schnelle Erkennung von Fehlern und Leistungsproblemen. Die Vorteile automatisierter Tests sind im Folgenden aufgeführt:

  • Automatisierte Tests können auf mehreren Geräten ausgeführt werden, was Ihnen Zeit spart
  • Automatisierte Tests können auf SDKs abzielen. Sie können Tests auf verschiedenen SDK-Versionen ausführen.
  • Automatisierte Tests steigern Ihre Testproduktivität und sparen Softwareentwicklungskosten.
  • Es gibt viele Open-Source-Testframeworks, die automatisierte Tests unter iOS unterstützen.

Unit-Test mit OCUnit

Als das ursprüngliche iOS SDK veröffentlicht wurde, fehlte es Unit Tests Fähigkeiten. Also brachte Apple die OCUnit Unit-Test-Lösung für iOS SDK Version 2.2.

OCUnit war ein Testframework für Objective-C auf dem Mac (jetzt macOSDer größte Vorteil des OCUnit-Frameworks war seine enge Integration in das Xcode Entwicklungsumgebung, wie unten dargestellt.

Hinweis: OCUnit (SenTestingKit) ist veraltet; da Xcode 5, Apples XCTest Das Framework hat es als Standard abgelöst – siehe den Abschnitt XCTest weiter unten. Die Screenshots zeigen eine ältere Version. Xcode Version.

OCUnit-Integration in der Xcode Umwelt

Einige der Vorteile von OCUnit sind in der folgenden Abbildung dargestellt.

Vorteile von Unit-Tests mit OCUnit

UI-Tests mit UIAutomation

UI-Tests mit UIAutomation

UI-Automatisierung war eine JavaSkript Die von Apple Inc. bereitgestellte Bibliothek ermöglicht automatisierte Tests auf realen Geräten und im iOS-Simulator. Dieses Framework wurde mit dem iOS SDK 4.0 eingeführt. Mithilfe von UI Automation können Sie Anwendungstests nicht nur im Simulator, sondern auch auf einem realen Gerät automatisieren.

Hinweis: Apple hat die UI-Automatisierung in Xcode Version 8 (2016) und spätere Versionen haben diese Funktion entfernt. Verwenden Sie XCUITest für neue UI-Testprojekte; die unten aufgeführten Klassen und Screenshots beziehen sich auf die ältere Toolchain.

UIAutomation brachte folgende Vorteile:

  • Reduzierter Aufwand bei Manuelle Prüfung
  • Weniger Aufwand erforderlich, um alle Ihre Tests auszuführen
  • Das Testverfahren für die Benutzeroberfläche wurde vereinfacht (ein paar Tasten drücken und die kompletten Testsuiten ausführen).

Das UIAutomation-Instrument arbeitete mit Skripten, die in geschrieben wurden JavaSkript. Es simulierte Benutzerereignisse in der Ziel-iOS-Anwendung.

UI-Automatisierung: Nachteile vs. Vorteile

Vorteile Nachteile
1. Gute Unterstützung für Gesten und Rotation Es handelt sich nicht um Open Source, daher gibt es weniger Unterstützung durch den Entwickler
2. Kann UIAutomation-Tests auf dem Gerät ausführen, nicht nur auf dem Simulator. Kann nicht besonders gut mit anderen Tools integriert werden
3. Entwickelt in JavaScript, eine beliebte Programmiersprache.

Gemeinsame Klassen im UIAutomation-Framework

Die obige Abbildung zeigt einige gängige Klassen des UIAutomation-Frameworks.

  • Das UIAElement Klasse ist die Superklasse für alle Benutzeroberflächenelemente im Kontext der Automatisierung
  • Das UIATarget Die Klasse stellt die übergeordneten Benutzeroberflächenelemente des zu testenden Systems dar
  • Das UIALogger Die Klasse stellt Test- und Fehlerinformationen zur Abruffunktion bereit
  • Das UIAActivityView Die Klasse ermöglicht den Zugriff auf und die Steuerung von Aktivitätsansichten in Ihrer App.
  • Das UIAActionSheet Die Klasse ermöglicht den Zugriff auf und die Steuerung von Aktionsblättern in Ihrer App.
  • Mitglied Ereignisaktion
  • UISlider-Klasse
  • UIAButton-Klasse
  • UIAKey-Klasse
  • UIAKeyboard-Klasse

Andere automatisierte Test-Frameworks

  • Frank: Automatisiert Akzeptanztest Framework für iPhone und iPad (wird nicht mehr aktiv weiterentwickelt)
  • KIF: ist ein iOS Integrationstest Rahmen. Es ermöglicht eine einfache Automatisierung von iOS-Apps durch Nutzung der Barrierefreiheitsattribute, die das Betriebssystem für Menschen mit Sehbehinderungen zur Verfügung stellt.
  • Appium: eine beliebte Open-Source-Software, Cross-Plattform- Framework, das iOS-Apps mithilfe des XCUITest-Treibers von Apple automatisiert

XCTest und XCUITest: Apples moderne Testframeworks

OCUnit und UIAutomation sind zwar wichtige historische Komponenten, werden aber beide nicht mehr weiterentwickelt. Apple hat OCUnit durch … ersetzt. XCTest in Xcode 5 (2013) und veraltete UIAutomation in Xcode 8 (2016) zugunsten von XCUITest, die UI-Testkomponente von XCTest. Dies sind die Testframeworks, die Apple in jeder aktuellen Version mitliefert und unterstützt. Xcode.

Mit XCTest schreiben Sie Unit-Tests in Swift oder Objective-C und führen Sie sie von dort aus aus Xcode Test Navigator, der xcodebuild Ob über die Kommandozeile, im Simulator oder auf echten Geräten: XCUITest steuert Ihre App durch die Barrierefreiheitsschicht, sodass sich UI-Tests weitgehend wie ein echter Benutzer verhalten.

Legacy-Framework Moderner Ersatz Was hat sich geändert
OCUnit (SenTestingKit) XCTest Die gleichen Unit-Testing-Konzepte, jetzt in jedes System integriert Xcode Projektvorlage
UIAutomation (JavaSkript) XCUITest UI-Tests werden geschrieben in Swift oder Objective-C anstelle von JavaSkript

💡 TIPP: Plattformübergreifende Tools wie Appium Die Automatisierung von iOS erfolgt im Hintergrund über XCUITest, sodass diese Fähigkeiten direkt übertragbar sind.

Manuelle Prüfung

Die Automatisierung bringt zwar Geschwindigkeit, aber die folgenden manuellen Techniken fügen menschliches Urteilsvermögen hinzu, das Skripte nicht bieten können.

Versuchsforschung

Es handelt sich um Tests ohne formalen Testplan. Exploratives Testen ist eine kostengünstige Testmethode, kann aber potenzielle Fehler in Ihrer iOS-Anwendung übersehen.

Nachteile und Vorteile des explorativen Testens

Vorteile Nachteile
1. Less Vorbereitung ist notwendig; schwerwiegende Fehler werden frühzeitig erkannt. Erfordert hohe Fähigkeiten des Testers
2. Nein Versuchsplan wird benötigt, was die Fehlererkennung beschleunigt. Die Testabdeckung ist gering. Es kann nicht garantiert werden, dass alle Ihre Anforderungen getestet werden.
3. Die meisten Fehler werden frühzeitig durch explorative Tests entdeckt Fehlende Testdokumentation

User Testing

Benutzertests sind eine Art manuelle Tests unter iOS. Der Zweck dieser Tests besteht nicht nur darin, bessere Apps zu erstellen Bug-frei Apps. Die folgende Abbildung zeigt vier Arten von Benutzertests.

Vier Arten von Benutzertests

Konzepttests

Bevor Sie eine Anwendungsidee auf den Markt bringen, sollten Sie die Nutzerreaktionen darauf evaluieren. Die Vorgehensweise beim Konzepttest unter iOS ist in der folgenden Abbildung dargestellt.

Konzepttestverfahren auf iOS

Benutzer-Tests

Benutzer-Tests Ein Usability-Test prüft, wie benutzerfreundlich Ihre iOS-Anwendung ist. Im iOS-Testing kann ein Usability-Test Folgendes umfassen: aufgezeichnet zum Erinnern oder zum Teilen mit anderen.

Einige Tools, die Usability-Tests unter iOS unterstützen, sind:

Trymata Mobile Benutzertest-Apps für Android und iOS.

Delight.ioMit diesem Tool können Sie echte Benutzerinteraktionen in Ihren iOS-Apps erfassen.

Betatest

Betatest ist das Integrationstests Um abschließendes Feedback von Nutzern zu erhalten, verwenden Sie echte Daten. Um Ihre Apps für Betatests zu verteilen, müssen Sie die folgenden Schritte befolgen.

Schritte zur Verteilung des Beta-Tests

-Vorbedingung: Wenn Sie einen endgültigen Kandidaten für eine Veröffentlichung im Betatest testen, müssen Sie die App unbedingt validieren, bevor Sie sie an Tester verteilen.

-Tester über Service findenSie sammeln Geräte-IDs von Testern und fügen diese Ihrem Apple-Entwicklerkonto hinzu.

-Erstellen Sie eine Ad-hoc-VerteilungDie Ad-hoc-Verteilung ermöglicht es dem Tester, Ihre App auf seinem Gerät auszuführen, ohne dass ein Administrator erforderlich ist. Xcode. Dieser Schritt umfasst 2 Unterschritte

  • Erstellen Sie Vertriebszertifikate
  • Erstellen Sie Ad-hoc-Bereitstellungsprofile

-Bitten Sie den Tester um Feedback: Tester führen Tests durch und senden Ihnen Fehlerberichte. Nach der Veröffentlichung Ihrer App können Sie die Berichte abrufen von App Store-Verbindung (früher iTunes verbinden).

Hinweis: Heutzutage verteilen die meisten Teams Beta-Versionen mit Testflug, wodurch Sie bis zu 10,000 externe Tester einladen können, ohne Geräte-IDs manuell erfassen zu müssen.

A / B-Tests

A / B-Tests ist eine der wirkungsvollsten Methoden dazu Bewerten Sie die Wirksamkeit Ihrer iOS-App. Es benutzt randomisierte Experimente mit zwei Geräten, A und B.

A/B-Test auf zwei iOS-Geräten

A/B-Tests umfassen drei Hauptschritte

  • Konfigurieren Sie einen TestBereiten Sie zwei Versionen Ihrer iOS-App (A und B) und eine Testmetrik vor.
  • Test: Testen Sie die beiden oben genannten iOS-App-Versionen gleichzeitig auf verschiedenen Geräten.
  • AnalysierenMessen und wählen Sie die bessere Version zur Veröffentlichung aus.

Die folgenden Tools unterstützen A/B-Tests auf iOS.

  • Entstehen: A/B-Tests für iOS und AndroidEs lässt sich in Ihre iOS-App integrieren und beschleunigt den Testprozess.

Best Practices für A/B-Tests

  • Definiere das Ziel Ihres Tests. Ohne ein Ziel ist jeder Test nutzlos.
  • Ansehen Endbenutzer nutzen Ihre App zum ersten Mal
  • Führen Sie dank One Testen Sie nur pro Update. Das spart Ihnen Zeit beim Testen.
  • Überwachen Führen Sie Ihren Test sorgfältig durch. Sie können aus Ihren Testergebnissen lernen, indem Sie diese überwachen.

Best Practice für iOS-Tests

Hier sind einige Tipps, die Sie kennen sollten, wenn Sie das Testen Ihrer iOS-Anwendung organisieren

  1. Testen Sie die Anwendung auf einem echtes Gerät um ein realistisches Bild der Leistung zu erhalten
  2. Verbesserung Ihre Testmethoden, da traditionelle Testmethoden nicht mehr ausreichen, um alle Tests im iOS-Testing abzudecken.
  3. Verwenden Sie die Konsolenprotokoll zum Testen der iOS-Anwendung. Diese iOS-Funktion umfasst Informationen von jeder Anwendung auf dem Gerät.
  4. DokumentAAA Anwendungsfehler bei der Verwendung der integrierter Screenshot Befehl. Er hilft dem Entwickler zu verstehen, wie die Fehler auftreten.
  5. Crash-Berichte Tools sind beim Testen Ihrer Anwendung hilfreich. Sie können Abstürze erkennen und Details protokollieren, sodass Sie die Fehler leicht untersuchen können.

MYTHEN über iOS-Tests

In diesem Abschnitt werden einige beliebte Mythen und Realitäten zum iOS-Testen untersucht

Testen von Anwendungen auf iOS und Android ist dasselbe.

iOS und Android sind zwei Plattformen, die von Apple Inc. entwickelt wurden und Google Sie unterscheiden sich jeweils grundlegend in Testumgebungen, Testframeworks und Programmiersprachen.

Es genügt, die Anwendung im iOS-Simulator zu testen.

Der iOS-Simulator ist für das Testen einer App nicht ausreichend, da er einige Einschränkungen aufweist:

  • Hardwareeinschränkungen (Kamera, Mikrofoneingang, Sensor)
  • Die Benutzeroberfläche Ihrer App scheint möglicherweise schneller und flüssiger zu laufen als auf einem Gerät
  • API-Einschränkungen
  • Einige Frameworks werden nicht unterstützt (Media Player, Store Kit, Message UI...)

Jeder wird meine Apps im App Store herunterladen, weil sie viele Funktionen bieten.

Je mehr Funktionen Ihre Anwendung hat, desto mehr Fehler können auftreten. Kein Benutzer wird Ihre Anwendung herunterladen, wenn sie noch viele Mängel aufweist.

Häufig gestellte Fragen

Ja. KI-gestützte Plattformen generieren Testfälle, erkennen visuelle Regressionen und reparieren fehlerhafte Element-Locators, wenn sich Ihre Benutzeroberfläche ändert. Tools wie beispielsweise Testen Sie Sigma Ermöglichen Sie es Teams, iOS-Tests in einfachem Englisch zu verfassen.

Die KI-basierte Selbstheilungsfunktion aktualisiert Element-Locators nach UI-Änderungen, kennzeichnet fehlerhafte Tests und priorisiert risikoreiche Fälle, wodurch die manuelle Nachbearbeitung nach jeder iOS-Veröffentlichung reduziert wird.

Ja. Appium wird aktiv gepflegt und treibt iOS-Apps mithilfe von Apples XCUITest-Framework voran, indem es Tests unterstützt in JavaSkript, Python, Javaoder C#.

Nein. Eine kostenlose Apple-ID mit Xcode Ermöglicht das Testen auf dem eigenen Gerät. Die kostenpflichtige Teilnahme am Apple Developer Program (99 US-Dollar/Jahr) ist erforderlich für Testflug Vertrieb und Veröffentlichung im App Store.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: