Interrupt-Tests in mobilen Anwendungen
โก Intelligente Zusammenfassung
Interrupt-Tests prรผfen, wie sich eine mobile Anwendung verhรคlt, wenn ein Anruf, ein Alarm, eine Benachrichtigung oder ein Netzwerkabbruch die Verbindung unterbricht, und ob die Anwendung nach Beendigung der Unterbrechung wieder in ihren vorherigen Zustand zurรผckkehrt.
Was ist Interrupttest?
Interrupt-Tests Der Test von mobilen Anwendungen ist ein Teilgebiet, das sich damit befasst, wie eine Anwendung auf eine Unterbrechung reagiert und ihren vorherigen Zustand wiederherstellt. Die Unterbrechung kommt von auรerhalb der Anwendung โ vom Betriebssystem, der Hardware oder einer anderen App โ und der Test รผberprรผft, ob beim Wiedereintritt der Kontrolle keine Daten, Bildschirmzustรคnde oder laufende Transaktionen verloren gehen.
Interrupt-Testing ist fรผr alle Anwendungstypen anwendbar โ Web-, Mobil-, Standalone-Anwendungen usw. Die Vielfalt an Gerรคten, Netzwerken und Konfigurationen macht es umso wichtiger fรผr โฆ Mobile mehr als fรผr die anderen.
Warum brauchen Sie Interrupt-Tests?
Was passiert fast immer in Meetings? Man wird unterbrochen, richtig? Manche reagieren darauf vรถllig unbeeindruckt, andere brauchen einen Moment, um sich zu fangen, und wieder andere verlieren komplett den Faden. Kurz gesagt: Interrupt-Testing versucht herauszufinden, welches Verhalten Ihre Anwendung in solchen Situationen zeigt.
Vergessen wir fรผr einen Moment die Formulierung und betrachten wir eine andere Situation aus dem Alltag. Angenommen, Sie besitzen eine Taschenlampe und schalten sie ein. Die Batterie ist leer, was den aktuellen Betriebszustand unterbricht. Tauschen Sie die Batterien aus und schalten Sie die Taschenlampe wieder ein. Sie sollte nun wieder normal funktionieren. Dies ist der Anwendungsfall. Eine Testmethode, die sich darauf konzentriert, ob dies tatsรคchlich der Fall ist oder nicht, nennt sich Interrupt-Test.
Der geschรคftliche Nutzen ist eindeutig. Eine Unterbrechung tritt im ungรผnstigsten Moment auf โ mitten in einer Zahlung, einem Upload oder einem Formular โ und ein Nutzer, der seine Arbeit verliert, versucht es selten erneut. Abstรผrze beim Fortsetzen, leere Bildschirme, doppelte Transaktionen und verlorene Formulareingaben sind allesamt Fehler, die nur durch eine Unterbrechung aufgedeckt werden. Deshalb bleiben sie auch bei einem reibungslosen Ablauf ohne Unterbrechungen bestehen.
Art der Unterbrechungen in der mobilen Anwendung
Unterbrechungen lassen sich in eine Handvoll bekannter Gruppen einteilen, die in der folgenden Abbildung zusammengefasst sind.
Wir alle kennen die รผblichen Unterbrechungen, die normalerweise auftreten. Hier sind einige davon:
- Batterie schwach
- Akku voll โ wรคhrend des Ladevorgangs
- Eingehender Anruf
- Eingehende SMS
- Eingehende Benachrichtigung von einer anderen mobilen Anwendung
- Zum Aufladen eingesteckt
- Vom Laden getrennt
- Gerรคt ausgeschaltet
- Erinnerungen an Anwendungsaktualisierungen
- Alarme
- Verlust der Netzwerkverbindung
- Wiederherstellung der Netzwerkverbindung
Diese Liste ist nicht vollstรคndig, umfasst aber die hรคufigsten Szenarien. Eine praktische Mรถglichkeit zur Organisation bietet die Kategorisierung nach Ursprung: gerรคteabhรคngige Ereignisse wie Akku und Ladevorgang, benutzerinitiierte Ereignisse wie das Annehmen eines Anrufs oder das Wechseln von Apps und externe Ereignisse wie Signalverlust in einem Aufzug oder Tunnel.
Lรถsung im Falle einer Unterbrechung
Das zu erwartende Verhalten im Falle dieser Unterbrechungen ist eines der folgenden vier:
- Im Hintergrund laufen: Die Unterbrechung tritt in den Hintergrund, wรคhrend die Anwendung vorรผbergehend pausiert. Nach Beendigung der Unterbrechung รผbernimmt sie wieder die Kontrolle. Ein Beispiel hierfรผr ist ein Telefon- oder FaceTime-Anruf, den Sie annehmen, wรคhrend Sie ein E-Book in iBooks (oder einer รคhnlichen Anwendung) lesen. Sobald Sie den Anruf annehmen, wartet iBooks, bis das Gesprรคch beendet ist, und setzt die Nutzung anschlieรend fort.
- Benachrichtigung anzeigen: Die Benachrichtigung verschwindet und Sie arbeiten wie gewohnt weiter. Im Header erscheint die Meldung โSMS empfangenโ. Der Nutzer ignoriert dies und arbeitet normal mit der Anwendung. Auch andere Benachrichtigungen von mobilen Apps, wie beispielsweise eine neue Freundschaftsanfrage auf Facebook oder eine WhatsApp-Nachricht, fallen in diese Kategorie. Liest der Nutzer die Nachricht, verhรคlt sich die Anwendung wie unter Punkt 1 beschrieben. Ignoriert er die Benachrichtigung, bleibt der Zustand der Anwendung unverรคndert.
- Aufruf zum Handeln: Alarme mรผssen deaktiviert oder auf Schlummern gestellt werden, bevor Sie weiterarbeiten kรถnnen. Dasselbe gilt fรผr App-Update-Benachrichtigungen. Sie mรผssen die รnderungen entweder ablehnen oder akzeptieren, bevor Sie fortfahren kรถnnen. Ein weiteres Beispiel ist die Warnung bei niedrigem Akkustand: Sie kรถnnen wie gewohnt fortfahren oder, falls vom Gerรคt unterstรผtzt, in den Energiesparmodus wechseln.
- Keine Auswirkung: Ein Beispiel hierfรผr ist, wenn eine Netzwerkverbindung hergestellt wird und sich Ihr Gerรคt damit verbindet. Auch beim Anschlieรen Ihres Gerรคts zum Laden ist keine Benachrichtigung oder Handlungsaufforderung erforderlich. Es lรคdt wahrscheinlich automatisch, wรคhrend Sie Ihre Anwendung weiter nutzen.
Je nachdem, welche Unterbrechung Sie testen, sollten Sie das Verhalten verstehen und prรผfen, ob Ihre Anwendung die Anforderungen erfรผllt. Beachten Sie auรerdem, dass das oben beschriebene Verhalten nicht fรผr alle Anwendungen und Gerรคte gleich sein muss. Informieren Sie sich daher unbedingt รผber die spezifischen Details Ihrer mobilen App.
Interrupt-Testing-Testfรคlle mit erwarteten Ergebnissen
Sobald die erwartete Lรถsung vereinbart ist, wird jede Unterbrechung zu einem gewรถhnlichen Testfall mit einem Auslรถser, einer Aktion und einem รผberprรผfbaren Ergebnis. Die folgende Tabelle zeigt, wie die vier oben genannten Lรถsungen in konkrete Szenarien umgesetzt werden.
| Unterbrechung | Testszenario | Erwartetes Ergebnis |
| Eingehender Anruf | Einen Anruf auslรถsen, wรคhrend ein Formular halb ausgefรผllt ist, diesen annehmen und anschlieรend beenden. | Die Anwendung wechselt in den Hintergrund und wird anschlieรend auf demselben Bildschirm mit den eingegebenen Daten fortgesetzt. |
| Eingehende SMS oder Push-Benachrichtigung | Senden Sie eine Nachricht, wรคhrend ein Video aufgenommen oder hochgeladen wird, und ignorieren Sie das Banner. | Das Banner erscheint und verschwindet; der Anwendungsstatus bleibt unverรคndert. |
| Alarme | Lassen Sie einen geplanten Alarm wรคhrend einer aktiven Sitzung auslรถsen und ignorieren Sie ihn. | Der Alarm erfordert zunรคchst eine Handlungsaufforderung, anschlieรend wird die Anwendung an der Stelle fortgesetzt, an der sie unterbrochen wurde. |
| Batteriewechselanzeige | Entleere das Gerรคt wรคhrend einer Transaktion bis zum Warnschwellenwert. | Es wird eine Warnung angezeigt, die Transaktion wird nicht abgebrochen, und der Energiesparmodus fรผhrt nicht zu einem Bildschirmabsturz. |
| Verlust der Netzwerkverbindung | Die Verbindung wรคhrend der Anfrage unterbrechen und anschlieรend wiederherstellen. | Es wird eine eindeutige Meldung angezeigt, es tritt kein Absturz auf, und die Anfrage wird bei der Wiederherstellung entweder erfolgreich abgeschlossen oder schlรคgt sicher fehl. |
| Laden im angeschlossenen oder nicht angeschlossenen Zustand | Schlieรen Sie das Ladegerรคt wรคhrend einer aktiven Sitzung an und trennen Sie es. | Keine Auswirkungen โ die Anwendung lรคuft ohne sichtbare Verรคnderung weiter. |
| Erinnerung an Anwendungsaktualisierung | Zeigen Sie eine Aktualisierungsaufforderung an, wรคhrend die Anwendung verwendet wird. | Der Nutzer kann abbrechen oder akzeptieren, und der zugrundeliegende Bildschirm bleibt in beiden Fรคllen erhalten. |
Verwenden Sie fรผr jeden kritischen Bildschirm und jede Unterbrechung eine eigene Zeile, anstatt fรผr jede Unterbrechung in der gesamten Anwendung eine eigene Zeile zu verwenden. Der Zahlungsbildschirm, der Anmeldebildschirm und ein ausfรผhrliches Formular weisen jeweils unterschiedliche Fehler auf, und ein einzelner generischer Fall verschleiert diese Unterschiede.
Nachdem wir nun verstanden haben, was Interrupt-Tests sind und was bei der Durchfรผhrung validiert werden muss, ist es an der Zeit, darรผber zu sprechen, wie man es durchfรผhrt.
So fรผhren Sie Interrupt-Tests durch
Schauen Sie sich diese Aussage an: iBooks muss im Hintergrund laufen, wenn der Benutzer einen eingehenden Anruf erhรคlt.
Wรผrden Sie das nicht als funktionale Anforderung der iBooks-App bezeichnen? Ich schon.
Interrupt-Tests sind also eine Teilmenge von Funktionsprรผfung Fรผr eine mobile Anwendung. Um Unterbrechungstests durchzufรผhren, verwenden Sie dieselben Testframeworks und -tools wie fรผr mobile Anwendungen. Es ist Aufgabe der Tester, diese Szenarien zu konzipieren. Anschlieรend entwerfen Sie die Testfรคlle und fรผhren sie genauso aus wie jeden anderen Test.
In der Praxis ist die Sequenz kurz und wiederholbar:
- Listen Sie die wichtigsten Benutzerablรคufe auf โ Anmeldung, Zahlung, Upload, Langformulare, Medienwiedergabe.
- Ordnen Sie jede mรถgliche Unterbrechung aus der obigen Liste jeder einzelnen Reise zu.
- Die erwartete Lรถsung fรผr jedes Paar sollte mit dem Produktinhaber vereinbart werden, da es keinen universellen Standardwert gibt.
- Die Unterbrechung sollte im risikoreichsten Moment erfolgen, nicht in einem ruhigen Augenblick, und anschlieรend sollte die Ausfรผhrung fortgesetzt werden.
- รberprรผfen Sie nach der Wiederaufnahme den Zustand, die Daten, die Sitzung und den Speicher, nicht nur, ob die Anwendung noch geรถffnet ist.
Weitere Informationen zum รผbergeordneten Fachgebiet finden Sie unter Mobiles Testen Tutorial und die Beispielfรคlle in Testen mobiler Apps.
Werkzeuge und Techniken zur Simulation von Unterbrechungen
Die oben genannten Szenarien mรผssen bedarfsorientiert erstellt werden, anstatt darauf zu warten, und jede Plattform bietet eine Mรถglichkeit dazu.
- Android Erweiterte Emulatorsteuerung: Das Emulator-Seitenpanel simuliert einen eingehenden Anruf, eine SMS, den Akkustand und den Ladezustand sowie die Mobilfunksignalstรคrke, sodass die meisten Unterbrechungslisten ohne ein zweites Mobiltelefon abgearbeitet werden kรถnnen.
- iOS-Simulator und Xcode: Konnektivitรคts- und Hardwarezustรคnde kรถnnen sowohl vom Simulator als auch von den Gerรคteeinstellungen aus variiert werden, wรคhrend ein gekoppeltes physisches Gerรคt die Anrufszenarien abdeckt, die ein Simulator nicht erzeugen kann.
- Ein zweites physisches Gerรคt: Das Anrufen oder Senden einer Nachricht an das zu testende Gerรคt von einem anderen Mobiltelefon aus ist nach wie vor die zuverlรคssigste Methode, um eine reale Unterbrechung zu simulieren, insbesondere in zeitkritischen Fรคllen.
- Gerรคteeinstellungen: Flugmodus, WLAN-Umschaltung, Nicht stรถren, Energiesparmodus und geplante Alarme decken Verbindungs- und Stromausfรคlle auf realer Hardware ab.
- Automatisierungs-Frameworks: Derselbe Automatisierungs-Stack, der fรผr den Rest Ihrer Funktionssuite verwendet wird, kann die Anwendung vor und nach der Unterbrechung steuern, sodass die Wiederaufnahmeprรผfung durchgefรผhrt und nicht nur visuell รผberprรผft wird.
- Echtzeit-Gerรคte-Clouds: Eine gehostete Gerรคtefarm erweitert die Abdeckung รผber verschiedene Hersteller und Betriebssystemversionen hinweg, was wichtig ist, da die Unterbrechungsbehandlung einer der Bereiche ist, in denen die Anpassungen der Hersteller am stรคrksten voneinander abweichen.
Unabhรคngig vom Mechanismus sollte der genaue Zeitpunkt der Unterbrechung im Testfall protokolliert werden. โUnterbrechung wรคhrend des Uploadsโ und โUnterbrechung nach dem Uploadโ sind unterschiedliche Tests mit unterschiedlichen Fehlermodi.
Best Practices fรผr Interrupt-Tests
Ein paar Gewohnheiten unterscheiden eine sinnvolle Interrupt-Suite von einer bloรen Pflichtรผbung.
- Unterbrechen im ungรผnstigsten Moment: Target in dem Moment, in dem eine Transaktion abgeschlossen oder eine Datei geschrieben wird, denn dann ist der Zustand am fragilsten.
- Testen Sie den Lebenslauf, nicht die Unterbrechung: Der Fehler tritt fast immer nach der Rรผckkehr der Steuerung auf, daher gehรถren die Assertions auf den wiederhergestellten Bildschirm.
- Beide Richtungen einer Netzwerkรคnderung abdecken: Der Verlust und die Wiederherstellung einer Verbindung sind zwei verschiedene Dinge, wobei der zweite Fall hรคufiger รผbersprungen wird.
- Die Dauer variieren: Ein zweisekรผndiger Alarm und ein zehnminรผtiger Anruf versetzen die Anwendung in verschiedene Lebenszyklusphasen, einschlieรlich der Entfernung aus dem Speicher.
- Verteilt auf verschiedene Betriebssystemversionen und leistungsschwache Hardware: Die Hintergrundlรถschung ist bei leistungsschwachen Gerรคten weitaus aggressiver, wodurch Mรคngel sichtbar werden, die ein Flaggschiff-Handy verbirgt.
- Automatisieren Sie die wiederholbaren Aufgaben: Verbindungs- und Batterieunterbrechungen werden sauber automatisiert, wodurch der manuelle Aufwand bei Anruf- und Alarmszenarien reduziert wird.
- Beachten Sie sowohl die Ressourcennutzung als auch den Status: Eine Unterbrechung, die zu Speicherlecks oder einer schnellen Entladung des Akkus beim Fortsetzen fรผhrt, ist ein Fehler, selbst wenn der Bildschirm korrekt aussieht, was diese Arbeit mit โฆ in Verbindung bringt. Leistungstests fรผr mobile Apps.
Ist Interrupt-Testen nicht dasselbe wie Wiederherstellungstests?
Nein ist es nicht. Wiederherstellungstests Die Wiederherstellung nach einem Ausfall wird bestรคtigt. Eine Unterbrechung ist nicht zwangslรคufig ein Ausfall โ sie ist lediglich eine Stรถrung.traction.
Es ist wie der Unterschied zwischen Komma und Punkt im Englischen. Die Unterscheidung ist rein technischer Natur, aber das Prinzip ist klar. Wiederherstellungstests prรผfen, ob die Anwendung nach einem Fehler wieder funktioniert; Unterbrechungstests prรผfen, ob รผberhaupt Fehler auftreten, wenn ein anderer Prozess in den Vordergrund tritt.
Das ist alles, was man wissen muss, um mit Interrupt-Testing zu beginnen โ einem wichtigen und intuitiven Zweig des Mobile Application Testing.

