Ein Mann sitzt vor einem Computerbildschirm. Das Bild ist überlagert von Diagrammsäulen.

Test Center Hessen im Fokus: Testautomatisierung

Um Softwarefehler in Softwareprojekten aufzuspüren, werden bereits laufende Anwendungen oder Teile davon immer wieder aufs Neue getestet. Da diese Tests bei jedem Release durchgeführt werden, ist es oft effizienter, diese Tätigkeit zu automatisieren. Teil 3 der Artikelserie fokussiert die Testautomation als festen Bestandteil des Portfolios vom Test Center Hessen.

Der Prozess zur Entwicklung komplexer Softwaresysteme bringt meist vielfältige Herausforderungen mit sich. In den verschiedenen Phasen (Anforderungsanalyse, Planung, Umsetzung, Test etc.) sind diese ganz unterschiedlicher Natur. In der Regel ist es nicht möglich, ein absolut fehlerfreies System zu entwickeln. Vielmehr liegt der Fokus darauf, effizient mit den Ressourcen zu wirtschaften und einen klaren Zweck zu erfüllen: die Entwicklung einer funktionsfähigen Anwendung, die die Erwartungen des Benutzers vollständig erfüllt.

Eine der Hauptschwierigkeiten von Softwareprojekten liegt – von möglichen Missverständnissen hinsichtlich der Anforderungen einmal abgesehen – in Softwarefehlern, die als Nebeneffekt der bestehenden Funktionalitäten auftreten können. Um diese aufzuspüren, werden so genannte Regressionstests durchgeführt. Dazu werden bereits laufende Anwendungen oder Teile davon immer wieder aufs Neue getestet. Da diese Tests bei jedem Release durchgeführt werden, ist es oft effizienter, diese Tätigkeit zu automatisieren.

Der größte Nutzen einer Automatisierungslösung liegt in der Reduzierung der Kosten der Testdurchführung. Neben dem finanziellen Aspekt können aber auch die Parameter Zeit und Qualität ein schlagendes Argument für den Einsatz einer Testautomatisierungslösung sein. Dies gilt umso mehr, wenn eine manuelle Testdurchführung mehrere Tage in Anspruch nimmt, diese Zeit im Release-Vorgehen aber de facto nicht zur Verfügung steht. Durch die Implementierung einer Testautomatisierungslösung lässt sich die benötigte Zeit drastisch reduzieren.  

Die grafische Übersicht zeigt die Zusammenhänge zwischen dem Testframework und den Browsern auf, die beide auf dem Test-PC laufen, und der unter Test stehenden Anwendung auf (HessenWeb).

Vielfältige Einsatzgebiete

Das Testautomatisierungsteam des Test Center Hessen (TCH) steht mit Expertenwissen in den folgenden Bereichen zur Verfügung:

  • Test von Webanwendungen
  • Test von REST-API-Schnittstellen
  • Test von Desktop-Anwendungen

Über diese klassischen Gebiete hinaus kann das TCH auch bei technisch ähnlich gelagerten Problemstellungen im Testumfeld unterstützen. So war das Expertenteam beispielsweise schon im Bereich der Testdatengenerierung und bei der Bilderkennung im Rahmen einer Prüfung von PDF-Dokumenten im Einsatz.

Ein REST-API (API = Application Programming Interface) ist ein Baukasten zur Entwicklung und Integration von Anwendungssoftware, welche die Anforderungen des REST-Ansatzes erfüllt. REST – die Kurzform für Representational State Transfer – zielt darauf ab, eine möglichst funktionale Architektur für verteilte Systeme und insbesondere für Webservices zu schaffen.

Umfassender Service für den Kunden

Als ersten Schritt bietet das TCH eine fachkundige Erstberatung zur Einschätzung des Potenzials einer Testautomatisierungslösung an. Gemeinsam mit dem Kunden wird das Testziel mit Hilfe einer Machbarkeitsstudie geschärft. Danach erfolgt in einem festgelegten Zeitraum eine Überprüfung, ob die zu testende Anwendung technisch automatisiert werden kann. Auf Basis dieser Erkenntnisse kann anschließend eine belastbare Kosten-Nutzen-Analyse erstellt werden, bei der insbesondere die Parameter Testdurchführungshäufigkeit und funktionale Stabilität der zu testenden Anwendung zum Tragen kommen. Bei der Betrachtung der Kosten zeigt sich im allgemeinen, dass die Entwicklung einer Testautomatisierungslösung im Vergleich zum manuellen Test höher ist. Die wiederholte Durchführbarkeit automatisierter Tests macht diese Lösung dann allerdings kosteneffizient.

Sobald sich der Kunde für eine Testautomatisierungslösung entscheidet, begleitet das TCH ihn durch den kompletten Prozess der Testautomatisierung – von der Konzeption und Implementierung der Testautomatisierungslösung über die Erstellung und Wartung von Testskripten bis zur automatisierten Durchführung der Tests. Wenn das TCH bereits im Testumfeld eines Kunden aktiv ist, eröffnen sich Möglichkeiten zur Nutzung von Synergien, um die Effizienz zu steigern. So kann sichergestellt werden, dass klar definierte Testziele und strukturierte Testfälle als Eingangsvoraussetzung für die Testautomatisierung bereitstehen.

Best Practice in Sachen Testautomatisierung

Das TCH hat bereits in verschiedenen Vorhaben erfolgreich projektspezifische Testautomatisierungslösungen entwickelt. Für das HessenWeb (das Content Management System für die hessischen Landesportale) werden beispielsweise im monatlichen Zyklus umfangreiche automatisierte Regressionstests zur Sicherstellung der Funktionalität durchgeführt. Die Testautomatisierungslösung des TCH erweist sich sowohl in Bezug auf die Kosten als auch auf die eingesparte Zeit als äußerst vorteilhaft. Ein weiterer positiver Aspekt ist, dass manuelle Tester im Testzeitraum entlastet werden und sich auf den Test von neuentwickelten Funktionen fokussieren können.

Als Grundlage für die Implementierung der Testskripte dienen bereits vorhandene strukturierte Testfälle. Programmbibliotheken, Testskripte und Testdaten werden im Test-Framework auf einem Test-PC verwaltet. Die Steuerung des eingesetzten Browsers und das automatisierte Testen nach den definierten Anforderungen der Anwendungen erfolgt über einen WebDriver (eine spezifische Programmierschnittstelle).

Autoren des Beitrag

Tobias Gudd
IT-Projektleitung Testautomation

Raphael Zeiger
Technical Test Analyst (CTAL)

Matthias Genkel
Leitung Test Center Hessen