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.

  • ๐Ÿ”˜ Umfang: Die Technik gehรถrt zum Bereich Mobile Application Testing, ist aber auch auf Web- und Standalone-Software anwendbar.
  • โ˜‘๏ธ Unterbrechungsquellen: Eingehende Anrufe, SMS, Alarme, niedriger Akkustand, Ladevorgรคnge, App-Updates und Netzwerkรคnderungen decken die meisten realen Szenarien ab.
  • โœ… Vier erwartete Ergebnisse: Im Hintergrund ausfรผhren, eine Warnung anzeigen, eine Handlungsaufforderung auslรถsen oder keine Auswirkungen haben โ€“ jede Anwendung definiert, welche Option gilt.
  • ๐Ÿงช Versuchsaufbau: Interrupt-Testing ist eine Teilmenge des Funktionstests, daher gelten die gleichen Frameworks, Testfรคlle und Ausfรผhrungsprozesse.
  • ๏ธ Simulation: Der Emulator bietet erweiterte Steuerelemente, Gerรคteeinstellungen und Realgerรคte-Clouds, die Anrufe, Warnmeldungen und Verbindungsabbrรผche auf Abruf nachbilden.
  • ๐Ÿ“Š Kein Wiederherstellungstest: Wiederherstellungstests validieren die Wiederherstellung nach einem Ausfall, wรคhrend eine Unterbrechung nur ein vorรผbergehender Fehler ist.traction, kein Fehler.

Interrupt-Test in einer mobilen Anwendung, bei dem ein eingehender Anruf den aktiven App-Bildschirm รผbernimmt

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.

Arten von Unterbrechungen in einer mobilen Anwendung, einschlieรŸlich Anrufen, SMS, Alarmen, Akku- und Netzwerkereignissen

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:

  1. 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.
  2. 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.
  3. 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.
  4. 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:

  1. Listen Sie die wichtigsten Benutzerablรคufe auf โ€“ Anmeldung, Zahlung, Upload, Langformulare, Medienwiedergabe.
  2. Ordnen Sie jede mรถgliche Unterbrechung aus der obigen Liste jeder einzelnen Reise zu.
  3. Die erwartete Lรถsung fรผr jedes Paar sollte mit dem Produktinhaber vereinbart werden, da es keinen universellen Standardwert gibt.
  4. Die Unterbrechung sollte im risikoreichsten Moment erfolgen, nicht in einem ruhigen Augenblick, und anschlieรŸend sollte die Ausfรผhrung fortgesetzt werden.
  5. รœ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.

Hรคufig gestellte Fragen

Die Szenarien sind dieselben, die Ergebnisse jedoch nicht. Die beiden Plattformen handhaben Hintergrund-Apps und Speicherbereinigung unterschiedlich, und Android Hersteller-Skins fรผgen ihre eigenen Batterieregeln hinzu, sodass derselbe Test bei einer Gerรคtefamilie erfolgreich sein und bei einer anderen fehlschlagen kann.

KI-Modelle analysieren Nutzerberichte und Absturzprotokolle und schlagen Unterbrechungskombinationen vor, die ein Tester mรถglicherweise nicht berรผcksichtigt hat โ€“ beispielsweise einen Anruf, der genau zum Zeitpunkt der Token-Aktualisierung eingeht. Maschinelles Lernen gruppiert zudem Absturzprotokolle aus der Produktion, um zu zeigen, welche Unterbrechungen tatsรคchlich zuerst zu Problemen bei echten Nutzern fรผhren.

Copilot erstellt die Standardversionen gut โ€“ die App wird in den Hintergrund verschoben, die Verbindung umgeschaltet, gewartet und anschlieรŸend der wiederhergestellte Bildschirm angezeigt. Die Entscheidung, wann der Vorgang unterbrochen werden soll und welcher Zustand erhalten bleiben muss, obliegt dem Tester. Daher sollten die generierten Skripte als Ausgangspunkt fรผr die รœberprรผfung dienen.

Ja. Beide Bezeichnungen beschreiben dieselbe Aktivitรคt und werden team- und toolรผbergreifend synonym verwendet. Wรคhlen Sie fรผr Ihren Testplan eine Schreibweise und verwenden Sie diese konsequent, da uneinheitliche Terminologie die Suche nach Testsuiten erschwert und die Erstellung doppelter Fรคlle erleichtert.

Nutzen Sie beides. Emulatoren eignen sich ideal fรผr schnelle, wiederholbare Verbindungen und den Akkuverbrauch in einer Pipeline. Echte Gerรคte werden fรผr authentische Anrufe, herstellerspezifische Akkuverwaltung und das Entfernen von Verbindungen bei geringem Speicher benรถtigt โ€“ genau die Bedingungen, unter denen die schwerwiegendsten Wiederaufnahmefehler aufgedeckt werden.

Abstรผrze beim Fortsetzen, leere oder falsche Bildschirme nach der Rรผckkehr, verlorene Formulareingaben, doppelte Zahlungen bei wiederholten Anfragen, unterbrochene Sitzungen, die eine erneute Anmeldung erfordern, blockierte Medienwiedergabe und Speicher- oder Batterielecks, die erst auftreten, nachdem die Anwendung wiederholt in den Hintergrund verschoben wurde.

Beides trifft zu. Netzwerk-, Akku- und App-Wechselunterbrechungen lassen sich zuverlรคssig skripten und gehรถren in den Regressionstest. Eingehende Anrufe, Alarme und herstellerspezifische Energiesparhinweise lassen sich in der Regel schneller manuell auf einem echten Endgerรคt testen, daher halten die meisten Teams ein kleines manuelles Testset bereit.

Beginnen Sie mit der Fehlerbehebung, sobald eine kritische Funktion vollstรคndig implementiert ist, und nicht erst in der letzten Hรคrtungsphase. Wiederaufnahmefehler erfordern oft ร„nderungen am Lebenszyklus oder Zustandsmanagement, deren nachtrรคgliche Anpassung nach dem Einfrieren des Release Candidates kostspielig ist.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: