Suchen

Continuous Testing – das Geheimnis erfolgreicher Apps

Shift Left Testing alleine reicht nicht

Seite: 2/2

Firmen zum Thema

Continuous Testing deckt die gesamte Entwicklungs-Pipeline ab

In der Praxis bedeutet das, dass automatisierte Tests über die gesamte Pipeline bei jedem Schritt im Entwicklungsprozesses stattfinden müssen – das ist der wichtigste Aspekt des kontinuierlichen Testens. Der DevOps-Ansatz hat im Rahmen agiler Testprozesse einen „shift left“ gefordert – das sehr frühzeitige Ansetzen von Tests.

Das Continuous Testing konzentriert sich neben diesen frühzeitigen Tests auch auf das kontinuierliche Testen nach erfolgter Bereitstellung der App. Dies stellt sicher, dass gerade in der Anfangsphase schnelleres und realistischeres Feedback weitergegeben werden kann. Dafür sollte die Fehlerberichterstattung so konfiguriert sein, dass sie alle Fehler in der Produktion erfasst.

Die Nutzung von Funktionen wie Beta-Tests (sowohl für Android als auch iOS verfügbar) ist ebenfalls notwendig, um Fehler zu erkennen, während die App schon im Betrieb, aber noch nicht für alle Benutzer freigegeben ist. Auch wenn sich mobile Apps nicht so häufig wie Web-Anwendungen veröffentlichen lassen, können App-Anbieter diese Taktiken nutzen, um jede ihrer App-Releases zum Erfolg zu führen.

Dafür müssen auch die am Entwicklungsprozess beteiligten Teams ihre Geschwindigkeit maximieren – z. B. indem sie einen kleineren Satz von Tests an den Beginn der Pipeline (oft als „Rauchtest“ bezeichnet) setzen sowie eine umfassendere Testsuite zu einem späteren Zeitpunkt in der Pipeline (oft als „Regressionstest“ bezeichnet) integrieren. Durch den kleineren Test-Satz lassen sich große Fehler und Regressionen frühzeitig aufdecken, ohne gleich die Kosten eines vollständigen Regressionstests tragen zu müssen.

Schlüsselfunktionalitäten lassen sich so auf einigen wenigen Schlüsselplattformen beschränkt testen, damit sie schnell ausgeführt werden und die Produktivität der Entwickler nicht beeinträchtigen. Eine der besten Praktiken für Mobile Apps ist es, diese Rauchtests gegen iOS-Simulatoren und Android-Emulatoren durchzuführen, um die Ausführungszeit zu verkürzen und die Kosten zu minimieren.

Smarter „Move“: Das Verlagern des automatisierten Testens in die Cloud

Die hohe Fragmentierung im Mobile-Öko-System haben wir oben schon angesprochen. Um mit dieser Fragmentierung umzugehen und qualitativ hochwertige Apps bereitzustellen, die auf allen Geräten oder Plattformen funktionieren, bietet sich die Cloud-Option an. Denn anstatt ein eigenes Inhouse-Labor mit unterschiedlichsten Devices aufzubauen, ist die elegantere (und smartere) Methode, sich für die Nutzung von realen Geräten über die Cloud zu entscheiden.

Die Vorteile: Unternehmen können mit ihren Testzyklen viel schneller starten, die Wartung ist einfacher, agile Prozesse sind so sichergestellt und es kostet am Ende sogar noch weniger. Testlösungen in der Cloud, wie z. B. von Sauce Labs, bieten eine Kombination aus Emulatoren und realen Geräten, die sich für unterschiedlichste Testkategorien nutzen lassen. So können von der Hardware-Spezifikation unabhängige Tests oder Unit- und Early-Stage-Tests auf Emulatoren ausgeführt werden. Komplexere Tests im Spätstadium der Entwicklung lassen sich in der Cloud gleich nahtlos auf realen Geräten durchführen.

Sobald Unternehmen bei der Entwicklung ihrer Mobile Apps schneller vorankommen, müssen sie darauf achten, dass auch ihre Testprozesse mithalten. Hierfür bietet sich die Integration von Continuous-Integration-Tools (CI-Tools) wie z. B. Jenkins in die Testprozesse an, um die Testautomatisierung mit der Build-Automatisierung zu verbinden. Da die Anzahl der Builds ständig zunimmt, benötigen App-Entwickler hier parallele Tests zur Bewältigung des Zuflusses neuer Codes und neuer Funktionen. Allerdings ist auch diese kontinuierliche Integration ohne Continuous Testing nicht möglich.

Eine weitere Anforderung, die notwendig ist, um sowohl versteckte Probleme als auch offensichtliche Fehler zu beheben, ist die Schaffung von Transparenz. Und diese muss, um die hohe Komplexität im Mobile-Umfeld zu bewältigen, auch durchgängig und tief genug sein. Sauce Labs hat genau dafür kürzlich Testanalysen und erweitertes Debugging für seine Continuous Testing Cloud zur Verfügung gestellt. Mit den Testanalysen lassen sich die dringendsten Probleme aufzeigen und es wird eine proaktive Fehlerlösung angeboten. Das „Extended Debugging“ konzentriert sich auf mögliche Fehler in der Netzwerkumgebung und in den Browsern. Beides ist beim Testen von Mobile Apps unerlässlich.

Mit Continuous Testing von den DevOps-Vorteilen profitieren

Jeder App-Anbieter, der heute mit seinen Apps beim volatilen Endkunden wirklich ankommen und auf nachhaltigen Erfolg setzen will, sollte sich mit der Praxis des kontinuierlichen Testens beschäftigen. Das Testen als unabhängiger Schritt am Ende eines Entwicklungszyklus ist – zumindest im Mobile-Umfeld – im heutigen DevOps-Zeitalter nicht mehr zeitgemäß.

Testprozesse müssen die richtige Balance zwischen Geschwindigkeit und Qualität finden, die hohe Fragmentierung des mobilen Öko-Systems im Blick haben und die notwendige Transparenz in die Anwendungsperformance bringen. Nur das garantiert heute das erfolgreiche Ausliefern erfolgreicher Apps.

Hannes Lenke
Hannes Lenke
(Bild: Sauce Labs)

Um eines kommen App-Anbieter dabei nicht herum: Wollen sie von den Vorteilen des modernen DevOps-Ansatz profitieren und nachhaltig erfolgreiche mobile Apps bereitstellen, müssen sie sich für die damit verbundenen prozessualen Veränderungen und den kulturellen Wandel im Sinne des Continuous Testing öffnen. Sie müssen ihre Entwicklung sehr eng mit dem Testprozess verschränken und traditionelle Silos in den Unternehmensprozessen aufbrechen.

* Hannes Lenke ist General Manager of EMEA Operations bei Sauce Labs.

(ID:45386430)