Testautomatisierung

Testautomatisierung erfordert Know-How

Was ist Testautomatisierung?

Bei der Testautomatisierung werden Softwaretests mithilfe spezieller Werkzeuge – sogenannten Testautomaten – automatisiert durchgeführt, anstatt manuell zu testen. Diese Tools simulieren die Interaktion mit dem zu testenden System, indem sie in Skripten implementierte Testfälle ausführen.

Vor der automatisierten Testausführung, beispielsweise über Nacht, ist zunächst eine Programmierung der Tests erforderlich. Das oft empfohlene „Capture-and-Replay“-Verfahren, bei dem Tests manuell ausgeführt und als Programmcode aufgezeichnet werden, führt meist zu unzuverlässigem, schwer wartbarem Code. Für eine robuste Testautomatisierung sind daher Programmierkenntnisse unerlässlich.

 

Herausforderungen beim Automatisieren von Tests

Die Vorstellung, ein Skript zu schreiben und die Arbeit erledigt sich von selbst, ist verlockend – aber in der Praxis gestaltet sich die Testautomatisierung oft komplex. Häufige Herausforderungen sind:

Wartung der Tests

Besonders bei Frontend-Apps im agilen Umfeld verursachen UI-Änderungen eine hohe Wartungsarbeit. Tests müssen regelmäßig angepasst werden.

Technologischer Wandel

Neue Tools und Technologien erfordern kontinuierliche Weiterbildung, da etablierte Standards schnell veralten.

Tool-Komplexität

Die Integration verschiedener Tools kann zu einer schwer beherrschbaren Toolkette führen.

Robustheit der Tests

Zu stark an Implementierungsdetails gebundene Tests brechen bei Änderungen leicht und erfordern aufwendige Anpassungen.

Hürde für Nicht-Entwickler:innen:

Automatisierung ist oft schwer zugänglich für Tester ohne Programmiererfahrung.

Datenmanagement

Konsistente Daten für langlaufende Testreihen zu gewährleisten, ist komplex. Automatisierte Tests müssen unabhängig von spezifischen Daten gestaltet werden.

Wie funktioniert Testautomatisierung mit TestBench?

Um die Testautomatisierung optimal zu nutzen, ist eine Testspezifikation auf Basis von Keywords erforderlich (siehe Keyword-Driven Testing). Diese Methode bringt entscheidende Vorteile für die Automatisierung mit sich, wie Wartbarkeit, Wiederverwendbarkeit und Robustheit. In TestBench benötigt jedes Keyword, das nicht andere Keywords aufruft, eine Implementierung im angebundenen Testautomaten. Es ist nicht notwendig, für jeden Testfall eine eigene Implementierung zu erstellen – eine Implementierung pro Keyword genügt.

Ablauf der Testausführung mit einem Wrapper-Skript:

Die aus Keywords zusammengesetzten Testsequenzen legen die Reihenfolge der Testschritte fest. Damit der Testautomat diese Reihenfolge korrekt ausführt, wird ein Wrapper-Skript eingesetzt, das spezifisch für den jeweiligen Testautomaten entwickelt wird.

Das Wrapper-Skript arbeitet wie folgt:

  1. Die auszuführenden Tests werden geladen.
  2. Der nächste auszuführende Testfall wird identifiziert.
  3. Das nächste Keyword im Testfall wird zusammen mit seinen Parameterwerten identifiziert.
  4. Die Implementierung des Keywords wird im Testautomaten aufgerufen.
  5. Der Testautomat führt den zugehörigen Programmcode aus.
  6. Die Testergebnisse und Zusatzinformationen werden verarbeitet und in das Testergebnisprotokoll eingefügt.
  7. Der Ablauf wird wiederholt, bis alle Keywords eines Testfalls und alle Testfälle ausgeführt wurden.
  8. Abschließend wird das Testergebnisprotokoll ergänzt und die Testausführung beendet.

Alternativer Ablauf für spezielle Testautomaten

Nicht jeder Testautomat unterstützt die Ausführung einzelner Schritte oder Wrapper-Skripte. In solchen Fällen generiert TestBench einen spezifischen Programmcode für den Testautomaten, der die Testausführung ermöglicht. Die Testergebnisse werden anschließend in die TestBench importiert und ausgewertet.

Integration gängiger Testautomaten

Für viele bekannte Testautomaten existieren bereits Wrapper, die quelloffen bereitgestellt werden. Diese können leicht angepasst und erweitert werden. Zudem bietet TestBench eine Bibliothek, die das Interpretieren der Testanweisungen vereinfacht. Dadurch besteht ein Wrapper häufig nur aus wenigen Zeilen Code.

Schnittstellenunterstützung

Testergebnisse können entweder über das REST-API von TestBench oder manuell importiert werden. Dies ist besonders vorteilhaft für Testautomaten, die in Realtime oder in Hardware-in-the-Loop (HiL)-Umgebungen arbeiten.

(Siehe auch Anbindung des Testframeworks Robot Framework.)

Woher kommen die Daten für die Testdurchführung?

TestBench unterstützt eine Parameterschnittstelle, über die Werte an Keywords übergeben werden (siehe Keyword-Driven Testing und Data-Driven Testing). Dadurch entstehen keine zusätzlichen Aufwände für die Zuordnung von Daten. Parameter können:

  • automatisch geladen,
  • vor der Ausführung eines Keywords ergänzt,
  • oder nach der Ausführung ins Testergebnisprotokoll übernommen werden.

Für dynamische Daten, wie Session-IDs, bietet die TestBench flexible Lösungen. Das Management von Testdaten wird dadurch erheblich erleichtert, selbst bei komplexen oder schnell wechselnden Szenarien.

 

Wie hoch ist der Aufwand bei Keyword-Driven Testing?


Ein häufiges Argument gegen das Keyword-Driven Testing ist der anfängliche Aufwand, der beim Erstellen und Verwalten von Keywords entsteht. In der Praxis zeigt sich jedoch, dass sich diese Methode langfristig auszahlt:

Wiederverwendbarkeit: Einmal implementierte Keywords können beliebig oft genutzt werden.

Minimale Wartung: Änderungen betreffen nur die betroffenen Keywords und nicht komplette Testfälle.

Vergleichsstudien zeigen, dass sich der Aufwand für die Automatisierung ganzer Testfälle mit Keywords deutlich reduziert. So bleiben die Tests übersichtlich und wartbar – selbst bei großen Testprojekten.

Diagramm zur Darstellung des Aufwands bei der Testautomatisierung im Zeitverlauf. Die grüne Linie repräsentiert die konstanten Aufwände bei der Automatisierung von Testfällen, während die orange Linie die initial höheren, aber langfristig schwankenden und reduzierten Aufwände bei der Automatisierung von Keywords zeigt.

Quelle: https://www.sigs-datacom.de/uploads/tx_dmjournals/brandes_OS_05_09.pdf

Ist eine No-Code Testautomatisierung möglich?


Ja, eine No-Code Testautomatisierung ist mit TestBench möglich. Da sich die Programmierung auf die Implementierung einzelner Keywords beschränkt, können auch Personen ohne Programmierkenntnisse Tests erstellen. Werden bereits implementierte Keywords genutzt, sind die Testfälle sofort automatisiert ausführbar.

Je mehr Keywords implementiert sind, desto einfacher wird die Erstellung neuer Tests. Falls neue Keywords erstellt oder bestehende angepasst werden müssen, bleibt der Aufwand dennoch überschaubar und kann an Automatisierungsexperten delegiert werden.

Dies ermöglicht eine klare Aufgabenteilung in Testende mit Wissen über die Fachdomäne des Testobjekts und Programmierende ohne dieses Fachwissen, aber mit Programmierkenntnissen.

Fachtester:innen

 Kennen die Business Logik.
Erstellen die fachlichen Testabläufe.
Stellen die passenden Daten bereit.
Besitzen geringe Programmierkenntnisse.

Testautomatisierer:innen

Kennen die Technik des Testobjekts.
Lösen technische Probleme der Automatisierung.
Haben nur geringe Kenntnisse über fachliche Zusammenhänge.
Besitzen gute Programmierkenntnisse.

Kann technologieübergreifend getestet werden?


Mit Keyword-Driven Testing ist die Testspezifikation unabhängig von der zugrunde liegenden Technologie, wodurch die Tests flexibel und anpassbar bleiben. Die spezifische Technologie wird erst auf der Ebene der Programmierung eines Keywords berücksichtigt.

Beispiel:

Innerhalb einer Testsequenz kann ein Wechsel von PlayWright (für Weboberflächen) zu Appium (für Mobile Apps) erfolgen. Hierfür wird ein Wrapper benötigt, der mehrere Technologien unterstützt und die Kommunikation mit den entsprechenden Testautomaten regelt.

Da solche Lösungen komplex werden können, bietet TestBench eine Integration mit dem Open Source Testframework Robot Framework, das zentrale Bestandteile der Testautomatisierungsarchitektur unterstützt. Dieses Framework:

  • Unterstützt technologieübergreifende Tests.
  • Bietet umfangreiche Funktionen für Low-Code-Automatisierung.
  • Erleichtert die Implementierung von Keywords erheblich.

Zusammen mit TestBench ermöglicht dies eine effiziente und flexible Testautomatisierung über verschiedene Technologien hinweg – ein wichtiger Bestandteil einer leistungsfähigen Testautomatisierungsarchitektur.

Mehr Informationen: Anbindung des Testframeworks Robot Framework.

Diagramm eines CI/CD-Workflows mit TestBench-Integration. Schritte umfassen das Committen von Code in den Source Code Control Server, das Triggern eines Jobs im Continuous Integration Server, den Build-Prozess, die Bereitstellung in der Testumgebung, das Abrufen von Testanweisungen aus TestBench, die Testdurchführung, den Import der Testergebnisse in TestBench, die Analyse der Ergebnisse und das Feedback an die Entwickler.

Wie kann ein CI/CD-System angebunden werden?


Für die Integration in ein CI/CD-System wird der bereits beschriebene Wrapper genutzt. Dieser lädt die auszuführenden Tests und speichert die Testergebnisse über das REST-API der TestBench zurück.

Zusätzlich stehen Plugins zur Verfügung, mit denen Jobs manuell direkt aus TestBench gestartet werden können. So lassen sich automatisierte Tests nahtlos in bestehende CI/CD-Pipelines integrieren.

Testergebnisse ohne TestBench-Import auswerten?


Ja, Testergebnisse können unabhängig von einem Testmanagementsystem ausgewertet werden. TestBench bietet hierfür einen Assistenten zur Durchführung von manuellen Tests.

Dieser Assistent ermöglicht es, die Protokolle automatisierter Testläufe offline zu analysieren. Besonders bei umfangreichen Tests, wie nächtlichen oder wochenendlichen Läufen, können riesige Datenmengen entstehen. Diese Daten lassen sich mit TestBench performant verarbeiten.

Funktionen zur Analyse:

  • Schnelles Springen zu spezifischen Ergebnissen, wie z. B. dem nächsten FAIL.
  • Ergänzen der Testergebnisprotokolle mit Anmerkungen oder Fehlerbeschreibungen.
  • Import der erweiterten Protokolle in TestBench, falls erforderlich.

Diese Funktionen erleichtern die Arbeit auch bei Millionen von Testpunkten und sorgen für eine effiziente Auswertung – unabhängig von der TestBench-Umgebung.

Ihre Fragen - unsere Antworten

Haben Sie Fragen zu Testautomatisierung oder suchen Sie Unterstützung bei der Optimierung Ihrer Testprozesse? Unsere Expert:innen stehen Ihnen gerne zur Verfügung. Kontaktieren Sie uns, und wir helfen Ihnen dabei, Ihre Teststrategien effizient und erfolgreich zu gestalten.