Beim App Programmieren Kosten sparen durch UI-Testautomatisierung

Sie wollen beim App Programmieren Kosten sparen, ohne dabei auf Qualität zu verzichten? Dann gibt es einige Stellschrauben, an denen Sie drehen können! Zum Beispiel bei den vielen notwendigen Tests des User Interfaces (UI). Diese sind unverzichtbar, um die gewünschte Funktionalität der Anwendung sicherzustellen, aber auch mit einem hohen Arbeitsaufwand verbunden, denn: Manuelle Software-Systemtests sollten vor jedem Release einer neuen App-Version durchgeführt werden. Daher wirken sie sich - gerade in länger laufenden Projekten - nicht unerheblich auf die Kosten einer App aus. Die Automatisierung von UI-Tests kann deshalb sehr sinnvoll sein, um beim App Programmieren Kosten zu sparen. Zum Beispiel auch in unserem Projekt mit Rente.de, aus dem wir gerne von unseren Erfahrungen berichten.

UI-Testautomatisierung bei Flutter Apps am Beispiel Rente.de

Die App “Rente.de” wird mit Hilfe des Cross-Platform-Frameworks Flutter entwickelt. Sie funktioniert auf iOS- und Android-Geräten, erzeugt damit aber auch den doppelten Test-Aufwand. Da es sich außerdem um ein lang laufendes Projekt handelt, stand schnell fest: Die UI-Tests sollen automatisiert werden. Das Vorgehen unterscheidet sich dabei zunächst wenig vom manuellen Testing: Test Cases werden formuliert, thematisch gruppiert und in einer Tabelle zusammengefasst (s. Abbildung 1). Sie sollen realitätsnah die Bedienung durch Endnutzer nach dem “Blackbox-Prinzip” simulieren. Das heißt: Die testenden Personen müssen keine Kenntnis über die innere Struktur der Anwendung haben, sondern streng nach den formulierten Testsequenzen vorgehen. Die App selbst stellt für sie eine Blackbox dar.

Anders als beim manuellen Testen werden die Sequenzen im Projekt Rente.de aber nicht per Hand eingegeben, sondern in ein Testskript übersetzt, das anschließend beliebig oft ausgeführt werden kann. Zum Einsatz kommt dabei das Open Source Framework appium, das zwischen Skript und App übersetzt. Die Arbeitszeit fließt hier in die Definition des Testskripts, nicht in die manuelle Eingabe der Testsequenzen in Endgeräte. Je öfter im Entwicklungsprozess also UI-Tests durchgeführt werden, desto effizienter ist dieses Vorgehen. Umgekehrt gilt aber auch: Nicht immer lässt sich durch Automatisierung beim App Programmieren Kosten sparen. Nur dann, wenn die Definition des Testskripts weniger Arbeitszeit beansprucht als die Durchführung manueller UI-Tests, ist sie wirtschaftlich sinnvoll.

Ebenfalls zu beachten ist, dass sich nicht alle Anwendungen (sinnvoll) automatisieren lassen. Ein gutes Beispiel hierfür ist ein QR-Code-Scan per Kamera. Um diese Anwendung zu automatisieren, benötigt man etwa einen Roboterarm, der das Smartphone wie sein menschliches Pendant zum QR-Code führt. Dies mag technisch zwar möglich sein für den Einsatz in der Praxis sind solche Szenarien aber zu aufwendig. Stattdessen fokussiert man sich auf sogenannte Happy Paths, also die Basisfunktionalitäten der App, wie sie beispielhaft in Abbildung 1 zu finden sind.

Natürlich bringt eine Automatisierung aber auch weitere Vorteile mit sich. So lassen sich zum Beispiel manuelle Eingabefehler weitgehend vermeiden. Außerdem ist das Testskript durch die Nutzung bestimmter Patterns teilweise wiederverwendbar: Als Grundgerüst kann es in entsprechend angepasster Form auch in anderen Entwicklungsprojekten zum Einsatz kommen.

Sie wollen auch beim App Programmieren Kosten sparen?

Nutzen Sie jetzt unser kostenfreies Micro Consulting für Ihre ersten Fragen.

Zum Micro Consulting

Fazit: Lohnt eine UI-Testautomatisierung?

Ob eine UI-Testautomatisierung sinnvoll ist und beim App Programmieren Kosten spart, hängt von einigen Faktoren ab. Gerade bei lang laufenden Projekten mit vielen Releases sollte sie in jedem Fall erwogen werden. Aus unserer Erfahrung im Projekt mit Rente.de bietet die Automatisierung mehr Vor- als Nachteile:

Vorteile:

  • Einsparpotential bei Arbeitszeit und Kosten
  • Reduzierung von manuellen Eingabefehlern
  • Long-Term Benefit durch Wiederverwendbarkeit
  • Motivationssteigerung durch Vermeidung repetitiver Arbeiten

Nachteile:

  • Nicht alle Test-Cases lassen sich (sinnvoll) automatisieren
  • Wirtschaftlich erst ab einer gewissen Anzahl von Durchläufen

Das könnte Sie auch interessieren