6 goldene Regeln der Testautomatisierung im Softwaretest

🕒 Lesedauer: 4 Minuten

Aus mehr als 200 Automatisierungsprojekten und der Zusammenarbeit mit unterschiedlichen Testabteilungen großer und mittelständiger Unternehmen hat Qytera sechs goldene Regeln für eine reibungslose Testautomatisierung erfasst.

Diese möchten wir gerne im Folgenden näher erläutern.

Was ist Testautomatisierung?

Testtools werden eingesetzt, um Testaktivitäten zu automatisieren. Unter Testautomatisierung versteht man allgemein den “Einsatz von Software zur Durchführung oder Unterstützung von Testaktivitäten” (ISTQB-Glossar).
Testautomatisierung kann theoretisch für alle Testarten eingesetzt werden.

Automatisierte Tests lassen sich nach ihren Zielen kategorisieren. Diese Kategorisierung führt zu verschiedenen Testarten: 

  • Unit-Tests 
  • Integrationstests 
  • API-Tests 
  • Funktionstests 
  • End-to-End-Tests
  • Regressionstests 
  • Akzeptanztests 
  • Performancetests
  • Lasttests
  • Sicherheitstests
  • Barrierefreiheitstests
  • Smoke-Tests

Es ist wichtig zu beachten, dass nicht jede Testart automatisiert werden muss oder sollte. Die Entscheidung zur Testautomatisierung hängt von verschiedenen Faktoren ab – darunter der Projektkontext, das verfügbare Budget sowie Zeit und Ressourcen.
 

Automatisierte Softwaretests bedeuten für mich:
Mehr Zeit für neue Features statt nerviger Bugs und zufriedene Kunden 🚀🚀
... und dadurch die Softwarewelt ein Stück besser zu machen.

Warum Testautomatisierung?

In Zeiten von Microservices Architekturen und Cloud-Lösungen müssen Unternehmen immer kürzere Release-Zyklen bei gleichbleibender oder sogar steigender Softwarequalität meistern.

Die Softwarequalität ist ein zentraler Faktor für den Erfolg eines digitalen Produktes.

Die Folgeschäden von schlechter Softwarequalität, wie Reputationsverlust sowie der Verlust von Kunden und Umsatzeinbußen können dramatisch sein.

Testautomatisierung ist kein Selbstläufer: Sie funktioniert nicht alleine durch ihre Einführung. Es müssen Prozesse erstellt, Vorbereitungen getroffen und wichtige Punkte beachtet werden. Richtig implementiert führen automatisierte Tests zu mehr Effizienz und Qualität in der Entwicklung Ihres Softwareprodukts bei gleichzeitigen Zeit- und Ressourceneinsparungen. Damit die automatisierten Tests bei Ihrer Qualitätssicherung zum Erfolg führen, sollten Sie diese Tipps beachten, die wir Ihnen im Folgenden vorstellen.

1. Testbarkeit

Wichtig ist zunächst die Frage, ob und unter welchen Umständen eine Testautomatisierung möglich ist. Ihre Software wurde nicht für automatisierte Tests entwickelt, sondern für Funktionalitäten, die sie erfüllt. Eventuell müssen Sie keine Änderungen durchführen, vielleicht müssen Sie aber auch das Testobjekt anpassen, damit Testautomatisierung möglich ist. Unbedingt wichtig ist es, dass Sie auch in Zukunft daran denken, die Software bei Anpassungen testbar bleiben zu lassen.

2. Testarchitektur

Die klassische Testpyramide zeigt auch die sinnvollsten Bereiche der Testautomatisierung: die Basis bilden wie üblich die Komponenten- oder Unittests. Diese werden sehr schnell durchgeführt und auch die Entwicklung ist durch die Simplizität der zugrundeliegenden Prozesse meist schnell gemacht.
Die Integrationstests - im Bereich der Komponenten- oder Systemintegration - integrieren die neueste Programmierung erstmals automatisiert und dürfen deshalb auf keinen Fall vernachlässigt werden.
Die Automatisierung von Systemtests lohnt sich vor allem bei agilen Projekten mit häufiger Durchführung von Regressionstests.
 

Image
testpyramide-testautomatisierung-qytera.png
Bild: Testpyramide zur Testautomatisierung. [Quelle: Qytera]

Nicht in der Testpyramide enthalten, aber auch sehr wichtig und teils sehr gut automatisiert testbar, sind nicht-funktionale Tests. Vor allem Last- und Performancetests (z.B. mit Apache JMeter) können sehr gut automatisiert getestet werden.


 

Image
testautomatisierung-framework-testautomation-engineer.png
Bild: Testautomatisierungs-Framework für den Testautomation Engineer. (Klicken zum Vergrößern) [Quelle: Qytera] 

3.1 Das Testobjekt ändert sich

Das Testobjekt, für das die Automatisierung erstellt wird, ändert sich. Zum einen dadurch, dass Weiterentwicklung stattfindet, die mit den automatisierten Tests geprüft wird. Zum anderen, weil sich das Umfeld ändert, indem beispielsweise neue Versionen des Betriebssystems installiert werden oder sich Applikationsversionen (Datenbank, Webserver) ändern. Nicht zu vergessen sind Datenänderungen, z.B. bei Preisen in Shops oder bei Passwörtern von Usern. Diese Änderungen sollten Sie stets im Auge behalten, damit Sie bereits im Vorfeld gegensteuern können.

[Webinar] Testautomatisierung mit Open Source Tools (Selenium, Kubernetes) ➡️ DevOps, QTAF, Jira

 

 

3.2 Testdaten und Tests

Die Daten, die in den Tests genutzt werden, sollten von den ausgeführten Testroutinen getrennt werden. Vor allem wenn sich Informationen ändern, können diese Daten dadurch einfacher und schneller aktualisiert werden. Eine Trennung ist auch dann vorteilhaft, wenn beispielsweise geprüft werden soll, ob bestimmte Daten noch benötigt werden (z.B. Logindaten) oder welche Daten genutzt werden.

Die meisten Systeme bieten hier von sich aus datei- oder datenbankbasierte Lösungen an. Der kleine Mehraufwand bei der Initialanlage rechnet sich sehr schnell bei einer späteren Änderung der Daten.

3.3 Konventionen und Standards

Spätestens dann, wenn man sich in fremden Sourcecode einarbeiten und eindenken muss, fällt es auf, wie wichtig es ist, gemeinsame Konventionen und Standards für den Code zu finden und zu nutzen. Dies gilt sowohl für fremden Code als auch für selbsterstellten Code.

Wir alle ändern uns, lernen dazu, werden besser. Dieses Dazulernen spiegelt sich auch im geschriebenen Code wider. Hier helfen Konventionen und Standards, die möglichst früh im Projekt (oder Team) eingeführt werden, und die dafür sorgen, dass immer die gleiche Notation verwendet wird. Viele Integrierte Entwicklungsumgebungen bieten Lösungen oder Plugins, um die Prüfung auf Einhaltung zu automatisieren.

4. Reporting

Um den aktuellen Stand der Qualität einschätzen zu können, wird ein Reporting benötigt. Dies gilt für das manuelle Testen, aber noch mehr für das automatisierte Testen, da diese Einschätzung hier alleine nicht ausreichen. Es müssen Daten, wie Tabellen, Diagramme und Statistiken, geliefert werden.

Sie sollten unbedingt darauf achten, dass bei der Testautomatisierung die Reporting-Funktionalitäten bereits bei der Erstellung der Tests bzw. der Ablaufprozesse berücksichtigt werden. Viele Tools bieten hier Lösungen an und es gibt auch weitere Produkte, die hier direkt unterstützen.

5. Proof of Concept: Ein POC sagt mehr als tausend Bilder

One size fits all? Ein Testtool für alle Testphasen und Produkte ist leider eine Illusion.

Die Praxis zeigt, dass IT-Systeme immer komplexer werden. Deshalb ist es umso wichtiger, den Projektbeteiligten die Möglichlichkeiten zu geben, diese nicht nur zu betrachten, sondern sie anhand eines Machbarkeitsnachweises praktisch auszuprobieren.

Der PoC liefert den Beweis dafür, ob eine Automatisierung des Testprozesses in den Grenzen der spezifischen Umgebung des Unternehmens funktioniert oder nicht und legt den Grundstein für die weitere Entwicklung.

6. Neue Rolle – Der Test Automation Engineer

Sie fragen sich, wer die Testautomatisierung durchführt bzw. diese entwickelt? Ein Softwaretester, eine Softwareentwicklerin?
 

Die Entwicklung der Testskripte ist eine Aufgabe, die zwischen dem Testbereich und der Entwicklung verortet werden kann. Deshalb gibt es hierfür auch eine neue Rolle: Der Test Automation Engineer.

In dieser Rolle sind sowohl solides Wissen aus dem Testbereich wie auch Praxiserfahrung aus der Softwareentwicklung vertreten; genau das Wissen und Können, das für die Testautomatisierung benötigt wird!

Die Aufgaben befinden sich zwischen den Bereichen und erfordern Wissen aus beiden: ein Tester weiß, wie getestet wird, Testfälle geschrieben werden, Tests auszuwerten sind und eine Entwicklerin, wie gute Software programmiert wird. Also werden beide Eigenschaften benötigt, die im Test Automation Engineer vereint sind.

Fazit

Testautomatisierung parallel zu manuellen Tests einzuführen wird Ihren Testprozess weitaus effektiver machen und die Qualität Ihres Softwareproduktes nachhaltig erhöhen. Automatisierte Tests bieten zudem die Möglichkeit, Tester:innen von repetitiven Aufgaben zu befreien. So kann Zeit und Geld gespart werden.

Mit diesen goldenen Regeln können Sie die Vorbereitung und reibungslose Durchführung der Testautomatisierung in Ihrem IT-Projekt sicherstellen. Der Aufwand bei der Implementierung der Testautomatisierung zahlt sich langfristig um ein Mehrfaches wieder aus und sie können die frei gewordenen Kapazitäten in anderen Bereichen zum Einsatz bringen.

Wir wünschen Ihnen viel Erfolg bei Ihrer Testautomatisierung!

Image
5

 

Veröffentlicht am 01.Oktober 2024

Aktualisiert am 10.Oktober 2024

Wilson Campero

Geschäftsführer, Senior Testmanager

Wilson Campero ist IT-Unternehmer und Experte für Softwarequalität sowie ISTQB Certified Full Advanced Tester. Seit mehr als 20 Jahren ist das Testen von Software sein Spezialgebiet.