IOS App Testing Tutorial: Manuell & Automatisierung

Inhaltsverzeichnis:

Anonim

Was ist iOS App Testing?

iOS App Testing ist ein Testprozess, bei dem eine iOS-Anwendung auf echten Apple-Geräten getestet wird, um zu überprüfen, ob sie für bestimmte Benutzeraktionen wie Installationszeit, Benutzeroberfläche, Benutzererfahrung, Erscheinungsbild, Verhalten, Funktionalität, Ladezeit usw. wie erwartet funktioniert. Leistung, App Store-Liste, Unterstützung der Betriebssystemversion usw.

Warum iOS App Testen?

Das Testen von iOS-Apps ist erforderlich, da iOS Apples Plattform für mobile Anwendungen ist, die am 29. Juni 2007 veröffentlicht wurde. Im Gegensatz zu Android lizenziert Apple iOS nicht für die Installation auf Hardware, die nicht von Apple stammt. iOS- und iOS-Anwendungen können nur auf Apple-Geräten installiert werden. Daher muss Ihre iOS-App mit iOS-Versionen und iOS-Geräten kompatibel sein.

Dies ist die häufigste Frage, wenn Entwickler eine iOS-Anwendung erstellen.

Es spielt keine Rolle, wie viel Zeit Sie in Design und Implementierung investieren, Fehler sind unvermeidlich und es treten Fehler auf. Es gibt einige häufige Fehler in der iOS-Anwendung. Wie in der folgenden Abbildung gezeigt.

  1. Anwendung stürzt ab

Eines der frustrierendsten Probleme bei der Verwendung von Apple-Geräten ist, dass eine Anwendung während der Ausführung häufig abstürzt. Oft stürzt die App ab, weil in Apps Fehler oder Speicherverluste auftreten.

  1. Anwendungsinkompatibilitäten

Ihre iOS-Anwendung läuft möglicherweise perfekt auf der aktuellen iOS-Version, aber wenn iOS aktualisiert wird, funktioniert sie möglicherweise aufgrund von Inkompatibilitätsproblemen nicht.

  1. Sicherheitslücke

Eine Sicherheitslücke in iOS ermöglicht es dem Hacker, Ihre iOS-Geräte anzugreifen und Ihre privaten Informationen zu stehlen. Bisher wurden in verschiedenen iOS-Versionen schwerwiegende Sicherheitslücken für das iPhone entdeckt.

  1. Speicherlecks

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

In diesem Tutorial lernen Sie:

  • Warum iOS testen?
  • iOS testet MindMap
  • Checkliste für iOS-Tests
  • iOS-Teststrategie
  • Automatisiertes Testen
    • Unit-Test mit OCUnit
    • UI-Test mit UIAutomation
  • Manuelle Prüfung
    • Versuchsforschung
    • Benutzertests
      • Konzepttests
      • Usability-Tests
      • Beta-test
      • A / B-Tests
  • Best Practice für iOS-Tests
  • Mythen über iOS-Tests

iOS testet MindMap

Wie in der obigen Abbildung gezeigt, zeigt iOS Testing MindMap alle Elemente an, die der Tester beim Durchführen von Tests unter iOS berücksichtigen sollte.

Checkliste zum Testen von iOS-Anwendungen

Diese Checkliste wurde speziell entwickelt, um die Eigenschaften von iOS-Mobilanwendungen zu testen. Offensichtlich werden nur allgemeine Anwendungseigenschaften und nicht deren Funktionalität getestet.

  • Überprüfen Sie die Installationszeit, die die Anwendung auf dem Gerät benötigt. Stellen Sie sicher, dass die Anwendung innerhalb einer akzeptablen Zeit installiert ist.
  • Überprüfen Sie nach der Installation der Anwendung, ob die Anwendung über ein App-Symbol und einen Namen verfügt. Stellen Sie außerdem sicher, dass sowohl das Symbol als auch der Name selbsterklärend sind und die Kernabsicht der Anwendung widerspiegeln.
  • Starten Sie die Anwendung und prüfen Sie, ob der Begrüßungsbildschirm angezeigt wird.
  • Überprüfen Sie das Zeitlimit für den Begrüßungsbildschirm und die Zeit, die zum Laden des Startbildschirms benötigt wird. Der Startbildschirm der Anwendung sollte innerhalb einer akzeptablen Zeit geladen werden. Wenn das Laden des Startbildschirms nur länger dauert, besteht für den Benutzer eine größere Chance, die Anwendung selbst zu beenden oder sogar zu deinstallieren. Überprüfen Sie auch, wie der Inhalt auf dem Startbildschirm geladen wird.
  • Die Hauptfunktion der Anwendung sollte sofort ersichtlich sein. Es sollte für sich selbst sprechen.
  • Überprüfen Sie, ob die App sowohl Quer- als auch Hochformat unterstützt. Wenn ja, überprüfen Sie die App in beiden Ausrichtungen. Die Benutzeroberfläche der Anwendung sollte entsprechend eingestellt werden.
  • Starten Sie die Anwendung ohne Internetverbindung. Stellen Sie sicher, dass sich die App wie geplant / gewünscht verhält. Es besteht die Möglichkeit, dass die Anwendung beim Starten abstürzt oder nur einen leeren Bildschirm anzeigt.
  • Wenn die Anwendung Standortdienste verwendet, überprüfen Sie, ob eine Standortberechtigungswarnung angezeigt wird oder nicht. Diese Warnung sollte nur einmal an den Benutzer gesendet werden.
  • Wenn die Anwendung Push-Benachrichtigungen sendet, prüfen Sie, ob eine Benachrichtigung über Push-Benachrichtigungsberechtigungen angezeigt wird oder nicht. Diese Warnung sollte auch nur einmal an den Benutzer gesendet werden.
  • Starten Sie die Anwendung, beenden Sie sie und starten Sie sie neu. Überprüfen Sie, ob sich die App wie geplant / gewünscht verhält
  • Schließen Sie die Anwendung, indem Sie auf die Home-Schaltfläche des Geräts tippen und die App erneut öffnen. Überprüfen Sie, ob die App wie geplant / gewünscht funktioniert.
  • Überprüfen Sie nach der Installation, ob die App in der App für iPhone-Einstellungen aufgeführt ist.
  • Überprüfen Sie nach dem Live-Schalten der Anwendung, ob die Anwendung im "App Store" zu finden ist. Es wird eine unterstützte Betriebssystemversion für die Anwendung angezeigt. Stellen Sie daher sicher, dass die Anwendung im "App Store" des unterstützten Betriebssystemversionsgeräts gefunden wird. Außerdem sollte die Anwendung nicht im "App Store" des nicht unterstützten Betriebssystems aufgeführt sein.
  • Überprüfen Sie, ob die Anwendung im Hintergrund in den Ruhemodus wechselt, um ein Entladen des Akkus zu verhindern.
  • Wenn die Leistung der Anwendung langsam ist oder wenn Inhalte geladen werden, überprüfen Sie, ob ein Fortschrittsstatussymbol ("Laden ...") vorhanden ist, vorzugsweise mit einer bestimmten Meldung.
  • Suchen Sie die Anwendung mit ihrem Namen in der Gerätesuchleiste. Überprüfen Sie, ob die App aufgelistet ist
  • Überprüfen Sie, ob das Erscheinungsbild von Schaltflächen, die Standardaktionen ausführen, in der App nicht geändert wird (z. B. Aktualisieren, Organisieren, Papierkorb, Antworten, Zurück usw.).
  • Überprüfen Sie, ob Standardtasten nicht für andere Funktionen verwendet werden, als sie normalerweise verwendet werden

iOS-Teststrategie

In der folgenden Abbildung werden einige gängige Arten von iOS-Teststrategien vorgestellt.

Automatisiertes Testen

Automatisierte Tests sind die größten Vorteile von iOS-Tests. Sie können den Fehler und Leistungsprobleme schnell erkennen. Die Vorteile des automatisierten Testens wie folgt:

  • Automatisierte Tests können auf mehreren Geräten ausgeführt werden, wodurch Sie Zeit sparen
  • Automatisierte Tests können auf SDKs abzielen. Sie können Tests mit verschiedenen SDK-Versionen ausführen
  • Automatisierte Tests steigern Ihre Testproduktivität und sparen Kosten für die Softwareentwicklung
  • Es gibt viele Open-Source-Test-Frameworks, die automatisierte Tests unter iOS unterstützen

Unit-Test mit OCUnit

Als das ursprüngliche iOS SDK veröffentlicht wurde, fehlten Unit Unit Testing-Funktionen. Deshalb hat Apple die OCUnit-Unit-Test-Lösung in iOS SDK Version 2.2 zurückgebracht.

OCUnit ist ein Testframework für C-Objective unter Mac OS. Die größten Vorteile eines OCUnit-Frameworks sind die enge Integration in die XCode-Entwicklungsumgebung (siehe unten).

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

UI-Test mit UIAutomation

UI Automation ist eine von Apple Inc. bereitgestellte JavaScript-Bibliothek, mit der ein automatisierter Test auf realen Geräten und auf iOS Simulator durchgeführt werden kann. Dieses Framework wurde zu iOS SDK4.0 hinzugefügt. Mit der UI-Automatisierung können Sie das Testen der Anwendung nicht nur auf dem Simulator, sondern auch auf dem realen Gerät automatisieren.

UIAutomation bietet Ihnen folgende Vorteile:

  • Reduzieren Sie den Aufwand für manuelle Tests
  • Verwenden Sie weniger Speicher, um alle Ihre Tests auszuführen
  • Vereinfachen Sie Ihr UI-Testverfahren (drücken Sie einfach eine oder drei Tasten und führen Sie Ihre Testsuiten vollständig aus).

Das UIAutomation-Instrument arbeitet mit Skripten, die in JavaScript geschrieben sind. Es simuliert Benutzerereignisse in einer iOS-Zielanwendung.

UIAutomation Cons vs. Pros

Vorteile Nachteile
1. Gute Unterstützung für Geste und Rotation Es ist kein Open Source, weniger Unterstützung durch den Entwickler
2. Kann UIAutomation-Tests auf dem Gerät ausführen, nicht dem einzigen Simulator. Kann nicht sehr gut in andere Tools integriert werden
3. Es wurde von JavaScript entwickelt und ist eine beliebte Programmiersprache.

Die obige Abbildung zeigt einige gängige Klassen im UIAutomation-Framework.

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

Andere automatisierte Test-Frameworks

  • MonkeyTalk: Ein Tool zum automatisierten Testen von iOS-, Android-, HTML5- und Adobe-Anwendungen. Es ist eine integrierte Umgebung zum Verwalten und Ausführen von Testsuiten
  • Frank: Automated Acceptance Test Framework für iPhone und iPad
  • KIF: ist ein iOS- Integrationstest- Framework. Es ermöglicht eine einfache Automatisierung von iOS-Apps, indem die Eingabehilfen genutzt werden, die das Betriebssystem für Menschen mit Sehbehinderungen zur Verfügung stellt.

Manuelle Prüfung

Versuchsforschung

Es ist ein Test ohne formalen Testplan. Exploratory Testing ist eine kostengünstige Testmethode, die jedoch potenzielle Fehler in Ihrer iOS-Anwendung übersehen kann.

Exploratory Testing Cons vs. Pros

Vorteile Nachteile
1. Es ist weniger Vorbereitung erforderlich, um schwerwiegende Fehler frühzeitig zu erkennen. Erfordert hohe Fähigkeiten des Testers
2. Benötigen Sie keinen Testplan, um die Fehlererkennung zu beschleunigen. Die Testabdeckung ist gering. Es kann nicht garantiert werden, dass alle Ihre Anforderungen getestet werden.
3. Die meisten Fehler werden früh durch Erkundungstests entdeckt Fehlende Testdokumentation

Benutzertests

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

Konzepttests

Bewerten Sie die Benutzerreaktion auf eine Anwendungsidee, bevor Sie sie auf den Markt bringen. Verfahren zum Testen von Konzepten unter iOS werden nachfolgend beschrieben

Usability-Tests

Usability Testing ist ein Test, wie einfach die Verwendung Ihrer iOS-Anwendung ist. Bei iOS-Tests kann ein Usability-Test aufgezeichnet werden, um sich zu erinnern oder mit anderen zu teilen.

Es gibt einige Tools, die Usability-Tests unter iOS unterstützen.

Magitest, ein einfacher iOS-Usability-Test für Websites und Apps.

Delight.io, dieses Tool kann echte Benutzerinteraktionen auf Ihren iOS-Apps erfassen.

Beta-test

Beta-Test ist der Integrationstest mit realen Daten, um das endgültige Feedback der Benutzer zu erhalten. Um Ihre Apps für Betatests zu verteilen, müssen Sie die folgenden Schritte ausführen.

- Voraussetzung : Wenn Sie einen endgültigen Kandidaten für eine Version in der Beta testen, müssen Sie die App validieren, bevor Sie sie an Tester verteilen.

- Tester über Service suchen : Sie sammeln Geräte-IDs von Testern und fügen sie dem Member Center hinzu

- Ad-hoc-Verteilung erstellen : Mit der Ad-hoc-Verteilung kann der Tester Ihre App auf seinem Gerät ausführen, ohne Xcode zu benötigen. Dieser Schritt umfasst 2 Unterschritte

  • Erstellen Sie Verteilungszertifikate
  • Erstellen Sie Ad-hoc-Bereitstellungsprofile

- Bitten Sie den Tester um Feedback: Der Tester führt Tests durch und sendet Ihnen Fehlerberichte. Nach der Veröffentlichung Ihrer App können Sie die Berichte von iTunes Connect abrufen.

A / B-Tests

A / B-Tests sind eine der leistungsstärksten Methoden, um die Effektivität Ihrer iOS-App zu bewerten . Es werden randomisierte Experimente mit zwei Geräten, A und B, verwendet.

A / B-Tests umfassen drei Hauptschritte

  • Konfigurieren eines Tests : Bereiten Sie 2 Versionen Ihrer iOS-App (A & B) und Testmetrik vor
  • Test : Testen Sie 2 der oben genannten iOS-Apps-Versionen gleichzeitig auf Geräten.
  • Analysieren : Messen und wählen Sie eine bessere Version für die Freigabe aus

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

  • Entstehen: A / B-Tests für iOS und Android. Es kann in Ihre iOS-App integriert werden und beschleunigt den Testprozess.

Best Practices für A / B-Tests

  • Definieren Sie das Ziel Ihres Tests. Jeder Test ist ohne Ziel nutzlos.
  • Beobachten Sie, wie Endbenutzer Ihre App zum ersten Mal verwenden
  • Führen Sie nur einen Test pro Update aus. Dies spart Zeit bei der Durchführung von Tests
  • Überwachen Sie Ihren Test sorgfältig. Sie können Erfahrungen aus Ihrem Test lernen, indem Sie ihn überwachen.

Best Practice für iOS-Tests

Hier sind einige Tipps, die Sie beim Organisieren des Testens Ihrer iOS-Anwendung kennen sollten

  1. Testen Sie die Anwendung auf einem realen Gerät , um die Leistung zu überprüfen
  2. Verbessern Sie Ihre Testmethoden, da herkömmliche Testmethoden nicht mehr ausreichen, um alle Tests mit iOS-Tests abzudecken
  3. Verwenden des Konsolenprotokolls zum Testen der iOS-Anwendung. Dies ist eine iOS-Funktion, die Informationen aus jeder Anwendung auf dem Gerät enthält.
  4. Dokumentieren Sie Anwendungsfehler mit dem integrierten Bildschirmkurzbefehl . Es hilft Entwicklern zu verstehen, wie die Fehler auftreten.
  5. Absturzberichte sind nützliche Tools beim Testen Ihrer Anwendung. 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 von iOS-Tests untersucht

Das Testen von Anwendungen unter iOS und Android ist dasselbe.

iOS und Android sind zwei Plattformen, die von Apple Inc und Google entwickelt wurden. Sie sind völlig anders. Usw. Testumgebungen, Test-Frameworks, Programmiersprachen.

Testanwendung auf iOS Simulator ist ausreichend.

iOS Simulator ist nicht stark genug, um eine App zu testen. Weil iOS Simulator einige Einschränkungen hat:

  • Hardwareeinschränkungen (Kamera, Mikrofoneingang, Sensor)
  • Die Benutzeroberfläche Ihrer App scheint 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 lädt meine Apps im App Store herunter, da er viele Funktionen bietet

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.