Christoph Menke

Geschätzte Lesezeit 6 Minuten

Techblog

Die 3 wichtigsten Ansätze zur Testautomatisierung

Wie setzt man eine Testautomatisierung für eine Systemlandschaft mit verschiedenen Softwaresystemen, Technologien und Betriebssystemen auf? Dieser Artikel beschreibt die drei wichtigsten Ansätze.

Testautomatisierung

Mehr Softwarequalität durch Testautomatisierung

In den meisten Unternehmen gibt es innerhalb der Systemlandschaft verschiedene Technologien und Plattformen. Um die Qualität der Ende-zu-Ende Prozesse sicherzustellen, fällt dadurch oft ein hoher Testaufwand an. Dies liegt daran, dass für den Test oft mehrerer Abteilungen und Fachkräfte mit entsprechendem Wissen in den jeweiligen Fachdomänen zusammenkommen müssen. Meist sind dies auch gerade noch die Mitarbeitenden, die aufgrund ihres Fachwissens im Tagesgeschäft stark eingebunden sind und deren Fehlen besonders schmerzt.

Neben einer guten Testplanung und einer risikobasierten Teststeuerung inklusive Testfallauswahl ist die Testautomatisierung hier die Maßnahme, um den manuellen Testaufwand zu verringern, Kapazitäten in den Fachbereichen freizusetzen und die Qualität schnell und reproduzierbar festzustellen.

Aufgrund der oft heterogenen Systemlandschaft mit verschiedenen Systemen, Technologien und Betriebssystemen ist das Aufsetzen einer geeigneten Testautomatisierungslösung eine große Herausforderung. In diesem Artikel stelle ich verschiedene Ansätze vor.

Testautomatisierung durch “One tool to rule them all”

Das imaginäre Nutztier, die eierlegende Wollmilchsau, könnte viele Bedürfnisse erfüllen. Diverse Toolhersteller wie z.B. Tricentis, MicroFocus oder Ranorex bieten kommerzielle Testautomatisierungswerkzeuge an, welche viele Technologien bedienen können und somit auch viele Bedürfnisse ihrer Kunden erfüllen.

Vorteile:

  • Eine Plattform für alle Testautomatisierungsaktivitäten, die auch nicht-entwickelnde Personen gut bedienen können
  • Technologieübergreifende Tests sind out-of-the box möglich

Nachteile:

  • Abhängigkeit von einem Tool/Hersteller – bei einer Insolvenz, Strategieänderung oder sich ändernden Rahmenbedingungen müssen wahrscheinlich hohe Investitionen vorgenommen werden, um eine neue Testautomatisierung aufzubauen oder die bestehende zu verändern
  • Lizenzgebühren fallen an. Je nach Hersteller und Umfang der Lösung können hohe Kosten entstehen
  • Solche Werkzeuge sind Generalisten. In der Praxis bedeutet dies, dass diese zwar viele Technologien beherrschen, aber in der Tiefe nicht den Umfang spezialisierter Werkzeugen bieten („Wenn Dein einziges Werkzeug ein Hammer ist, wirst Du jedes Problem als Nagel betrachten.“ – Mark Twain)

Testautomatisierung durch “Mochi wa mochiya”

“Mochi wa mochiya” ist ein japanisches Sprichwort, was so viel bedeutet wie: Was den Reiskuchen betrifft, kommt nur der Reiskuchenladen in Frage.

In der Tierwelt gibt es viele Spezialisten. Das Faultier ist zum Beispiel ein Spezialist der Tarnung, da es sich so langsam bewegt, dass Jäger dieses nicht entdecken können. Auch Open-Source-Projekte und Hersteller, wie Selenium, Appium oder Cypress.io, spezialisieren sich auf einen oder wenige Zwecke.

Vorteile:

  • Aufgrund der hohen und stetig steigenden Anzahl von Werkzeugen zur Testautomatisierung können hier je nach Technologie meist Werkzeuge ohne Lizenzkosten eingesetzt werden.
  • Die Werkzeuge unterstützen das von ihnen gewählte Spezialgebiet in der Regel optimal und können so viele positive Effekte heben.

Nachteile:

  • Bei einer heterogenen Systemlandschaft müssen bei diesem Ansatz wahrscheinliche mehrere Werkzeuge eingesetzt werden.
  • Tests in unterschiedlichen Werkzeugen müssen manuell koordiniert werden.
  • Technologieübergreifende Tests sind unter Umständen aus einem Werkzeug nicht möglich.
  • Spezialisten sind in einem Bereich sehr gut, können aber nicht in anderen Bereichen eingesetzt werden.

Testautomatisierung – das Beste aus beiden Welten nutzen

Bei diesem Ansatz können durch ein Testautomatisierungsframework die Vorteile der Ansätze Generalist und Spezialist genutzt sowie die Nachteile eingeschränkt werden.

Keywords

Keywords beschreiben konkrete Testschritte (z.B. Kunde anlegen, Bestellung absenden). Diese können in dann in verschiedenen Testfällen (wieder)verwendet werden.

Datengeneratoren

Diese Generatoren unterstützen bei der dynamische Testdatensuche, bei der Erstellung von Testdaten und deren Rücksetzung sowie beim Einspielen von Datenbankabzügen.

Clients

In diesen passiert die konkrete Anbindung von Testautomatisierungswerkzeugen. Weiterhin wird hier die konkrete Ausprägung der Keywords (gekapselt) erstellt.

Die Möglichkeit zum Einbinden eines Testautomatisierungswerkzeugs als Client hängt hierbei stark von dessen Schnittstellen nach außen ab.

Weiterhin ist für ein Testautomatisierungsframework wichtig, dass die Testfällestabil gegenüber irrelevanten Änderungen, fachlich nachvollziehbar, eigenständig durchführbar sowie wartbar sind. Die zur Testautomatisierung eingesetzten Werkzeuge sind generisch, die Anwendungssituationen sind es nicht. Hieraus folgt, dass ich für den Aufbau eines Testautomatisierungsframeworks den Aufbau einer fachlichen Sprache empfehle. Dies kann über eine Bibliothek an Schlüsselworten oder den Einsatz von BDD erfolgen.

Beispielaufbau eines Frameworks

Fazit zur Framework-Lösung für Testautomatisierung

Der Einsatz einer Framework-Lösung bietet viele Vorteile:

  • Spezialistenwerkzeuge kümmern sich um die Technologien, die sie am besten beherrschen.
  • Testfälle sind unabhängig vom Werkzeug beschrieben.
  • Der Einsatz von Open-Source-Werkzeugen ist möglich.
  • Übergreifende automatisierte Tests und das entsprechende Reporting sind möglich.
  • Es gibt eine erhöhte Unabhängigkeit von den Werkzeugherstellern.
  • Die Lösung ist auf das konkrete Umfeld unserer Kunden ausgerichtet und kann zielgerichtet erweitert und verändert werden.

Nachteile der Framework-Lösung:

  • Testskripte müssen in verschiedenen Werkzeugen entwickelt werden.
  • Anfangsaufwand ist höher als bei einer all-in-one-Lösung.

Neugierig geworden? Ich stehe gerne für einen Erfahrungsaustausch zur Verfügung und bin gespannt auf eure Herausforderungen und Meinungen.


About the author

Christoph Menke

Product Quality Engineering

Christoph Menke hat sein Studium der technischen Informatik 2009 abgeschlossen und seitdem verschiedene Rollen als Testmanager, Teamleiter, Standortleiter, Berater und Produktmanager innerhalb der IT Branche eingenommen. Seit 2022 ist er als Principal Consultant bei MaibornWolff. Als Berater und Projektleiter unterstützt er auf allen Managementebenen in den Themenfeldern (agile) Testorganisationen, Testvorgehen und Testautomatisierung. Hierbei legt er viel Wert auf eine Arbeit auf Augenhöhe und ein offenes und von Vertrauen geprägtes gemeinsames Vorgehen. Er ist es gewohnt, Verantwortung zu übernehmen und Teams und Projekte zum Erfolg zu führen. Weiterhin ist er Dozent an der Hochschule Bremen für das Fach "DevOps und Testen im agilen Umfeld" Christoph ist verheiratet und verbringt seine Zeit gerne bei Gesellschaftsspielen oder auf dem Fußballplatz.