Zutaten, Küchengeräte und wer ist der Koch?
Ein Kollege sprach mich kürzlich an und fragte, ob ich ein Rezept für eine gute Testautomatisierung kenne. Ich sagte, dass man dafür – wie für eine gute Suppe – nicht nur ein Rezept braucht, sondern es kommt auf die Ausstattung der Küche, die Zutaten und den Koch an. Entscheidend für die Testautomatisierung sind also die Projektrahmenbedingungen, die Auswahl der Testwerkzeuge und die Tester die an der Testautomatisierung beteiligt sind.
Wie können wir feststellen, ob die Rahmenbedingungen (nicht verwechseln mit Ramenbedingungen) für die Testautomatisierung gegeben sind? Grundlegend ist hierbei zu unterscheiden, ob sich das Software-Projekt noch in der Vorplanung befindet und die Testautomatisierung von Anfang an eingeplant wird oder ob es sich um ein Projekt handelt, welches bereits läuft und mit Testautomatisierung unterstützt werden soll.
Eines schon vorweg gesagt – je früher mit einer gut geplanten Testautomatisierung begonnen wird, desto wahrscheinlicher wird es eine erfolgreiche Testautomatisierung. Die Gründe liegen oft darin, dass die anfänglichen Aufwände der Testautomatisierung unterschätzt werden und sich der Nutzen rein rechnerisch erst nach Projektende einstellt.
Um dem zu begegnen ist für ein beginnendes Projekt eine gute Planung und für ein laufendes Projekt erst einmal eine Vorstudie der laufenden Prozesse, Testfälle und Rahmenbedingungen notwendig. In so einer Vorstudie sind unter anderem das bereits vorhandene Testfallportfolio, das Testobjekt und die Kenntnisse der Tester zu analysieren und zu bewerten. Auf diese Weise können wir erkennen, wo die eigentlichen Schwachpunkte des Projektes im Testbereich liegen.
Oft wird versucht mit Testautomatisierung Probleme zu lösen, die nichts mit der Testautomatisierung zu tun haben bzw. gegebenenfalls dadurch noch verschlimmert werden. Das ist wie beim Kochen, wenn die Suppe nicht schmeckt wird diese nicht zwingend besser, wenn wir einfach den Koch durch einen Automaten austauschen. Oft wird das Ergebnis sogar schlechter, wenn ich den Kaffeeautomaten im Flur betrachte. Wichtig ist, dass die Voraussetzungen für die Testautomatisierung eine Mindestqualität erreicht haben, bevor mit der Toolauswahl oder gar der Automatisierung begonnen werden kann. Die Testautomatisierung ist der Sahneklecks auf der Suppe, d. h. Testautomatisierung ist nur in einem gut funktionierenden Testprozess erfolgreich. Auch die Testfälle müssen eine ausreichende Detailtiefe zur Automatisierung haben. Die benötigte Detailtiefe ist davon abhängig in wie weit der Tester die nötigen fachlichen Kenntnisse zum Testobjekt mitbringt. Hier könnte der eine oder andere auf die Idee kommen gleich die Fachseite – also die die das Fachwissen haben – die Testautomatisierung machen zu lassen. Das ist meist keine gute Idee, da den Mitarbeitern die Zeit fehlt. Zum einen steht ihre tägliche Arbeit in der Priorität immer höher als die Testautomatisierung und zum anderen müssen die Toolkenntnisse und Testerfahrungen erst aufgebaut werden. Daher empfiehlt es sich, dass die Fachseite die manuellen Testfälle in einer ausreichenden Detailtiefe liefert, welche der Tester auch ohne Domainwissen versteht. Anschließend nimmt der Tester mit seiner Testerfahrung und der nötigen Toolkenntnis die Automatisierung vor.
Es ist illusorisch alles automatisieren zu können, darum wird in der Vorstudie ein Priorisierung der Testfälle vorgenommen. Dabei ist auch das Testobjekt bzw. die zu testende Software auf Automatisierbarkeit zu prüfen. Besonders problematisch für die Testautomatisierung sind z. B. dynamische Objekt-IDs, die sich bei jedem erneuten Aufruf ändern.
Wie wir auch aus der Küche bereits kennen, ist dann auch noch der Koch wichtig, d. h. der Tester, der die Testautomatisierung durchführt. Zum einen benötigt dieser das nötige Toolwissen und zum anderen muss er auch entscheiden können, wo sich die Testautomatisierung im Einzelnen lohnt. Zum Beispiel macht es keinen Sinn eine Funktion in der Software zu automatisieren, die nur extrem selten benötigt wird und im Automatisierungsaufwand sehr hoch ist.
Darum sollte man sich immer an das Rezept halten:
- mit gutem Augenmaß und einem Gespür für den Aufwand eine ausgewogene Komposition – Kosten und Nutzen im Auge behalten
- nicht nur auf die Technik verlassen – auch das eigene Handwerk ist wichtig
- Testautomatisierung funktioniert nur, wenn vorher die grundlegenden Testaufgaben und Prozesse funktionieren – erst Zwiebeln schneiden lernen und dann mit der Bouillabaisse anfangen
Eine weitere Herausforderung für die Testautomatisierung sind die Testdaten. Hierzu aber mehr in meinem nächsten Blogbeitrag. Bis dahin wünsch ich schon mal ein Frohes Fest und überlasst die Weihnachtsgans nicht achtlos einem Automaten.