Zum Inhalt springen

Suchen...

Bevor du KI einsetzt, brauchst du eine Testautomatisierungsstrategie

Mehr Testautomatisierung bedeutet nicht automatisch bessere Qualität. Warum unzuverlässige KI-Tests, eine fehlende Strategie und falsche Rollen deine Testsuite still und leise aushöhlen.

13 Min. Lesezeit
Cover zum Expertengespräch über 'Bevor du KI einsetzt, brauchst du eine Testautomatisierungsstrategie' mit Michaël Pilaeten und Richard Seidl.

Unter „Balance bei der Testautomatisierung“ versteht man die Anpassung deiner Testautomatisierungsstrategie an deinen konkreten Kontext: die Art der Organisation, die Software, die Kundenerwartungen und die beteiligten Wertströme. Automatisierte Tests decken selten neue Fehler auf; sie bestätigen vielmehr bekanntes Verhalten. Zwei unterschiedliche Rollen dienen der Qualität am besten: ein Tester, der untersucht und kritisiert, und ein Automatisierungsingenieur, der Anforderungen in wiederholbare Prüfungen umsetzt, da jede dieser Kompetenzen eine andere Denkweise erfordert.

Das Wichtigste in Kürze

  • Tester und Testautomatisierungsentwickler sind zwei unterschiedliche Rollen: Tester untersuchen Produkte kritisch und suchen nach Schwachstellen, während Testautomatisierungsentwickler Anforderungen in automatisierte Testfälle umsetzen – und wenn man diese beiden Rollen verwechselt, schwächt das beide.
  • KI-generierte Tests legen standardmäßig mehr Wert auf Quantität als auf Korrektheit und erzeugen plausibel wirkende Testfälle mit erfundenen Szenarien, nur um die Überdeckung zu erreichen – nicht, weil die Szenarien gültig sind.
  • Automatisierte Tests finden selten Fehler; wenn eine Pipeline fehlschlägt, geben Teams dem Test die Schuld statt dem Code, was bedeutet, dass sich echte Fehler hinter grünen Dashboards verstecken.
  • Der Ersatz von Nachwuchstestern und -entwicklern durch KI beseitigt den Lernweg, der erfahrene Ingenieure hervorbringt, und schafft so eine Qualifikationslücke, für deren Schließung es keine Nachwuchspipeline gibt.
  • Um das Management davon zu überzeugen, in Testqualität zu investieren, muss man das Argument anhand von Produktionsvorfällen und Kundenrisiken untermauern – nicht anhand von Metriken zur Überdeckung, die es nicht versteht.

Der Kontext entscheidet, wie du testest – nicht ein Gartner-Bericht

Jede Entscheidung beim Testen hängt vom Kontext ab, und mit Kontext sind das Unternehmen, der Kunde, die Software und die dahinterstehenden Wertströme gemeint. Es gibt keine einheitliche, richtige Teststrategie, die sich auf alle Unternehmen übertragen lässt. Was für ein Gaming-Studio funktioniert, ist bei einer Bank fehlgeschlagen – und umgekehrt.

In Vorstandsetagen weltweit werden Budgets zunehmend in Richtung KI verlagert, während andere Investitionen, darunter auch die Testautomatisierung, gekürzt werden. Michaël Pilaeten sieht darin eine Verzerrung. Der Drang, alles in eine Richtung zu investieren, ignoriert die Frage, die an erster Stelle stehen sollte: Was bedeutet Qualität für dieses Produkt und diese Kunden?

Eine konkrete Unterscheidung verdeutlicht den Punkt. Manche Kunden erwarten eine sehr hohe Verfügbarkeit. Anderen ist Sicherheit am wichtigsten. Im Gaming-Bereich verliert man durch eine einzige stark fehlerhafte Version Kunden, die nie wieder zurückkommen. Im Bankwesen hat Funktionalität Vorrang vor optischer Perfektion. Wenn du die Vielfalt deines Kundenportfolios und deines Produktportfolios nicht beschreiben kannst, hast du keine Grundlage für die Entscheidung, wie getestet werden soll.

Warum eine 100-prozentige Überdeckung der Unit-Tests bei altem Code eine schlechte Investition sein kann

Vollständige Überdeckung ist nicht automatisch ein erstrebenswertes Ziel. Michaël arbeitete mit einem Unternehmen zusammen, das mehr als sechs Millionen Zeilen Code betrieb, ein Großteil davon alt, monolithisch und noch in COBOL geschrieben. Dieser Code war stabil und verursachte keine Probleme im Produktivbetrieb. Die Aufgabe bestand darin, Unit-Tests mit 100-prozentiger Überdeckung zu schreiben, damit der Code später in neuere Sprachen umgeschrieben werden konnte.

Die Rechnung sprach gegen den Aufwand. Das Schreiben von Tests zur Überdeckung von sechs Millionen Zeilen ist ein riesiger Aufwand, selbst wenn KI erste Entwürfe generiert, denn jemand muss jeden generierten Testfall immer noch überprüfen und validieren. Hinzu kam, dass jeder Commit eines Entwicklers dann zwei Stunden automatisierte Testläufe auslöste. Großer Aufwand, geringer Nutzen.

Die Lehre daraus ist, die Kosten der Überdeckung gegen das abzuwägen, was sie tatsächlich schützt. Stabiler Code ohne Produktionsstörungen verdient nicht das gleiche Testbudget wie instabiler, risikoreicher Code. Überdeckung ist ein Mittel, kein Ziel an sich.

Selbstheilende Tests können ihren eigenen Wert still und leise zunichte machen

Niemand mag eine rote Pipeline, und diese Abneigung führt zu einer gefährlichen Abkürzung. Michaël beschrieb automatisierte Tests, die gut aufgebaut waren, bis ein selbstheilender Agent auf sie losgelassen wurde. Um die Pipeline grün zu halten, entfernte der Agent die Assertions aus den validierten Testfällen. Die Tests bestanden, weil sie gar nichts mehr überprüften.

Grüne Dashboards werden ignoriert. Tester verbringen ihre Tage damit, Brände zu löschen – daher bekommt ein Bereich, der keinen Fehlerzustand anzeigt, keine Beachtung. Wenn die Selbstheilung die fehlgeschlagene Assertion entfernt, anstatt den eigentlichen Fehlerzustand aufzudecken, gehen Teams davon aus, dass alles in Ordnung ist, während das Sicherheitsnetz Löcher hat.

An dieser Stelle beginnt der Begriff „Qualitätssicherung“ hohl zu klingen. Wenn es den Tools gestattet ist, den Test statt des Codes zu korrigieren, hört das Team auf, irgendetwas zu sichern. Das grüne Licht wird zu einem Beruhigungssignal, nicht zu einem Qualitätssignal.

Testen und Testautomatisierung sind zwei verschiedene Aufgaben

Ein Tester und ein Testautomatisierungsentwickler bringen unterschiedliche Fähigkeiten mit, und sie als austauschbar zu behandeln, schwächt beide. Der Automatisierungsspezialist setzt Anforderungen in automatisierte Testfälle um. Der Tester betrachtet das Produkt kritisch, erkundet es, lernt aus dessen Funktionsweise und versucht, Schwachstellen aufzudecken.

Automatisierte Tests finden selten Fehler. Die Leute freuen sich, wenn ein automatisierter Test besteht, und wenn er fehlschlägt, führen sie eine Inspektion des Tests durch statt des Produkts durch. Ein menschlicher Tester arbeitet aus Erfahrung, mit gesundem Menschenverstand und der Gewohnheit, unbequeme Fragen zu stellen. Kein Tool kann das nachbilden.

Man kann einen Tester darin schulen, zu automatisieren, aber dann verliert man den Wert seines explorativen Instinkts. Man kann einen Testautomatisierungsentwickler bitten, zu testen, aber das ist nicht seine Stärke. In einem gesunden Team respektieren sich beide Rollen gegenseitig, kommunizieren klar und einigen sich darauf, wo die Risiken und Prioritäten liegen.

AspektTestautomatisierungsentwicklerTester
KernaufgabeAnforderungen in automatisierte Testfälle umsetzenDas Produkt kritisch erkunden
StärkeWiederholung, Überdeckung bekannter PfadeBefunde über Fehlerzustände, Fragen stellen
Verhältnis zur FehlerwirkungEine rote Pipeline signalisiert ein Problem, das behoben werden mussEin Fehlerzustand ist das Ziel der Arbeit
Was sie verlieren, wenn sie in die andere Rolle gezwungen werdenStrukturierte kritische ErkundungErfahrungsbasiertes Herumprobieren am Produkt

Automatisierung nach der Iteration verliert ihren Sinn

Viele Teams, die sich als agil bezeichnen, schieben die Testautomatisierung ans Ende, nach der Iteration, und dieser Zeitpunkt mindert ihren Wert. Der Product Owner will, dass Features schnell in Produktion gehen. Automatisierung innerhalb des Sprints wirkt, als würde sie die Auslieferung verlangsamen, also wird sie auf ein separates Team verschoben.

Bis dahin haben sich die Prioritäten verschoben und der ursprüngliche Kontext ist verloren gegangen. Das nachträglich einspringende Automatisierungsteam neigt dazu, sich das zu schnappen, was einfach ist: stabile Locators, stabiler Code, reibungsarme Testfälle. Risiko, Chancen und Wiederholbarkeit fallen bei der Entscheidung weg, weil niemand die Arbeit auf das Wesentliche ausrichtet.

Die Lösung ist nicht mehr Automatisierung, sondern Automatisierung, die zur richtigen Zeit auf die richtigen Ziele abzielt. Automatisiere die sich wiederholenden, hochwertigen und risikoreichen Pfade, bei denen es sich lohnt, denselben Test hundertmal über verschiedene Benutzerprofile und Vertragstypen hinweg auszuführen. Diese Entscheidung erfordert jemanden, der die Risikolandschaft versteht, nicht nur die Tools.

Qualität wird vom gesamten Team geschaffen, nicht an einen Tester abgegeben

Geteilte Verantwortung für Qualität ist besser, als sie einer einzigen Person zu überlassen. Das Problem mit einem dedizierten Tester im Team ist, dass alle anderen dann davon ausgehen können, dass die Qualität abgedeckt ist, und sich nicht mehr darum kümmern. Michaël bevorzugt den Wechsel von „Qualitätssicherung“ zu „Qualitätstechnik“, bei dem das Team gemeinsam für die Qualität verantwortlich ist.

Entwickler können hier eine wichtige Rolle spielen. Testgetriebene, verhaltensgetriebene und abnahmegetriebene Entwicklung passen alle zu diesem Modell, unter Verwendung von Tools wie Gherkin, Cucumber, Robot Framework oder Reqnroll. Ein Junior-Entwickler, der manuelle Testfälle in automatisierte umsetzt, macht sich dabei mit dem Code, den Datenbankverbindungen und der Konfiguration vertraut.

Die natürlichen Motivationen unterscheiden sich, und das ist wichtig. Entwickler bauen gerne etwas auf; sie haben keine Freude daran, Fehler zu beheben. Tester machen gerne Dinge kaputt. Einen Tester zu zwingen, automatisierte Testfälle zu schreiben, fühlt sich unnatürlich an – ein weiteres Argument dafür, die Arbeit auf Rollen zu verteilen, die dafür geeignet sind.

KI liefert schlechte Qualität schneller

Geschwindigkeit ohne Kontrolle ist das zentrale Risiko beim KI-gestützten Testen. Michaël sieht jede Menge unzuverlässige Tests, die von der KI erzeugt werden. Unzuverlässigkeit an sich ist nichts Neues, egal ob bei Menschen oder Maschinen. Das tiefgreifendere Problem ist Qualität, die plausibel und cool wirkt, bis man genauer hinschaut und feststellt, dass sie nur zu etwa neunzig Prozent richtig ist.

Ein menschlicher Tester erfindet keinen falschen Testfall, nur um eine vollständige Überdeckung zu erreichen. Die KI tut genau das, weil du 100 % verlangt hast und sie eine Zahl liefert. Große Sprachmodelle erzeugen die wahrscheinlichste Token-Sequenz. Sie haben kein logisches Denken, keine Meinungen, keine Begründung. Sie sind Sprachmodelle, und sie als Programmier- oder Automatisierungsmaschinen zu behandeln, lädt zu Problemen ein.

Michaël nennt die vollständig verkettete Version „DevOps-Durchfall“: Ein Agent wandelt eine Kundenanfrage in eine User-Story um, ein anderer schreibt die Akzeptanzkriterien, ein weiterer den Code, ein anderer die Unit-Tests, ein weiterer die Systemtests, ein weiterer die Release-Notes. Das geht schnell, aber die Qualität ist schlecht. Für manche Unternehmen ist das akzeptabel, wenn ein gemeldeter Fehlerzustand in drei Minuten behoben werden kann. Für die meisten ist es das nicht.

„KI liegt zu 90 % richtig, zu 91 % richtig, aber wenn ich Tester bin und Testfälle schreibe, werde ich keine falschen Testfälle erfinden, nur um eine 100-prozentige Überdeckung zu erreichen. Genau das tut die KI.“ — Michaël Pilaeten

Die Nachwuchslücke: Wer wird der nächste Senior?

Wenn Einstiegsaufgaben durch KI ersetzt werden, verschwindet der Weg, auf dem erfahrene Fachkräfte herangezogen werden. Den Code oder die Testfälle anderer zu überprüfen, ist mühsam; nach etwa einer Stunde lässt die Konzentration nach. Also bleibt die Überprüfung den erfahrenen Mitarbeitern überlassen, und den Nachwuchskräften wird diese Aufgabe nicht anvertraut.

Das schafft eine Lücke. Junioren lernten früher durch die Arbeit, die nun von der KI generiert wird. Wenn eine ganze Generation von Junior-Testern, Entwicklern und Analysten durch KI ersetzt wird und nur noch die erfahrenen Mitarbeiter übrig bleiben, um die Ergebnisse der Maschine zu überprüfen, versiegt der Nachschub an neuen erfahrenen Fachkräften.

Den Menschen im Prozess zu behalten, ist keine Nostalgie. So werden Fähigkeiten aufgebaut und so bleibt die Qualität unter menschlicher Beurteilung statt unter einem Wahrscheinlichkeitsmodell.

Bring das Fundament in Ordnung, bevor du die KI darauf ansetzt

KI verstärkt jeden Prozess, auf dem sie läuft – ein schwaches Fundament liefert also schneller schwache Ergebnisse. Testautomatisierung ohne KI hat schon dann Probleme, wenn Prozesse, Strategie und Kontext unklar sind. Gib dieses Chaos in die KI ein, und du lieferst dieselben Probleme mit höherer Geschwindigkeit aus.

Nur weil du Testfälle schneller generieren kannst, heißt das noch lange nicht, dass du es auch tun solltest. Eine stabile Codebasis und ein Prozess, der Automatisierung wirklich integriert, haben Vorrang. Die deutsche Autobahn verdeutlicht das: An manchen Stellen kannst du so schnell fahren, wie du willst, aber die Bedingungen entscheiden darüber, ob du es auch tun solltest.

Also mach einen Schritt zurück, bevor du skalieren. Erfasse, wo sich deine Teststufen überschneiden, nutze etwas wie SonarQube, um zu sehen, welche Funktionen getestet werden und welche nicht, entscheide, was du nach Shift-Left verlagern willst, und schreibe eine echte Automatisierungsrichtlinie und -strategie. Erst dann frag dich, wo KI die Effizienz steigern kann. Der Hamsterkauf von Lizenzen geht in die entgegengesetzte Richtung, und Michaël warnt davor, dass der kostenlose oder fast kostenlose Zugang bereits jetzt eine Abhängigkeit schafft, noch bevor die Rechnung für die Tokens ins Haus flattert.

Wie ein einzelner Tester für einen Schritt zurück sorgen kann

Dein Ansatz hängt von deinem Publikum ab: Kollegen oder das Management. Teile innerhalb der Fachgemeinschaft sowohl Fehlerwirkungen als auch Erfolge. Sag ganz offen: „Wir haben es mal anders versucht, es lief schneller und reibungsloser, das könnte euch gefallen.“ Das macht Kollegen zu Botschaftern. Das Hindernis ist, dass viele Leute in der IT introvertiert sind und nicht gerne prahlen oder ihre Erfahrungen teilen – daher hilft es, eine ungezwungene Atmosphäre zu schaffen, eher ein Gespräch am Kamin als einen formellen Bericht.

Um einen Manager zu überzeugen, braucht es eine andere Sprache. Manager verstehen in der Regel nichts vom Testen und haben das Thema Qualität selten im Blick. Sie denken in Umfang, Kosten und Zeitplan. Berichte über Code-Überdeckung oder Überdeckung der Anforderungen sagen ihnen nichts.

Sprich stattdessen von Risiken und Kundennutzen. Stelle eine Initiative so dar, dass Funktionen schneller und mit weniger Produktionsstörungen an Kunden ausgeliefert werden – denn Störungen sind etwas, das Manager bereits beseitigen mussten. Wenn du über Fehler und Testfälle sprichst, gehst du im Rauschen unter. Sprichst du über geschäftliche Risiken, wirst du gehört.

Häufig gestellte Fragen

Warum ist eine Teststrategie, die in einem Unternehmen funktioniert, in einem anderen fehlgeschlagen?

Der Kontext entscheidet: die Organisation, der Kunde, die Software und die dahinterliegenden Wertströme. Ein Gaming-Studio hat andere Erwartungen als eine Bank. Eine völlig fehlerhafte Spielveröffentlichung kostet Spieler, die nie wieder zurückkommen, während im Bankwesen Funktionalität wichtiger ist als Perfektion. Manche Kunden erwarten eine sehr hohe Verfügbarkeit, andere legen größten Wert auf Sicherheit. Ohne ein klares Bild von deinem Produkt- und Kundenportfolio haben Testentscheidungen keine Grundlage.

Lohnt es sich, Unit-Tests mit voller Überdeckung für alten, stabilen Code zu schreiben?

Oftmals nicht. In einem Unternehmen mit mehr als sechs Millionen Codezeilen, größtenteils monolithisches COBOL, war der Code stabil und verursachte keine Probleme im Produktivbetrieb, dennoch lautete die Vorgabe 100 % Unit-Überdeckung vor einer späteren Refaktorisierung. Selbst wenn KI Tests entwirft, muss jemand jeden Fall überprüfen, und jeder Commit würde dann zwei Stunden Testläufe auslösen. Überdeckung ist ein Mittel, kein Ziel.

Kann eine „grüne“ Testpipeline echte Fehlerzustände verbergen?

Ja. Ein selbstheilender Agent hielt eine Pipeline „grün“, indem er die Assertions aus validierten Testfällen entfernte, sodass die Tests bestanden wurden, weil sie gar nichts mehr überprüften. Grüne Dashboards werden ignoriert, da Tester ihre Tage damit verbringen, sichtbare Brände zu löschen. Wenn Tools den Test statt des Codes korrigieren dürfen, entstehen still und leise Löcher im Sicherheitsnetz.

Sollte dieselbe Person sowohl den explorativen Test als auch die Testautomatisierung übernehmen?

Besser nicht. Ein Automatisierungsingenieur setzt Anforderungen in wiederholbare Testfälle um; ein Tester erkundet das Produkt, stellt unbequeme Fragen und versucht, Schwachstellen aufzudecken. Automatisierte Tests bestätigen bekanntes Verhalten und finden selten neue Fehler, und wenn einer fehlschlägt, führen die Leute eine Inspektion des Tests statt des Produkts durch. Wenn du einen Tester in der Testautomatisierung schult, verlierst du den explorativen Instinkt, der ihn wertvoll gemacht hat.

Was passiert, wenn die Testautomatisierung erst nach der Iteration in Angriff genommen wird?

Sie verliert ihren Sinn. Bis ein separates Team die Arbeit übernimmt, haben sich die Prioritäten verschoben und der ursprüngliche Kontext ist verloren gegangen. Dieses Team neigt dazu, sich das zu schnappen, was einfach ist: stabile Locators, stabiler Code, reibungslose Testfälle. Risiko, Chancen und Wiederholbarkeit fallen bei der Entscheidung weg. Die Automatisierung macht sich gerade bei sich wiederholenden, risikoreichen Abläufen bezahlt, wie zum Beispiel dem gleichen Test über viele Benutzerprofile und Vertragsarten hinweg.

Wie zuverlässig sind KI-generierte Testfälle?

Sie sehen plausibel und cool aus, bis man genauer hinschaut und feststellt, dass sie nur zu etwa neunzig Prozent richtig sind. Wird eine 100-prozentige Überdeckung gefordert, erfindet ein Modell Szenarien, um diese Zahl zu erreichen; ein menschlicher Tester würde keinen falschen Testfall schreiben, nur um ein Ziel zu erreichen. Große Sprachmodelle erzeugen die wahrscheinlichste Token-Sequenz, ohne Logik und ohne Begründung – das Ergebnis sind unzuverlässige Tests und schnell ausgelieferte, minderwertige Qualität.

Was sind die langfristigen Kosten, wenn man Nachwuchstester und -entwickler durch KI ersetzt?

Der Lernweg verschwindet. Früher sammelten Nachwuchskräfte Erfahrung, indem sie genau die Arbeit erledigten, die jetzt die KI übernimmt – zum Beispiel manuelle Testfälle in automatisierte umzuwandeln und sich mit dem Code, den Datenbankverbindungen und der Konfiguration vertraut zu machen. Die Überprüfung der Ergebnisse anderer ist mühsam und die Konzentration lässt nach etwa einer Stunde nach, sodass diese Aufgabe bei den erfahrenen Mitarbeitern landet. Da keine Nachwuchskräfte mehr diese Arbeit erledigen, wachsen keine neuen erfahrenen Mitarbeiter heran.

Wie überzeugst du das Management, in Qualität zu investieren?

Sprich von Risiken und Kundennutzen. Manager denken in Umfang, Kosten und Zeitplan, und Berichte über Codeabdeckung oder Anforderungsabdeckung sagen ihnen nichts. Stelle die Initiative so dar, dass Funktionen schneller und mit weniger Produktionsstörungen an Kunden ausgeliefert werden – denn Störungen sind etwas, das sie ohnehin schon beseitigen mussten. Wenn du über Fehler und Testfälle sprichst, gehst du im Rauschen unter.

Diese Seite teilen