Edge Cases sind Test-Cases, die sich außerhalb des üblichen Nutzer Workflows befinden. Edge Case Testing ist deshalb ein kreatives Testverfahren, in dem Tester*innen der App unerwarteten Input geben, den Workflow unterbrechen, oder die App in unbeabsichtigter Weise bedienen. Was ein Edge Case umfasst und warum wir sie unbedingt in Test Cases einbinden sollen, haben wir in diesem Beitrag zusammengefasst, damit Ihr wisst, wie ein ausführliches Testverfahren abläuft.

Was ist ein Edge Case?

Edge Cases sind Tests, die nicht auf dem „Happy Path“ einer App liegen und somit Fehler entdecken, die nur selten oder vereinzelt auftreten. Solche Sonderfälle kommen vor, wenn Nutzer*innen sich außerhalb der normale Nutzungsszenarien bewegen oder wenn eine App in einem nicht geplanten Umfeld bedient wird. Edge Case Fehler gehören nicht unbedingt zu den Kernfunktionen der Software, dennoch können sie diese beeinflussen oder auf Fehler in diesen hinweisen. Darum ist es wichtig, dass Tester*innen diese Fälle berücksichtigen. Edge Cases können in folgende Kategorien aufgeteilt werden:

  1. Allgemeine Sonderfälle sind meistens schon bekannt und lassen sich vergleichsweise unkompliziert testen – man darf sie einfach nicht vergessen. Klassische Beispiele dafür sind Feiertage oder Schaltjahre bei auf Kalenderdaten basierenden Funktionen.
  2. Extremfälle treten oft unter Stress auf. Ein klassischer Edge Case ist zum Beispiel schlechte Internetverbindung oder Störungen im GPS System, wie es bei Tiefgaragen oder Aufzügen der Fall sein kann.
  3. Betriebssystem- oder gerätebedingte Fälle beziehen sich auf die Plattform, auf der die Software läuft. Solche Edge Cases werden im Laufe der Nutzung immer wieder auftreten und können durch Software Updates behoben werden. Zum Beispiel:
    1. Ein neuer Fehler tritt nach einem Systemupdate von Android oder iOS auf.
    2. Bei einer Web-App taucht ein Problem in einzelnen Browsern auf.
    3. Ein Bug betrifft Nutzer*innen eines bestimmten Geräts.
    4. Eine Kombination aus zwei oder drei diesen Faktoren.
  4. Andere Fälle treten natürlich auch ein. Manchmal verhalten sich Nutzer*innen auf eine Art und Weise, die Entwickler*innen nicht vorhersehen können. In diesen Fällen dient das sehr wichtige Kundenfeedback dafür, um aufmerksam auf solche Fehler zu werden.

Edge Case Testing wird oft mit Boundary Value Testing verwechselt. Beim Boundary Value Testing werden Eingabewerte in bestimmten Eingabemasken unter und über dem Grenzwert getestet. Edge Cases sind eher vereinzelte Sonderfälle, die aufgrund außergewöhnliche Nutzerverhalten oder extremer umgebungsbedingter Faktoren auftreten. Die Testverfahren sind also oft miteinander verbunden, laufen aber zum Teil ganz anders ab.

Warum sollten Edge Cases in Tests mit aufgenommen werden?

Alltägliche Nutzung lässt sich oft schwer unter Laborbedingungen spiegeln. Ein Beispiel hierfür ist die Belastung des Arbeitsspeichers: Im Alltag wird dieser von anderen im Hintergrund laufenden Apps eines Gerätes viel mehr belastet und das hat Auswirkungen auf die Performance von getesteten Apps: Doch nicht immer werden Tester*innen YouTube, Google Maps, Instagram und einen Browser mit 30 offenen Tabs laufen haben. Es kommt also zu einer Verzerrung des Testes, in der eine extreme Nutzung des Arbeitsspeichers nicht mitbedacht wird. Edge Cases können allgemeine Probleme der Software ans Tageslicht bringen – wenn eine App solche Stresstests nicht besteht, ist dies oft ein Zeichen dafür, dass die Performance einer App mangelhaft ist.

Manche Entwickler*innen setzen weniger Wert auf die Lösung von Edge Cases, da diese Fehler nur selten auftreten und oft nur einen kleinen Teil der Nutzer betreffen. Doch lohnt es sich solche Fehler zu beheben, denn kleine Programmfehler können große Probleme verursachen:

  1. Kunden könnten Deine App nicht mehr nutzen. Appnutzer*innen sind flüchtig und der Markt vielfältig. Hat Deine App im Moment ein Monopol über ihre Funktion, hast Du Glück. Wenn nicht, könnten Nutzer*innen nach einer schlechte Erfahrung zu einem Konkurrenzanbieter wechseln.
  2. Nutzerberichte beeinflussen möglicherweise die Reputation Deiner App. Auch wenn er nur einmal auftritt und schnell behoben wird, könnte ein negativer Tweet über einen Bug Deiner App ausreichen, um potenzielle Nutzer abzuschrecken.
  3. Dein Kundenserviceteam wird belastet. Und ist es nicht in der Lage User zu unterstützen, müsst Ihr selbst auf Kundenanfragen und Beschwerden reagieren, was Euch Zeit kostet.

Darum sollten Edge Cases schon bei der Erstellung der übrigen Test Cases entwickelt werden. So spart Ihr langfristig Geld und Zeit und gewinnt glücklichen Nutzer*innen. Selbstverständlich ergeben sich im Laufe der Entwicklung und Nutzung immer weitere Szenarien, aus denen neue Edge Cases erwachsen – wichtig ist, diese durch umfassendes Test Planning zu antizipieren.

Wie kreiert man Edge Test Cases?

Edge Cases sind oft schwer reproduzierbar und damit eine große Herausforderung. Dennoch lassen sich einige Test Cases für die Testphase bereits antizipieren.

  1. Bei der Kreation von Edge Cases sollte man möglichst reale Nutzungsszenarien Ein Beispiel: Eine Navigationsapp sollte auf Fehler beim Wechsel des Funknetzes während der Autofahrt getestet werden.
  2. Edge Cases ergeben sich immer wieder durch Kundenfeedback. Es ist unmöglich, dass Du als Entwickler*in alle potentiellen Nutzungsszenarien vorhersiehst. Deshalb ist es wichtig, Kundenfeedback zu sammeln und zeitnah darauf zu reagieren, zum Beispiel mit Software Updates.
  3. Allgemeine Edge Cases wie Schaltjahre sind schon bekannt und sollten bei jeder neuen Appentwicklung berücksichtigt werden.
  4. Priorisierung ist zudem wichtig. Es gibt unendlich viele mögliche Edge Cases und oft sehr begrenzte Zeit in der Appentwicklung. Darum müssen Entwickler*innen gezielt vorgehen und zuerst Probleme beheben, die mit höherer Wahrscheinlichkeit auftreten oder mehrere Nutzer*innen betreffen können.

Unser Standardset an Edge Cases

Wir fügen jedem Testrun ein eigenes Set an Standard Edge Cases hinzu, darunter Mobile spezifische Cases: Funktioniert Deine App wie sie soll auf allen Plattformen und Geräten? Wir testen unter folgenden Bedingungen:

  • Langsame Internetverbindung
  • Mobile Internetverbindung
  • Offline-Zustand
  • Wechsel in den Standby-Mode
  • Wechsel zwischen Apps
  • Berechtigungen (Standort, Kamera, Mikrofon, usw.)
  • Eingang von Push-Benachrichtigungen
  • Allgemeine Stresstests:
    • sehr schnelle Bedienung der App
    • Wechsel zwischen Seiten
    • App während des Ladens in den Hintergrund versetzen und wieder hervorholen
    • Unterbrechung von Ladesequenzen

Fazit: Wie wir Euch mit Edge Case Testing unterstützen

Das Finden und Ausführen von Edge Cases ist ein umfassender Prozess, dessen Wichtigkeit in keinem Fall unterschätzt werden und Teil eines jeden guten Testplans sein sollte. Wir haben weitreichende Erfahrungen mit Edge Cases gesammelt, um schon vor dem Release Eurer App ungewohntes User Verhalten oder Situation zu antizipieren.

Fordert gerne einen Testplan von uns an, um genau zu verstehen, wie wir im Prozess vorgehen.