Softwaretesting: Installationen und Funktionstests automatisieren

Automatische Softwaretests spielen eine wichtige Rolle, um die Qualität in jedem Entwicklungsstand sicherstellen zu können. [...]

Automatisiertes Softwaretesting kann ein wirksames Mittel sein, um zu verhindern, dass Ihnen Ihre Software um die Ohren fliegt (c) pixabay.com

Jede Codeänderung birgt die Gefahr, unerwünschte Nebeneffekte zu verursachen, die zu Fehlerzuständen in der führen. Um solche Fehler frühzeitig (und nicht erst beim Kunden) zu finden, müssen automatisierte Tests die bisherige, sowie auch neue Funktionalität der Software sicherstellen.

Zuerst sollten die Projektziele (Vision) und eine grobe Roadmap definiert werden. Das nötige Budget darf hierbei nicht vernachlässigt werden. Erwartungsgemäß ist der initiale Aufwand zur Entwicklung von vollautomatisierten Tests am Projektanfang viel höher als später dann im laufenden Betrieb. Ein gewisses „Grundrauschen“ bleibt allerdings immer vorhanden, da Testergebnisse ausgewertet, Testfälle angepasst und neue Testfunktionalitäten implementiert werden müssen.

Nachdem die Abläufe und Prozesse der zu testenden klar definiert sind, erfolgt die Auswahl der Tools und Frameworks. Anschließend sollten in einem Kick-Off erste Prototypen vorgestellt werden, um somit die Akzeptanz für die eingesetzten Tools zu schaffen.

Automatisiertes Softwaretesting – die Einführung

Nach erfolgreichem Bauen der (neuen) wird die Testautomatisierung mit der zu testenden Softwareversion automatisch gestartet. Im Falle von installierbarer Software muss diese ohne manuelles Zutun im sogenannten „Silent-Modus“ geschehen. Die meisten Software Installer bieten übrigens eine „Antwort-Datei“ an, diese enthält die entsprechenden Dialoge und Eingaben als Textdatei, die der Benutzer beim erstmaligen Installieren angegeben hat.

Anschließend wird die Software automatisch eingerichtet und parametrisiert, sowie die korrekte Funktionsweise von Applikationen, Services, Browser, GUI, etc. getestet. Unterstützt das zu testende Softwareprodukt unterschiedliche Plattformen (Unix, Linux, Windows), so müssen all diese Betriebssysteme bestenfalls parallel und im nächtlichen Durchlauf getestet werden. Somit können langlaufende Tests effizient durchgeführt werden. Die Auslastung der Hardware-Ressourcen wird besser verteilt und schon morgens stehen die Testergebnisse zur weiteren Analyse bereit.

Laufen sehr viele Tests parallel und auf mehreren unterschiedlichen Testsystemen, dann ist der Einsatz eines virtuellen Computersystems also einer „virtuellen Maschine“ (VM) empfehlenswert. Falls keine eigene Hardware genutzt werden soll, ist Cloud Computing eine interessante Alternative. Hierbei werden die IT-Ressourcen bereitgestellt, die auch benötigt werden.

Softwaretesting – das Robot Framework

Zur Entwicklung vollautomatisierter Softwaretests steht das Robot Framework für mich als klarer Favorit an erster Stelle. Entscheidende Faktoren sind u.a. das umfangreiche Baukastenprinzip zur Erweiterung des Funktionsumfangs, sowie die einfache Handhabung mit guter Integrationsmöglichkeit in bestehende Projekte. Als weiter Pluspunkt ist die einfache, tabellenartige Struktur der Testfälle zu nennen, hierdurch ist nur eine kurze Einarbeitungszeit nötig.

Das Robot Framework legt seinen Schwerpunkt auf Benutzertests (Abnahmetests und End-to-End Tests), wird aber auch für Systemtests und Smoke-Tests eingesetzt. Das in Python entwickelte Robot Framework steht als Open Source Software (Apache-Lizenz) zur freien Verfügung. Aktuell (April 2021) kann die Version 4.0 auf heruntergeladen werden. Die Installation des Frameworks gestaltet sich unkompliziert, da nur Python 3 und seine Paketverwaltung „pip“ vorausgesetzt wird.

Zur Entwicklung und Testausführung stehen zwei etablierte Systeme zur Auswahl, die allerdings auch gemeinsam eingesetzt werden können, um die Vorteile der jeweiligen Umgebung zu genießen:

Testing-Automatisierung – Szenarien

Wie oben beschrieben, sollen möglichst alle Funktionen der Software automatisch getestet werden. Hierbei hilft uns das Robot Framework mit vielfältigen Bibliotheken und zusätzlichen Paketen die problemlos eingebunden werden können. Als Beispiel ist die sehr stabile SSH-Library zu nennen, die es ermöglicht, alle Tests auf Windows, Linux, Unix und Co. remote und wiederverwertbar auszuführen.

Im Bereich der End-to-End User Interface (UI) Tests für Webbrowser stehen seit Anfang 2021 die neue und moderne Browser Library von Playwright, oder das seit vielen Jahren etablierte Selenium bereit. Diese Bibliotheken können komfortabel in das Robot Framework eingebunden werden. Somit ist das Prüfen grafisch basierter Funktionen wie Mausklicks, oder Ein- und Ausgaben von Benutzern, sowohl auf Webseiten als auch in der GUI einfach umzusetzen.

Natürlich können selbstgeschriebene Testskripte ebenso problemlos in das Robot Framework integriert werden. Dabei spielt es keine Rolle, ob Java, Python oder Shell-Skripte bevorzugt werden, lediglich die Return-Werte 0 oder ungleich 0 sollten für ein funktionierendes Reporting beachtet werden.

Softwaretesting – Auswertung

Umfangreiche Testreports werden vom Robot Framework automatisch als HTML-Seiten erzeugt. Zusätzlich können die Testergebnisse in ein Testmanagement System wie z.B. TestLink importiert werden. Um Fehler schneller analysieren zu können, ist eine genaue Fehlerbeschreibung mit Ausgabe der Logfiles sehr hilfreich. Bei sehr vielen Tests macht es zudem Sinn, Verantwortlichkeiten der Tests zu definieren. Hierdurch lassen sich gezielt per automatisierter die entsprechenden Kolleginnen und Kollegen mit dem Fehlerbericht adressieren.

Als i-Tüpfelchen zur grafischen Aufbereitung der Testergebnisse ist die Integration mit z.B. einem Splunk Dashboard zu sehen. Hierdurch lässt sich besonders bei sehr vielen Softwaretests auf einen Blick die aktuelle Situation komfortabel ablesen.

Wem das nicht reicht, der ist mit einem Ampelsystem bestens ausgestattet. Mit den zuvor definierten Schwellenwerte lassen sich somit die unterschiedlichen Farben einer USB-Ampel ansteuern. Kommt man beispielsweise morgens ins und sieht die Ampel rot leuchten, dann ist sofort klar: es sind Fehler aufgetreten. Andernfalls kann bei einer „grünen“ Ampel der Tag entspannt starten, da alle Tests durchgelaufen sind und die Software somit fehlerfrei getestet wurde!

Vollautomatisierte Tests sind besonders bei agiler Softwareentwicklung ein unerlässlicher Faktor, um kontinuierlich fehlerfrei Software zu gewährleisten. Durch nächtlich laufende Testautomatisierungen lassen sich wertvolle Ressourcen einsparen. Mit dem Robot Framework steht ein hervorragendes Tool zur Verfügung, mit dem alle Softwaretests automatisiert werden können. 

Sie sehen gerade einen Platzhalterinhalt von YouTube. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.

Mehr Informationen

*Timo Füg zeichnet sich durch sein Wissen bei der Qualitätssicherung von Software-Entwicklungen aus und arbeitet bei der Uniserv GmbH als Technical Lead Software Quality Assurance.


Mehr Artikel

News

Große Sprachmodelle und Data Security: Sicherheitsfragen rund um LLMs

Bei der Entwicklung von Strategien zur Verbesserung der Datensicherheit in KI-Workloads ist es entscheidend, die Perspektive zu ändern und KI als eine Person zu betrachten, die anfällig für Social-Engineering-Angriffe ist. Diese Analogie kann Unternehmen helfen, die Schwachstellen und Bedrohungen, denen KI-Systeme ausgesetzt sind, besser zu verstehen und robustere Sicherheitsmaßnahmen zu entwickeln. […]

Be the first to comment

Leave a Reply

Your email address will not be published.


*