6 goldene Regeln der Testautomatisierung

6 goldene Regeln der Testautomatisierung

Testautomatisierung ist kein Selbstläufer: sie funktioniert nicht allein durch ihre Einführung, sondern es müssen Prozesse erstellt, Vorbereitungen getroffen und wichtige Punkte beachtet werden. Damit Ihre Testautomatisierung zum Erfolg führt, sollten Sie diese 6 Tipps beachten, die wir Ihnen im Folgenden vorstellen.

1. Testbarkeit - Testautomatisierung

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 - Testautomatisierung

Die klassische Testpyramide zeigt auch die sinnvollsten Bereiche der Testautomatisierung: die Basis bieten 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.

Testpyramide zur Testautomatisierung

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.

3. Das Testobjekt ändert sich - Testautomatisierung

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 - z.B. werden neue Versionen des Bretriebssystems installiert oder Applikationsversionen (Datenbank, Webserver) ändern sich usw. Nicht zu vergessen können sich Daten (Preise in Shops, Passwörter von Usern usw.) ändern.

Diese Änderungen sollten Sie stets im Auge behalten, damit Sie bereits im Vorfeld gegensteuern können.

4. Testdaten und Tests - Testautomatisierung

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

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

5. Konventionen und Standards - Testautomation

Spätestens dann, wenn man sich in fremden Sourcecode einarbeiten und -denken muss, fällt es auf, wie wichtig es ist, gemeinsame Konventionen und Standards für Code zu finden und zu nutzen. Aber nicht nur für fremden Code - innerhalb oder auch außerhalb des Teams - gilt dies, sondern auch für solchen, den man selbst erstellt. 

Wir alle ändern uns, lernen dazu, werden besser. Und 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 IDE bieten Lösungen oder Plugins, um die Prüfung auf Einhaltung zu automatisieren.

6. Reporting - Testautomatisierung

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, da bei diesem eben kein Mensch eigene Einschätzungen abliefern kann. Am Ende reicht diese Einschätzung allein selbstverständlich nicht aus, Daten - Tabellen, Diagramme, Statistiken - müssen geliefert werden.

Wichtig ist, dass Sie 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, es gibt auch weitere Produkte, die hier direkt unterstützen.

Tags: