Warum Continuous Testing so wichtig ist

Hannes Lenke, General Manager EMEA von Sauce Labs

Gastbeitrag von Hannes Lenke, General Manager EMEA von Sauce Labs.

Heutzutage wird jedes Unternehmen von Software angetrieben. Umso wichtiger ist es, dass die Software qualitativ hochwertig ist und zu einer positiven Nutzererfahrung führt. Die meisten Unternehmen sind sich dessen bewusst. Weniger bekannt ist jedoch, wie Softwareentwickler diese Qualität in schnellstmöglich liefern können – denn nur so hält man dem Wettbewerb stand. Obwohl sich Qualität und Geschwindigkeit zu widersprechen scheinen gibt es eine Methode, um beides in der Softwareentwicklung zu vereinen: Continuous Tests.

Continuous Testing ist eine neue Praxis für das Testen von Software, die eine schnellere Markteinführung ermöglicht. Die Grundidee des Continuous Testing besteht darin, automatisierte Tests während des gesamten Software-Entwicklungszyklus durchzuführen. Traditionell war der Ansatz, bis zum Ende eines Entwicklungsprozesses mit dem Testen zu warten. Kontinuierliche Tests hingegen stellen sicher, dass Mängel so früh wie möglich erkannt und behoben werden und nicht erst Wochen oder Monate nach der geplanten Fertigstellung des Codes.

Aus Unternehmenssicht ist Continuous Testing von entscheidender Bedeutung, da es schnelle Software-Releases und qualitativ hochwertigere Ergebnisse ermöglicht. Ein ganzheitlicher Ansatz für Continuous Testing beruht auf folgenden fünf Säulen:

1. Qualität an erster Stelle

Obwohl es auf den ersten Blick widersprüchlich klingt, können Qualität und Geschwindigkeit miteinander einhergehen, sich sogar gegenseitig unterstützen. Der Trick besteht darin, sich vorrangig auf die Aufrechterhaltung eines qualitativ hochwertigen, funktionierenden Codes zu fokussieren – anstatt sich erst dann mit Qualitätsproblemen zu befassen, wenn die Fehler bereits aufgetreten sind. Wenn die Qualität permanent aufrechterhalten wird, wird weniger Zeit für Nacharbeiten, Reibungsverluste bei der Zusammenarbeit und unerwartete Verzögerungen aufgewendet. Man kann das Entwicklerteam dabei mit einer Restaurantküche vergleichen: In einer Großküche müssen die Teller während des gesamten Betriebs kontinuierlich gespült werden, um Stapel beim Abwasch zu vermeiden, was das Bedienen der Gäste verzögern würde. Gleiches gilt für die Softwareentwicklung: Stetige Qualität ermöglicht Geschwindigkeit.

2. Für jede Phase eine eigene Strategie

Durch das frühzeitige und häufige Testen des Codes lassen sich Fehler zu einem früheren Zeitpunkt im Entwicklungsprozess erkennen und beheben. Das hilft dem Unternehmen, Software schneller bereitzustellen und potenziell schwere Fehler zu vermeiden. Denn je länger man mit dem Beheben von Fehlern im Code wartet, umso tiefer ist dieser in der Software verwoben. Es ist dabei wichtig, eine Vielzahl von Teststrategien anzuwenden. Je nach Phase im Entwicklungszyklus ist eine andere Granularitätsstufe für das Testen notwendig: von Komponententests über Tests speziell für einzelne Code-Segmente bis hin zu Tests von Code in der Produktion.

3. Fachwissen als Basis für Automatisierung

Bisherige Tools für die Automatisierung von Tests konzentrierten sich auf die Beschleunigung von zuvor zeitaufwändigen, manuellen Prozessen. Automatisierte Tests stellten damit eine enorme Verbesserung in der Softwareentwicklung dar, auch wenn ein erheblicher Prozentsatz falsche Ergebnisse lieferte. Die Automatisierung der Tests war das vordergründige Ziel, deren Zuverlässigkeit war zunächst zweitrangig. Mittlerweile sind vollautomatisierte Testsuiten im Software-Entwicklungsprozess Alltag und die Vorteile liegen klar auf der Hand. Sobald das Testen während des gesamten Entwicklungsprozesses automatisiert ist, können manuelle Testaufgaben reduziert werden, so dass sich das Team auf intelligente, kreative Exploratory- und Usability-Tests konzentrieren kann.

4. Auf einer eigenen Plattform testen

Um die Vorteile von Continuous Testing wirklich nutzen zu können, helfen hochverfügbare Test-Plattformen mit Zugang zu einer umfassenden Auswahl an Desktop- und mobilen Plattformen. Software muss unabhängig vom Betriebssystem und der jeweiligen Version funktionieren, egal ob iOS, Android, MacOS oder Windows, einschließlich älterer Versionen, die bei den Anwendern noch in Verwendung sind. Cloud-basierte Dienste können dazu beitragen, mit den neuesten Plattformen auf dem Markt Schritt zu halten. Auch Skalierbarkeit ist ein wichtiger Faktor für eine gute Test-Plattform. Unabhängig davon, ob Entwicklerteams ein großes Testvolumen vor einem wichtigen Release benötigen oder dieses danach wieder reduzieren möchten: Die Anpassbarkeit an die Anforderungen für den jeweiligen Test ist essentiell.

5. Sichtbarkeit und Analysen

Wie in jedem Geschäftsbereich muss auch das Testen von Software messbar gemacht werden, um es optimieren zu können. Analysen sind entscheidend, um die Test-Performance zu bewerten und Engpässe sowie Probleme mit der Testqualität zu beheben. Entwicklerteams benötigen einen Überblick über die Effizienz und Zuverlässigkeit ihrer Tests, um sich auf die Bereiche zu konzentrieren, in denen sie am meisten Mehrwert liefern können.

Fazit

Continuous Testing bietet große Vorteile für Entwickler, Unternehmen und Kunden. Entwickler profitieren davon, dass Fehler frühzeitig erkannt und leichter behoben werden können. Unternehmen gewinnen dadurch, dass sie neue Funktionen und Updates schneller auf den Markt bringen können, und sich dem Wettbewerb stellen können. Und die Kunden schätzen es, dass Continuous Testing bei richtiger Ausführung zu einer fehlerfreien Benutzererfahrung führt. Innovative Unternehmen wie N26 machen es vor.

Über den Autor

Hannes Lenke, General Manager EMEA von Sauce Labs

Hannes Lenke, General Manager EMEA von Sauce Labs

Hannes Lenke ist Gründer des Unternehmens TestObject, das seinen Kunden das Testen von Android- und iOS-Apps anbot, bevor diese in die App Stores kommen. 2016 übernahm das US-amerikanische Unternehmen Sauce Labs das Berliner Start-Up und schuf sich so eine Niederlassung in Deutschland. Hannes Lenke wurde im Zuge der Übernahme General Manager EMEA von Sauce Labs.

CC BY-SA 4.0 DE

 
 
Sie dürfen:
  • Teilen — das Material in jedwedem Format oder Medium vervielfältigen und weiterverbreiten
  • Bearbeiten — das Material remixen, verändern und darauf aufbauen und zwar für beliebige Zwecke, sogar kommerziell.
  • Der Lizenzgeber kann diese Freiheiten nicht widerrufen solange Sie sich an die Lizenzbedingungen halten.
  • Bitte berücksichtigen Sie, dass die im Beitrag enthaltenen Bild- und Mediendateien zusätzliche Urheberrechte enthalten.
Unter den folgenden Bedingungen:
  • Namensnennung — Sie müssen angemessene Urheber- und Rechteangaben machen, einen Link zur Lizenz beifügen und angeben, ob Änderungen vorgenommen wurden. Diese Angaben dürfen in jeder angemessenen Art und Weise gemacht werden, allerdings nicht so, dass der Eindruck entsteht, der Lizenzgeber unterstütze gerade Sie oder Ihre Nutzung besonders.
  • Weitergabe unter gleichen Bedingungen — Wenn Sie das Material remixen, verändern oder anderweitig direkt darauf aufbauen, dürfen Sie Ihre Beiträge nur unter derselben Lizenz wie das Original verbreiten.