Agentische Akzeptanztests 2026
Agentische Akzeptanztests erklärt: wie Akzeptanzkriterien zum Maßstab für KI Agenten werden, welche Risiken drohen und wie Teams 2026 absichern
Mehr erfahren
Self Healing Tests sind automatisierte Tests, die einen kaputten Selektor zur Laufzeit selbst ersetzen, statt rot zu werden. Ändert sich ein Button oder ein Eingabefeld, sucht das Werkzeug ein passendes Element und läuft weiter.
In Cypress gibt es Self Healing offiziell nur an einer Stelle: im Befehl cy.prompt. Normale Befehle wie cy.get oder cy.contains heilen nichts. Sie finden das Element, oder der Test schlägt fehl. Das ist Absicht, denn ein roter Test ist ein Signal.
Self Healing klingt nach weniger Wartung. Es hat aber einen Preis: Ein Test kann grün bleiben, obwohl sich das Verhalten deiner App geändert hat. Auf dieser Seite schauen wir uns an, was Cypress wirklich anbietet, wo das Risiko liegt und welche Grundlage Tests auf Dauer stabil hält.
Roland Golla ist offizieller Cypress Ambassador und arbeitet seit über 20 Jahren an Testing und Refactoring. Automatisiertes Testen gehört bei NCA seit 2013 zum Alltag. Cypress mit Cypress Cloud nutzen wir täglich in Production, zusammen mit GitHub Actions und GitLab CI. Instabile Selektoren lösen wir dort, wo sie entstehen: im Markup, in der Teststruktur und im Review.
Im Cypress.IO Workshop bauen wir mit dir eine Selektor Strategie, die Redesigns übersteht. Ganze Teams schulen wir in der Cypress.IO Remote Schulung. Wenn KI Agenten Tests pflegen sollen, setzen wir mit dem Vibe Coding Consulting klare Regeln auf, nach den NCA Agentic AI Coding Guardrails. Dazu passen Quality Gates für KI Code in der Pipeline.
Ein Tag inhouse mit Roland Golla, offizieller Cypress Ambassador und seit über 20 Jahren in Testing und Refactoring zu Hause. Auf unserem YouTube Kanal zeigt er in über 70 Live Coding Tutorials, wie Cypress in echten Projekten läuft. Dazu kommt unser Open Source Plugin NCA TESTIFY: Basistests für jede Website, mit einer Zeile im CI/CD Setup. Im Workshop lernt euer Team Setup, stabile Selektoren, Custom Commands und Tests in der Pipeline.
Cypress listet in der Übersicht der KI Funktionen mehrere Werkzeuge: cy.prompt, Studio AI mit Vorschlägen für Assertions, Zusammenfassungen von Testabsicht und Fehlern, Testgenerierung aus UI Coverage sowie Cloud MCP und Cloud CLI für Agenten. Self Healing gehört dort ausschließlich zu cy.prompt.
So arbeitet es laut Cypress Doku:
Cypress beschreibt zwei Arbeitsweisen. Entweder du exportierst den erzeugten Code und committest ihn. Dann läuft der Test ohne KI und ohne Self Healing. Oder du lässt cy.prompt im Test, und Selektoren passen sich laufend an. cy.prompt braucht Cypress Cloud, läuft nur in E2E Tests und nur in Chromium Browsern.
Ein Test hat eine Aufgabe: Er soll laut werden, wenn sich etwas Wichtiges ändert. Self Healing dreht das um. Der Test findet ein anderes Element und bleibt grün. Ob die Änderung gewollt war, prüft dabei niemand.
Ein Beispiel: Aus dem Button „Bestellen“ wird „Bestellung prüfen“, und ein Klick führt jetzt auf eine Zwischenseite. Der geheilte Test klickt das neue Element und läuft weiter. Die eigentliche Änderung im Ablauf fällt erst auf, wenn eine Assertion danach scheitert. Fehlt diese Assertion, fällt sie gar nicht auf.
Typische Folgen:
Gleb Bahmutov, früher VP of Engineering bei Cypress, nennt Auto Healing deshalb ein Warnsignal für den Entwicklungsprozess. Wenn Tests ständig an Selektoren scheitern, liegt das Problem meist in der Teststruktur oder im fehlenden Abgleich zwischen Frontend und Tests.
Die meisten kaputten Selektoren hängen an Dingen, die sich ständig ändern: CSS Klassen, Tag Strukturen, generierte IDs. Die Cypress Best Practices empfehlen deshalb eigene data-cy Attribute. Sie sind von Styling und JavaScript Verhalten entkoppelt.
<button class="btn btn-primary" data-cy="checkout-submit">
Bestellen
</button>
// brüchig: hängt an Styling
cy.get('.btn.btn-primary').click()
// stabil: eigenes Test Attribut
cy.get('[data-cy=checkout-submit]').click()
Ändert ein Designer die Klassen, bleibt der zweite Selektor stabil. Ändert sich das Verhalten, schlägt eine Assertion fehl, und das Team entscheidet bewusst. Genau das soll ein Test leisten.
Neben data-cy gibt es zwei weitere Bausteine, die Tests robust machen, ohne etwas zu verstecken.
Testing Library Queries: Cypress verweist in den Best Practices auf die Cypress Testing Library. Du suchst Elemente über Rolle und zugänglichen Namen, so wie Nutzer und Screenreader sie wahrnehmen. Ändert sich der Name eines Buttons, wird der Test rot. Das ist gewollt, denn Nutzer sehen die Änderung auch. Nebenbei prüfst du damit ein Stück Barrierefreiheit.
cy.findByRole('button', { name: 'Bestellen' }).click()
cy.findByLabelText('Mail Adresse').type('test@example.com')
Custom Commands und Page Objects: Selektoren und Abläufe stehen an genau einer Stelle. Ändert sich das Login Formular, passt du einen Command an, und alle Tests laufen wieder. Das ist Wartung mit Review statt Heilung zur Laufzeit.
// cypress/support/commands.js
Cypress.Commands.add('login', (email, password) => {
cy.get('[data-cy=login-email]').type(email)
cy.get('[data-cy=login-password]').type(password, { log: false })
cy.get('[data-cy=login-submit]').click()
})
// im Test
cy.login('test@example.com', testPassword)
cy.location('pathname').should('eq', '/dashboard')
Mehr zu Barrierefreiheit in Tests findest du bei axe DevTools mit Cypress und in der Übersicht der Accessibility Testing Tools.
Der wichtigste Unterschied zwischen Heilung und Wartung ist der Review. Eine Änderung am Test landet im Merge Request, jemand liest sie und stimmt zu. So bleibt nachvollziehbar, warum ein Test anders prüft als vorher.
Wenn du cy.prompt mit Self Healing einsetzt, mach die Heilung sichtbar:
Wie Anforderungen zum festen Maßstab für Tests werden, zeigt die lebende Spezifikation. Gemeinsame Beispiele dafür entstehen gut im Example Mapping.
KI Agenten können bei der Testwartung viel abnehmen. Der Unterschied zu Self Healing: Der Agent schlägt eine Änderung vor, ein Mensch reviewt und gibt frei. Nichts ändert sich still zur Laufzeit.
So sieht ein sauberer Ablauf aus:
Die Agenten arbeiten gegen lokale Entwicklungsumgebungen mit Faker Testdaten, nie gegen echte Kundendaten. Der Rahmen mit Scope, Evidenz und Freigabe steht im Governed Agent Loop.
| Ansatz | Stärke | Risiko |
|---|---|---|
| Self Healing mit cy.prompt | Wenig Wartung bei UI Änderungen, schneller Start | Test bleibt grün, obwohl sich Verhalten geändert hat |
| cy.prompt Code exportiert | Schneller Start, danach fester und reviewbarer Code | Generierte Selektoren und Assertions können schwach sein |
| data-cy Attribute | Entkoppelt von Styling und Verhalten | Braucht Disziplin im Markup und Absprache mit dem Frontend |
| Testing Library Queries | Prüft wie Nutzer, stärkt Barrierefreiheit | Textänderungen machen Tests rot, auch wenn sie gewollt sind |
| Custom Commands und Page Objects | Selektoren an einer Stelle, Wartung zentral | Zu viel Abstraktion macht Tests schwer lesbar |
| Wartung durch KI Agenten mit Review | Entlastet das Team, Änderungen bleiben nachvollziehbar | Ohne geschützte Testdateien und Freigabe passt der Agent Tests an den Bug an |
Please do not use auto-healing to hide changes in your application behavior.
Wenn Tests ständig an Selektoren scheitern, schauen wir zuerst auf die Ursache. Meist fehlen Test Attribute im Markup, Abläufe sind in jedem Test neu geschrieben, oder Frontend und Tests laufen getrennt. Das lösen wir mit data-cy Konventionen, Custom Commands und einem Review Prozess, der zum Team passt.
KI hilft uns dabei als Werkzeug, nicht als Schiedsrichter. Welche Regeln Agenten im Projekt bekommen, steht in einer AGENTS.md mit klaren Coding Regeln. Wie KI Code auf Dauer wartbar bleibt, zeigt Code Qualität mit KI Agenten. Die typischen Fallen fasst Vibe Coding Risiken zusammen. Wer vom Selenium Umfeld kommt, findet die Einordnung unter Selenium.
Passend dazu im NCA Cypress Glossar: Flaky Tests in Cypress, die oft hinter instabilen Selektoren stecken.
Roland Golla ist Entwickler aus Leidenschaft – seit über 20 Jahren. Er hat hunderte Projekte begleitet, von Legacy-Refactoring bis KI-Integration. Bei Vibe Coding verbindet er das Beste aus beiden Welten: Die Geschwindigkeit von KI-generiertem Code mit der Qualität professioneller Softwareentwicklung. Kein Bullshit, keine Agentur-Floskeln – direkte Hilfe von jemandem, der selbst täglich im Code steckt.
Kurze Antworten zu Self Healing in Cypress, zu den Risiken und zu stabilen Alternativen für deine Testsuite.
Self Healing Tests ersetzen einen kaputten Selektor zur Laufzeit selbst, statt fehlzuschlagen. Ändert sich ein Element, sucht das Werkzeug ein passendes neues und der Test läuft weiter. Das spart Wartung, kann aber Änderungen im Verhalten verdecken. Ein geheilter Test bleibt grün, auch wenn ein Ablauf sich gewollt oder ungewollt geändert hat.
Ja, aber nur im Befehl cy.prompt. Normale Befehle wie cy.get oder cy.contains heilen nichts. cy.prompt cached generierten Code und erzeugt einen Schritt neu, wenn ein Selektor nicht mehr passt. Im Command Log steht dann Self Healed via Cache oder Self Healed via AI. cy.prompt braucht Cypress Cloud und läuft nur in E2E Tests.
Für kritische Pfade raten wir davon ab. Login, Checkout und Rechteprüfungen sollten mit festem, reviewtem Code laufen. Self Healing kann Regressionen verdecken, weil der Test grün bleibt. Für frühe Phasen und schnelle Prototypen ist es nützlich. Danach exportierst du den Code, setzt stabile Selektoren und lässt ihn als Quality Gate laufen.
Stabile data-cy Attribute, die Cypress selbst in den Best Practices empfiehlt. Sie sind von Styling und JavaScript Verhalten entkoppelt. Dazu kommen Testing Library Queries über Rolle und Namen sowie Custom Commands, die Selektoren an einer Stelle bündeln. Änderungen am Test laufen über einen Review im Merge Request, nicht still zur Laufzeit.
Ja, wenn ein Mensch freigibt. Der Agent liest fehlgeschlagene Runs, schlägt eine Änderung an Selektor oder Custom Command vor und öffnet einen Merge Request. Ein Mensch prüft den Diff. Testdateien sind geschützt, und in CI laufen statische Analyse, Unit Tests und funktionale Tests vor Cypress E2E. Die Agenten arbeiten mit Fake Daten.
Ein roter Test zwingt das Team, eine Änderung bewusst anzuschauen. War sie gewollt, passt jemand den Test an und dokumentiert das im Review. War sie ein Bug, fällt er vor dem Release auf. Ein geheilter Test überspringt diese Entscheidung. Das Dashboard bleibt grün, obwohl niemand geprüft hat, ob das neue Verhalten stimmt.
Cypress zeigt jede Heilung im Command Log an. Self Healed via Cache bedeutet, dass der Schritt über einen vorhandenen Cache Eintrag auf ein anderes Element zeigt. Self Healed via AI bedeutet, dass ein neuer KI Aufruf das Element bestimmt hat. Prüfe diese Hinweise aktiv und übernimm den neuen Code per Export in dein Review.
data-cy ist ein eigenes HTML Attribut, das nur für Tests gedacht ist. Du setzt es im Markup, zum Beispiel data-cy gleich checkout-submit, und greifst im Test mit cy.get darauf zu. Weil es weder für Styling noch für JavaScript genutzt wird, bleibt es stabil, wenn Designer Klassen ändern oder Entwickler Komponenten umbauen.
Testing Library Queries suchen Elemente über Rolle, Label und zugänglichen Namen, so wie Nutzer sie wahrnehmen. Das passt gut für Formulare, Buttons und Navigation. Ändert sich ein sichtbarer Name, wird der Test rot, was oft gewollt ist. Nebenbei prüfst du ein Stück Barrierefreiheit, weil fehlende Labels sofort auffallen.
Beide bündeln Selektoren und Abläufe an einer Stelle. In Cypress sind Custom Commands der übliche Weg, weil sie sich wie normale Befehle lesen. Page Objects passen, wenn dein Team sie aus anderen Frameworks kennt. Wichtig ist weniger die Form als die Regel: ein Selektor, eine Stelle, jede Änderung im Review.
cy.prompt liest das DOM deiner App, um Elemente zu finden. Laut Cypress werden Werte aus Passwortfeldern, Kreditkartenfeldern und versteckten Inputs vorher ausgeblendet, und Prompts werden nicht zum Training genutzt. Cypress Cloud ist ein US Anbieter. Kläre den Einsatz mit deinem Datenschutz und teste nur gegen Umgebungen mit Fake Daten.
Wir schauen mit deinem Team auf die Ursachen: fehlende Test Attribute, doppelte Abläufe, fehlende Reviews. Daraus entstehen data-cy Konventionen, Custom Commands und Quality Gates in CI. Wenn KI Agenten Tests pflegen sollen, setzen wir Regeln mit Freigabe durch Menschen auf. Den Aufwand schätzen wir nach einem kostenlosen Kennenlernen und rechnen transparent nach Minuten ab.