Neue Plattform zur Erprobung komplexer verteilter Softwaresysteme
Das Potenzial großer verteilter Softwaresysteme ist riesig. Durch gemeinsame Nutzung von Softwarekomponenten auf mehreren Computern versprechen Systeme dieser Art einen fehlertoleranten, flexiblen und kosteneffizienten Betrieb. Infolgedessen könnten sie die Effizienz und das Leistungsverhalten bei einem breiten Spektrum von Datenverarbeitungsaufgaben wesentlich verbessern. Dennoch bleibt ungeachtet dieses Potenzials das Angebot an derart großen, miteinander verbundenen Systemen weit hinter der Nachfrage zurück. Grund dafür sind die vielfach für die Entwicklung zu hohen Kosten der Validierung dieser Softwaresysteme und das Erfordernis komplexer Testverfahren. „Wann immer in der Entwicklung funktionslose Merkmale zu validieren sind, müssen zunächst komplexe Testarchitekturen erstellt werden, wozu auch die Anpassung der Cloud-Organisationsmechanismen und die Verwaltung der Versuchskalierbarkeit zählen“, erläutert Francisco Gortázar Bellas, Professor an der Universität Rey Juan Carlos. „Als ob das nicht schon ausreichend komplex wäre, werden die Dinge durch die Notwendigkeit der Nachbildung realer Betriebsbedingungen noch komplizierter.“ Unter der Zielsetzung der Vereinfachung und Optimierung des Validierungsprozesses sollte nun das EU-finanzierte Projekt ELASTEST den Entwicklungsteams jene Werkzeuge verschaffen, die benötigt werden, um schnell fehlerfreie Software bereitstellen zu können.
Reduzieren und vereinfachen
Das Instrument ElasTest wurde nicht nur entwickelt, um die Komplexität des Testens großer verteilter Systeme zu bändigen, sondern auch, um bei gleichbleibender Qualität die Kosten zu senken. Deshalb konzentrierte sich die Forschungsgruppe auf drei Kernziele: die Verkürzung der Zeit bis zur Markteinführung, die Verkürzung der Fehlerortungszeit und die Vereinfachung des Testprozesses. Zur schnelleren Markteinführung bietet ElasTest eine Anzahl von Dienstleistungen an, die mittels gut dokumentierter REST-Anwendungsprogrammierschnittstellen auf vorkonfigurierte Weise genutzt werden können. Diese Dienste können einzeln oder in verschiedenen Kombinationen eingesetzt werden. Alle bieten abrufbereite Werkzeuge an, die aus dem Testcode heraus genutzt werden können. Dazu gehören Browser, zum Internet der Dinge zählende Geräte, Sicherheitsprüfungen, Überwachung und Datenanalyse. Zur Verkürzung der für die Ortung eines Fehlers benötigten Zeit stellt das Instrument Visualisierungen und Analysewerkzeuge zur Nutzung zur Verfügung. „Mit Log-Analytik, aufgabenzentrierter Berichterstattung und Log-Vergleich unterstützt diese Funktion die Suche nach der sprichwörtlichen Nadel im Heuhaufen“, erklärt Gortázar. ElasTest kann außerdem den Prozess der Einrichtung und Durchführung von Tests vereinfachen. Dabei kommt eine domainspezifische Sprache passend zum Jenkins-Continuous-Integration-Server zum Einsatz, einem der beliebtesten Continuous-Integration-Server-Modelle, die auf dem Markt zu finden sind. „In einer Welt, in der die Cloud zur Ware wird und Dienstleistungen naturgemäß verteilt werden, kann ein Instrument wie ElasTest bei der Bewertung komplexer Anwendungen einen großen Unterschied bedeuten“, fügt Gortázar hinzu. Das Instrument wurde in verschiedenen Nutzungsbereichen validiert, darunter das World Wide Web, 5G, Echtzeitkommunikation und das Internet der Dinge.
Ein ganz spezieller Schwerpunkt
Obgleich das Projektteam in seinem Verlauf einige Anpassungen vornehmen musste, wie etwa die Bereitstellung von Lösungen für sowohl automatische als auch manuelle Tests, wich es jedoch nie von seinem Hauptschwerpunkt ab: der Integration verschiedener Komponenten unter Einsatz bewährter Verfahren bei der kontinuierlichen Integration und Bereitstellung. „Unsere besondere Fokussierung hat es uns ermöglicht, mit konstantem Tempo voranzukommen und gleichzeitig Risiken zu minimieren“, erläutert Gortázar. „Das ist das Geheimnis unseres Erfolgs – eines Erfolgs, der durch unsere umfangreichen Verbreitungsaktivitäten gut dokumentiert ist.“ Zu diesen Verbreitungsaktivitäten zählten die Veröffentlichung von 15 ElasTest-Softwareaktualisierungen und eine ganze Reihe von Artikeln, die in bzw. auf 34 verschiedenen Zeitschriften und Konferenzen präsentiert wurden, auch auf der angesehenen International Conference on Software Engineering (ICSE). Das Projekt nahm außerdem an einigen der wichtigsten Testkonferenzen des Industriesektors teil.
Schlüsselbegriffe
ELASTEST, Jenkins-Continuous-Integration-Server, verteilte Softwaresysteme, Software, Computing, Datenverarbeitung, Internet der Dinge, Internet of Things, IoT, 5G