Startseite / Fallstudie: Testmigration
1.300 manuelle Tests in automatisierte Abnahmetests überführen
Eine laufende Migration von manuellen zu automatisierten Abnahmetests für die Stammdatenanwendung eines Agrar- und Lebensmittelkonzerns. Der Name des Kunden bleibt vertraulich.
1 · KontextAusgangssituation
Die Anwendung verwaltet die Stammdaten eines Agrar- und Lebensmittelkonzerns: rund dreißig miteinander verknüpfte Entitäten, jede mit eigenen Pflichtfeldern, Eingaberegeln und Abhängigkeiten. Ich arbeite dort als freiberuflicher QA-Automation-Engineer.
2 · ProblemDas ursprüngliche Problem
- Die Abnahme beruhte auf manuellen Prüfungen, die bei jeder Auslieferung komplett wiederholt werden mussten.
- Bei 30 verknüpften Entitäten kann ein einziger inkonsistenter Wert mehrere Masken verfälschen.
- Die Fachteams, die abnehmen, lesen keinen Testcode.
3 · UmfangUmfang des Projekts
- Migration der 1.300 manuellen Tests zur Gültigkeit und Konsistenz der Daten nach Playwright.
- Automatisierte End-to-End-User-Journeys.
- Abnahmetestpläne je Entität.
- Diagnose instabiler Tests und Verfolgung der Testläufe.
4 · TechnologienTechnologien
- Playwright und TypeScript für alle Tests.
- Azure DevOps in der Projektumgebung.
- Playwright-Ausführungsberichte, ausgewertet von einem eigens entwickelten Monitoring-Werkzeug.
5 · VorgehenVorgehensweise
- Migration der bestehenden manuellen Abnahmetests in automatisierte Tests, Entität für Entität.
- Tests auf einer gemeinsamen Basis, damit eine neue Entität ohne Neubeginn angebunden werden kann.
- End-to-End-Szenarien über die Oberfläche, die die Daten anschließend in ihren Ausgangszustand zurücksetzen.
- Ein Abnahmetestplan je Entität, erstellt aus den Testfällen: Ziel, Schritte, erwartetes Ergebnis.
6 · HerausforderungenTechnische Probleme
Ein Klick, den ein Widget abfing
Der Klick auf eine ganze Tabellenzeile landete manchmal auf einem Widget, das das Ereignis abfing. Der Button Bearbeiten wurde nicht aktiv, und der Test schlug ohne erkennbaren Grund fehl.
Eine Suche, die die falsche Zeile lieferte
Die globale Suche arbeitete mit Stichwörtern: Die Suche nach „Mantem 2“ lieferte auch „Mantem 1“, und der Test prüfte einen anderen Datensatz als erwartet.
Isolierte Berichte
Jeder Lauf erzeugte einen eigenen JSON-Bericht, ohne Gesamtüberblick über die Entwicklung von Dauer und Fehlschlägen.
Schwer zu deutende Fehlschläge
Echte Fehler der Anwendung mussten von fragilen Tests unterschieden werden, bevor etwas korrigiert wurde.
7 · LösungenUmgesetzte Lösungen
- Gezielter Klick auf die Zelle Code, dann explizites Warten auf den Zustand des Buttons.
- Suche über den Code als eindeutige Kennung, sowohl für die Prüfung als auch für die Wiederherstellung der Daten.
- Ein Werkzeug, das die Playwright-Berichte importiert und über die letzten 10 Läufe Dauer, Erfolge und Fehlschläge verfolgt, mit gemeinsamer Historie.
- Eine KI-gestützte Fehlerdiagnose, um echte Fehler zu isolieren, gefolgt von einer Korrektur an der Ursache.
8 · ErgebnisseFestgestellte Ergebnisse
- Automatisierte Abnahmetests mit 1.300 Playwright/TypeScript-Tests, bei jedem Deployment ausführbar.
- Stabilisierte Tests: Die Korrektur mit dem gezielten Klick wurde auf den anderen Masken wiederverwendet.
- Keine falschen Negativergebnisse mehr durch die Suche, und die Testdaten werden exakt wiederhergestellt.
- Abweichungen in der Laufzeit sind im Dashboard sichtbar.
- Ein Abnahmetestplan je Entität, den die Fachseite selbst durchgehen kann.
9 · ErkenntnisseWas ich mitnehme
- Über eindeutige Kennungen statt über Bezeichnungen auswählen: weniger Mehrdeutigkeit, wiederherstellbare Daten.
- Auf einen expliziten Zustand der Oberfläche warten statt auf eine feste Verzögerung.
- Echte Fehler von fragilen Tests trennen, bevor man korrigiert.
- Abnahmetests in der Sprache der Fachseite schreiben, abgestimmt auf das, was die Tests prüfen.
Testautomatisierung mit Playwright: die Leistung im Detail →
Ein Datensystem oder eine Anwendung, die zuverlässig werden soll?
Beschreiben Sie Ihren Kontext. Ich antworte Ihnen per E-Mail innerhalb von zwei Werktagen.