App-Entwicklung findet parallel in verschiedenen Phasen statt und damit auch das App-Testing. Oft gibt es beim neuesten Build, neuestem Update oder bei einer Feedbackschleife zum Kernprodukt unterschiedliche Timelines einzuhalten und dementsprechend nur wenig Zeit alle Komponenten einer Entwicklung erneut auf Herz und Nieren zu prüfen. In diesem Artikel erklären wir Dir, wie Du am besten das Testing einer App planst, wenn du wenig Zeit hast und welche Bereiche du am besten priorisierst.

1. Priorisierung mit den Stakeholdern gemeinsam

Ein Release ist geplant oder neue rechtliche Anforderungen erzwingen zeitlichen Druck für neue Features und es gibt weder das Budget noch die Kapazitäten für zeitintensives Testing? In diesem Fall lohnt es sich zunächst mit den Stakeholdern und dem Product Owner zu besprechen welche Features besonders wichtig sind und daher eher priorisiert werden sollten.

2. Schwerpunkte identifizieren

Bei der Priorisierung sollten verschiedene Aspekte und Perspektiven berücksichtigt werden:

  • Aus Entwicklungssicht ist es besonders wichtig anfällige Features zu testen. Ein gutes Indiz für eine hohe Priorität ist zum Beispiel die Häufigkeit von wieder auftretenden Fehlern. Je höher diese ist, desto höher sollte priorisiert werden. Als anfällig gelten beispielsweise komplexe Logiken oder neue technische Entwicklungen.
  • Aus Sicht der Kunden sind die Key Features einer App besonders wichtig und sollten in jeder Iteration immer reibungslos funktionieren. Aus den Key Features und ihrer Priorität auf Kund*innen und deren User ergibt sich so auch ein Muster für die Priorisierung der Test Cases.
  • Aus Sicht der internen Stakeholder ist natürlich auch der Projekterfolg wichtig und das effiziente Nutzen von Kapazitäten und Budget: An dieser Stelle bieten sich verschiedene Szenarien an. Eine risikobasierte Priorisierung geht beispielsweise nach der Einschätzung an welcher Stelle der größte Schaden entsteht, wenn Fehler nicht aufgedeckt werden. Eine weitere Priorisierungsmethode orientiert sich daran, welche Teile des Codes am frischesten sind oder am häufigsten editiert wurden, also an der Aktualität der Codeänderungen. Eine sehr wirtschaftliche Priorisierung geht davon aus, wie viele Unterfunktionen mit dem Test eines einzelnen Features gleichzeitig überprüft werden. Weitere Priorisierungsfaktoren wären beispielweise, ob das Feature direkt an der Wertschöpfung des Produkts beteiligt ist oder auch neue rechtliche Entwicklungen

3. Tests aufeinander aufbauen und effizient kombinieren

Wurden die Testschwerpunkte identifiziert, ist für die Priorisierung auch die Reihenfolge sehr wichtig: Welche Features bauen aufeinander auf, welche Tests legen die Grundlage für den nächsten? Bestimmte Test Cases sind voneinander abhängig und müssen gemeinsam abgearbeitet werden, um das Testing möglichst effizient zu gestalten. Dazu ist es wichtig, dass man die Abhängigkeiten schon bei der Erstellung der Test Cases berücksichtigt.

4. Teambuilding: Wer weiß was

Bei der Priorisierung von Tests sind auch das Know-How und die Erfahrung des Teams wichtig: Wurden Features bereits getestet, gibt es hierzu Erfahrungen und Modelle, dann ist das umso besser. Oftmals überschneiden sich Test- und Entwicklungskompetenzen in der zeitlichen Planung eines Projekts. Das bedeutet: Testteams, die das Produkt von Anfang an betreuen, entwickeln entlang des Projektplans auch die notwendigen Tests, um in späteren Phasen priorisierte Tests schnell durchführen zu können.

5. Schätzungen sind nicht zuverlässig

Anstelle mit Schätzungen zu arbeiten ist die Definition von Zeitkontingenten zu bevorzugen. Dafür gibt es gute Gründe: Finden Tester*innen Fehler, dann müssen diese durch die Developer natürlich auch noch gefixt werden. Wie lange ein Fix dauert, ist dabei schwer zu sagen und hängt von dem entdeckten technischen Problem ab. Es ergibt also mehr Sinn ein Zeitkontingent innerhalb eines Sprints zu definieren und am Ende zu bilanzieren, welche Fehler entdeckt und behoben werden konnten. In diesem Sinne dient die Priorisierung als ein Abgleich von Erwartungen und Machbarkeiten und als Grundlage für das Lernen in kommenden Sprints.

6. Priorisierung vs. Exploration

Wurden aufgrund der oben genannten Kriterien nun also Tests priorisiert, lohnt es sich unter Umständen dennoch Tester*innen auch explorativ vorgehen zu lassen. In der explorativen Erkundung einer App werden so eventuell Bugs aufgezeigt, die vorher nicht zutage getreten waren. Diese Erhebung ist wichtig, um schließlich im nächsten Sprint wieder eine Grundlage für die Priorisierung zu haben.

 

Fazit: Komplexe Testing-Prozesse erfordern Priorisierung

Je nachdem in welchem Build oder Version sich eine Software befindet, gewichten sich andere Testszenarien stärker als andere. Der Anspruch eine fehlerfreie Funktionalität zu gewährleisten, muss dementsprechend auch mit zeitlichen, prozessbezogenen und rationellen Abwägungen harmonisiert werden. Wir hoffen, wir konnten Euch mit diesem Beitrag einen Abriss über die wichtigsten Entscheidungsgrundlagen und Faktoren für die Priorisierung von Test Cases geben und stehen Euch – wie immer – mit Rat und Tat zur Seite. Appmatics testet inhouse mit echten Tester*innen auf hunderten unterschiedlichen echten Geräten systemagnostisch und umfassend. Durch jahrelange Erfahrung im Testing haben wir auch die Expertise Euch bei der Priorisierung Eurer Test Cases sowie im ganzen Testprozess zu unterstützen. Wir freuen uns auf Eure Herausforderungen.