In unserem ersten Blog der Serie 3 "Erste Hilfe für das Testen im agilen Umfeld" haben wir die Bedeutung eines Allround-Testers erörtert und was dieser Tester an "Gepäck" benötigt, um agiles Arbeiten zum Erfolg zu führen. Dabei haben wir in Blog 2 über die Tatsache gesprochen, dass jeder, der am Testen beteiligt ist, sich für den Testprozess engagieren muss. Eine klare Teststrategie, die dem Management mitgeteilt wird, ist hier von entscheidender Bedeutung. In diesem letzten Blog der Serie 3 "Erste Hilfe für das Testen im agilen Umfeld" werden wir uns auf die Testautomatisierung konzentrieren. Wir werden dann über die Testautomatisierung sowohl des Testprozesses als auch der Testausführung sprechen. Die Möglichkeiten der Testautomatisierung reifen immer weiter. Wie setzt man sie in einer agilen Umgebung so ein, dass Geschwindigkeit und Wartbarkeit gewährleistet sind?
Testautomatisierung ist in mehreren Bereichen anwendbar: die Automatisierung des Testprozesses und die automatisierte Ausführung von Testskripten. Idealerweise gehen diese ineinander über. Daher werden sie in diesem Blog behandelt.
Automatisierung des Prüfprozesses
Bei einem automatisierten Testprozess werden die Erstellung von Testskripten und deren Ausführung in einem Testwerkzeug, wie z.B. HP Quality Center oder Testersuite, aufgezeichnet. Es sollte im Vorfeld geklärt werden, welche Tests manuell und welche automatisiert durchgeführt werden sollen. Dann sollten die Ergebnisse der Ausführung im Testwerkzeug aufgezeichnet werden. Auch wenn es Entwicklungen innerhalb eines bestimmten Testskripts gibt, müssen diese im Tool aktualisiert werden. Ein großer Vorteil des Testmanagement-Tools Testersuite ist die Tatsache, dass bestehende Testskripte leicht wiederverwendet werden können. Testersuite enthält ein Regressionstest-Set, das sehr zugänglich ist, so dass relevante Testskripte für die Wiederverwendung schnell gefunden werden können. Besonders in einer komplexen Landschaft können Tester nicht auf ein Testmanagement-Tool verzichten. Es ist sonst schwierig, wenn nicht gar unmöglich, den Überblick zu behalten. Noch schwieriger wird es übrigens, wenn man agil mit mehreren Scrum-Teams arbeitet. Dann werden in kurzer Zeit viele Änderungen an den Systemen vorgenommen. Mit einem guten Testmanagement-Tool können die Scrum-Teams den Überblick behalten, was getestet wurde, welche Ergebnisse es gab und darüber berichten.
Automatisierung der Testausführung
Wenn wir über die Automatisierung der Testausführung sprechen, kommen andere Testwerkzeuge ins Spiel. Früher waren dies Werkzeuge, die hauptsächlich von Programmierern verwendet wurden. Jetzt gibt es mehrere Tools, die auch ein funktionaler Tester gut nutzen kann. Mit diesen Werkzeugen können Sie heute die Testskripte selbst automatisieren und mit den richtigen Testdaten versehen. Dadurch können die Testskripte häufiger und effizienter angewandt werden. Darüber hinaus kann sich der Tester im Scrum-Team unter anderem um die automatisierte Ausführung des Regressionstests kümmern. Ein großer Vorteil dabei ist, dass schon früh im Entwicklungsprozess klar wird, ob eine Änderung Auswirkungen auf die nicht geänderten Systeme hat. Und das ist etwas, was man mit manueller Ausführung nie oder nur mit hohem Aufwand erreichen kann.
Aber...
Bei der Testautomatisierung ist es jedoch wichtig, die richtige Reihenfolge einzuhalten. Viele Unternehmen sind sehr zufrieden mit dem Testwerkzeug und konzentrieren sich hauptsächlich auf die automatisierte Ausführung. Dabei wird dem Design und der Art und Weise, wie das Automatisierte gepflegt wird, wenig Aufmerksamkeit geschenkt. Es ist daher ratsam, sich zunächst Gedanken über einen guten Testprozess zu machen, der klar beschreibt, was getestet wird, warum (Risiko) und wie. Dieser Testprozess sollte allen Scrum-Teams klar sein und sie sollten ihn nachweislich in ihren Scrum-Prozess einbetten. Nur so können Änderungen richtig getestet und Testskripte für die künftige Umsetzung angepasst werden.
Daher ist die Ausarbeitung eines klaren Testprozesses unerlässlich. Sobald dieser Testprozess eingerichtet ist, können wir uns an die automatische Ausführung der Testskripte machen. Auch in diesem Fall ist die Struktur ein wichtiger Faktor. Stellen Sie zunächst sicher, dass die Ketten in testbare Teile "zerhackt" werden, und gestalten Sie die Testobjekte so, dass sie in mehreren Skripten wiederverwendet werden können. Dadurch wird vermieden, dass bei einer Änderung viele Skripte geändert werden müssen. In diesem Bereich gibt es bereits viel Know-how auf dem Markt. Die zentrale Frage lautet daher:
"Wie man die richtigen Unterteilungen und Objekte auswählt und wie man sie identifiziert, damit sie nach einem Systemwechsel leicht wiedergefunden werden können.
Wenden Sie dieses Fachwissen auf die Testautomatisierung an und sorgen Sie dafür, dass sie robust wird, d. h. mit den Änderungen in den Systemen mitgeht. Diese Robustheit ist in einer agilen Umgebung notwendig. Vor allem in Unternehmen, die in Richtung Devops arbeiten, wo Anpassungen an den Systemen sofort nach der Abnahme in die Produktion transportiert werden. Zu diesem Zeitpunkt ist es notwendig, innerhalb kurzer Zeit herauszufinden, wie stark sich die Änderung auf die nicht angepassten Teile des Systems auswirkt. Dies kann nur durch die automatisierte Ausführung des Regressionstests geschehen, wobei die Abnehmer die Ergebnisse beobachten. Welche Testskripte sind ausgeführt worden? Und in welchem Umfang haben diese die gewünschte Testabdeckung? An dieser Stelle kommt wieder der Testprozess ins Spiel. Und wenn es Erfahrungen mit der automatisierten Ausführung des Regressionstests gibt, dann ist auch die automatisierte Ausführung des Unit- und Akzeptanztests offen. Wobei die Skripte von einem Testtyp zum anderen durchlaufen. Hierfür ist ein Allround-Tester kein Luxus. Er sorgt dafür, dass sich die Testarten und Skripte gegenseitig unterstützen und Doppeltests vermieden werden.
Dies war der letzte Tipp aus der Blogserie "Erste Hilfe für das Testen in einer agilen Umgebung". Das Testen in einer agilen Umgebung erfordert also eine robuste Testautomatisierung, die von einem engagierten Testprozess und von Allround-Testern unterstützt wird!