Agile Software-Entwicklung

Automatisiert in der Cloud

Moderne Softwareprodukte müssen sich schnell an den Markt anpassen können, um nicht überholt zu werden. Agilität in der Architektur und in der Entwicklung gelten hier als die Erfolgsfaktoren. Entwickelt man jedoch agil, fallen häufiger Softwaretests an.

Tastatur, Bildquelle: Thinkstock/iStockphoto

Die Entwicklung von Software kann z. B. einem agilen Vorgehen folgen, bei dem alle vier bis sechs Wochen ein neues Release der webbasierten Software mit erweiterter oder verbesserter Funktionalität bereitgestellt wird. Integraler Bestandteil eines Entwicklungszyklus, auch Iteration genannt, ist dabei die kontinuierliche Durchführung automatisierter Tests. „Ein hoher Automatisierungsgrad beim Testen ermöglicht es uns, auf Mehrwerttätigkeiten zu fokussieren, um unser Produkt zu stärken“, erklärt beispielsweise André Christ, Geschäftsführer und CTO bei dem Software-Anbieter LeanIX.

Das Testen einzelner Softwaremodule ist weit erforscht, weist von seiner Natur aus einen hohen Automatisierungsgrad auf und findet Verwendung in jeder professionellen IT-Entwicklung. Anders die Oberflächentests, die häufig am Ende der Entwicklungsphase stehen und manuell ausgeführt werden. Dies ist durch die verkürzten Entwicklungszyklen bei einem agilen Vorgehen nicht mehr möglich. Auch hier muss eine Automatisierung der Tests erfolgen.

Für die Definition der Testabläufe erweist sich eine personelle Trennung zwischen Entwicklung und Test als vorteilhaft: Es lassen sich Kosten sparen, da Tester nicht die gleichen Qualifikationen benötigen wie Entwickler. Außerdem bleibt ein frischer Blick gewährleistet, um mögliche unentdeckte Fehler aufzuspüren. Allerdings ist ein enger Dialog zwischen Entwicklung und Test notwendig, da moderne Webanwendungen mit dynamischen Elementen (Ajax und Javascript) zusätzlichen Aufwand in der Anpassung mit sich bringen. Mit Open-Source-Tools wie etwa Selenium lassen sich Testabläufe der Weboberfläche auch ohne große Programmierkenntnisse erfassen, so dass diese durch die Tester erfolgen können.

Doch die Automatisierung ist nur der erste Schritt, denn ein Hindernis verbleibt: Eine Anwendung, die in allen aktuellen Browsern auf sämtlichen Betriebssystemen laufen soll, resultiert schnell in zahlreichen zu testenden Kombinationen. Leider ist die Kompatibilität zwischen Browsern immer noch ein Fernziel, da die Interpretation von Funktionen in jedem Browser teilweise stark variiert. Hier kommt die Cloud ins Spiel. Anbieter wie Sauce Labs halten rund 130 Kombinationen aus Browser und Betriebssystem vor. Ferngesteuert lassen sich bis zu 30 Tests in verschiedenen Kombinationen parallel ausführen, abgerechnet wird über ein Minutenbudget. Für ein Produkt sind rund 40 Browser-Betriebssystem-Kombinationen relevant, wobei ein Testlauf rund 20 Minuten in Anspruch nimmt. Dank der Cloud ist die Anwendung somit in weniger als einem Viertel des Aufwandes gegenüber sequentiellem Testen vollständig testbar.

Weder der Programmcode noch das Testscript werden dabei in die Cloud verlagert. Innerhalb einer neuen, isolierten Betriebssysteminstanz wird der Browser der Wahl in der Cloud gestartet, der die Anwendung entweder auf einem Webserver im Internet aufruft oder per sicherem Tunnel einen Server im eigenen Netzwerk ansteuert. Nach der Nutzung wird die Instanz gelöscht. Dennoch ist zu beachten, dass auch die Daten im jeweiligen Browser in der Cloud erscheinen, so dass zu empfehlen ist, Testdaten zu verwenden. Falls die Sicherheitsanforderungen höher sind, etwa da Echtdaten von Kunden eingesetzt werden müssen, bleibt als Alternative der Aufbau einer privaten Test-Cloud. Das passende Modul zur Erstellung der Infrastruktur, Sele­nium Grid, basiert ebenfalls auf Open Source.

Der beschriebene Anwendungsfall zeigt, dass sich die Public Cloud durchaus rechnen kann. Der Aufwand für Einrichtung und Pflege von zahlreichen virtuellen Maschinen für die verschiedenen Browserkombinationen sowie nötige Lizenzkosten sind in der Summe höher als die bedarfsgerechte Nutzung der Cloud-Services. Dennoch wird nicht alles in die Cloud verlagert: Ein hybrides Modell hat sich in der Praxis als ideal hinsichtlich der Kosten bzw. des Nutzens herauskristallisiert. Die Testfälle und die Infrastruktur sind dabei so aufgebaut, dass die Testfälle alle auch lokal ausführbar sind, um den Komfort und die Effizienz in der Entwicklung möglichst hoch zu halten.

Tipps & Tricks für Softwaretests:

  • Frühzeitig automatisierte Testfälle entwickeln, idealerweise direkt parallel zur Entwicklung, um hohen Automatisierungsgrad zu erreichen
  • Test und Entwicklung personell trennen, denn so wird weniger Betriebsblindheit, eine zusätzliche Überprüfung und bessere Wirtschaftlichkeit sichergestellt
  • In Stufen vorgehen: Begonnen werden sollte mit kritischen Bereichen der Anwendung oder Bereichen, die häufig von Änderungen betroffen sind
  • Nicht alles automatisieren, sondern nur dort, wo es sinnvoll erscheint – beispielsweise bei allen Formulareingaben, weniger Automatisierung bei Abfragen und Reporting

Quelle: LeanIX

Weitere Informationen: www.leanIX.net

Bildquelle: Thinkstock/iStockphoto

©2026Alle Rechte bei MEDIENHAUS Verlag GmbH

Unsere Website verwendet Cookies, um Ihnen den bestmöglichen Service zu bieten. Durch die weitere Nutzung der Seite stimmen Sie der Verwendung zu. Weitere Infos finden Sie in unserer Datenschutzerklärung.

ok