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, Selenium 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:
Quelle: LeanIX
Weitere Informationen: www.leanIX.net
Bildquelle: Thinkstock/iStockphoto