Christian Baumann
Ann-Cathrin Klose

Geschätzte Lesezeit 5 Minuten

Techblog

Christian Baumann: Basiswissen für die Testautomatisierung

Wer in die Testautomatisierung einsteigt, braucht mehr als nur die richtigen Tools. Warum man sich mit Code Smells befassen sollte und wieso nicht alles automatisiert werden kann, erfahrt ihr hier von Christian Baumann.

Techblog

„Don’t be a fool with a tool”

Christian Baumann ist Principal Test Architect bei MaibornWolff – und darüber hinaus als Speaker in der Testing-Community bekannt. Im vergangenen Jahr konntet ihr Christian mit 10 Sessions auf sechs Events in fünf Ländern erleben. Wir haben mit ihm über seinen erfolgreichen Talk zur Testautomatisierung gesprochen und verraten euch, wo ihr sein neues Webinar online anschauen könnt. 

Frage: Hallo Christian, in deinem Talk „Don’t be a fool with a tool” geht es ja unter anderem um Code Smells. Lass uns doch darüber mal sprechen, was ist das denn? 

Christian Baumann: Code Smells kann man ganz gut aus dem Blickwinkel der Programmierprinzipien und Qualität des Codes betrachten: Laut Wikipedia sind „Code Smells [..] gewisse Strukturen im Code, die auf eine Verletzung grundlegender Entwurfsprinzipien hindeuten und die Qualität des Designs negativ beeinflussen.“

In der Regel handelt es sich dabei aber nicht um Bugs, Code Smells sind nicht technisch falsch und verhindern nicht, dass das Programm funktioniert. Stattdessen weisen sie auf Schwächen im Design hin, die die Entwicklung verlangsamen oder das Risiko von Fehlern oder Ausfällen in der Zukunft erhöhen können.

Frage: Welche Rolle spielen Code Smells für Tester?

Christian Baumann: Genau wie im Produktionscode möchte man auch im Testautomationscode keine Code Smells haben, weil sie eben in der Regel negative Auswirkungen haben. Wenn man als Testautomatisierer einen Hintergrund als Programmierer hat, oder bereits jahrelange Erfahrung hat, dann sollte man auch Code Smells kennen und wissen, wie man sie vermeidet oder beseitig.

Mein Vortrag richtet sich aber gerade nicht an erfahrene Programmierer bzw. Testautomatisierer: Viele Leute steigen in die Testautomatisierung ein, ohne einen fundierten Programmierhintergrund zu haben, oder ein entsprechendes  Training erhalten zu haben.

„Noch besser ist es aber, Code Smells von Anfang an zu kennen und zu vermeiden, was meiner Meinung nach der effizientere Ansatz ist.“

Christian Baumann, Principal Test Architect, MaibornWolff GmbH

Man hat eine Vorstellung davon, welches Tool man verwenden möchte, hat sich ein paar Grundkenntnisse angeeignet und es geschafft, einige automatisierte Tests damit zu erstellen. An einem bestimmten Punkt hat man den Verdacht, dass mit der Automatisierung etwas nicht stimmt. Der Code fühlt sich unordentlich an und die Wartung ist die Hölle, kostet viel Zeit und ist frustrierend.

Ein Grund hierfür sind sehr oft Code Smells, weshalb ich in meinem Vortrag einige vorstelle, und auch Möglichkeiten aufzeige, diese zu beseitigen. Noch besser ist es aber, Code Smells von Anfang an zu kennen und zu vermeiden, was meiner Meinung nach der effizientere Ansatz ist.

Testautomatisierung: Immer die richtige Wahl?

Frage: Du hast jetzt das automatisierte Testen angesprochen, lass uns auch darüber noch kurz sprechen: Kann man im Testing einfach alles automatisieren, wenn man es denn richtig macht, oder gibt es da Grenzen?

Christian Baumann: „Alles“ zu automatisieren ist in den meisten Fällen keine gute Idee. Dafür kann es verschiedene Gründe geben, z. B. können bestimmte Testfälle zu komplex werden, um verlässlich automatisierbar zu sein. Oder die Erstellung eines automatisierten Tests dauert zu lange und ist damit im Vergleich zum erwarteten Nutzen zu teuer.

Es lohnt sich, Tests mit hohem Return-on-Investment zu automatisieren: Tests, deren manuelle Ausführung lange dauert und die oft ausgeführt werden müssen. Ein Beispiel hierfür wären Smoke bzw. Regressionstests im agilen Kontext

Tests die nur mit geringer Wahrscheinlichkeit Fehler aufdecken, und die nicht oft ausgeführt werden müssen, sind ebenfalls keine guten Kandidaten für die Automation.

Automatisiertes Testen richtig gemacht

Frage: Um auf deinen Talk-Titel zurückzukommen: Woran merkt man denn dann, dass man das automatisierte Testen jetzt richtig macht?

Christian Baumann: Automatisierte Tests sollten schnell in der Ausführung sein, Stichwort „Fast Feedback“. Außerdem sollten die Tests „stabil“ sein, das heißt, nicht zufällig „false negatives“ erzeugen, sodass die Ergebnisse verlässlich sind.

Darüber hinaus sollte die Testautomation sinnvoll ins gesamte Testkonzept sowie den kompletten Softwareentwicklungsprozess des Teams bzw. des Unternehmens eingebettet sein, und nicht als Silo in einem separaten Team betrieben werden.

Wer noch mehr über die Testautomatisierung erfahren möchte, kann Christians neuen Vortrag zu Design Patterns in der Testautomatisierung bei PractiTest online finden: Webinar hier ansehen.