Rechtliche Nachrichten Krypto-Startups und Risikokapital

Erfahrungen und Erkenntnisse beim Upgrade von testing-lib's user-event auf Version 14 in Kibana

Rechtliche Nachrichten Krypto-Startups und Risikokapital
Lessons learned from upgrading testing-lib's user-event to v14 in Kibana

Eine umfassende Betrachtung der Herausforderungen, Anpassungen und Erkenntnisse, die bei der Aktualisierung der Bibliothek testing-lib's user-event auf Version 14 im umfangreichen Kibana-Projekt gewonnen wurden. Der Artikel beleuchtet technische Änderungen, Performance-Aspekte sowie praktische Lösungen und gibt Entwicklern wertvolle Hinweise für ähnliche Upgrades in großen Codebasen.

Kibana gilt als eines der größten öffentlichen Monorepos auf GitHub mit über drei Millionen Zeilen TypeScript-Code und einer aktiven Entwicklergemeinschaft von mehr als 150 monatlichen Committern. Die Pflege eines solch umfangreichen Codebestands stellt Entwicklerteams vor zahlreiche Herausforderungen. Eine davon ist das fortlaufende Aktualisieren von Drittanbieter-Abhängigkeiten, um technische Schulden zu vermeiden und von neuen Features zu profitieren. Im Fokus steht hier das Upgrade von @testing-library/user-event von der Version 13 auf Version 14.5.

2, ein Prozess, der sich als komplexer und lehrreicher als ursprünglich erwartet herausstellte.Die Einführung der Version 14 von user-event brachte wesentliche Änderungen mit sich, die nicht nur technischer Natur waren, sondern auch die Testinfrastruktur und den Entwicklungsworkflow tiefgreifend beeinflussten. Eine der zentralen Neuerungen ist, dass sämtliche user-event-Methoden nun Promises zurückgeben. Dies bedeutet eine Umstellung auf asynchrones Testen, bei dem jeder Aufruf von Funktionen wie click() oder type() mit einem await versehen werden muss. Das Ziel dieser Änderung ist es, eine realistischere Simulation von Benutzerinteraktionen abzubilden, die im Browser ebenfalls asynchron ablaufen.

Doch in einem gigantischen Codeprojekt wie Kibana ist dies nicht einfach umzusetzen, da hunderte von Testdateien angepasst werden müssen und dies wiederum viele Teams betrifft.Eine weitere gravierende Änderung betraf das Handling von Pointer-Events. Die bisherige Konvention, den Parameter { skipPointerEventsCheck: true } zu verwenden, wurde durch { pointerEventsCheck: 0 } ersetzt. Diese Anpassung stellte sicher, dass die Event-Handling-Mechanismen nun noch präziser dem Verhalten im Browser entsprechen. In der Praxis führten diese Umstellungen dazu, dass bisher verborgene Fehler in den Tests ans Licht kamen, da das neue System der Event-Bubbling- und Propagation-Richtlinien näher an der Realität ist.

Die Entwickler mussten daher nicht nur die Testmethoden anpassen, sondern auch bestehende Tests kritisch auf ihre Validität überprüfen und teilweise korrigieren.Ein unerwartetes und nicht zu unterschätzendes Problem, das mit dem Upgrade einherging, war die Performance. Die Testläufe wurden merklich langsamer, vor allem bei Operationen wie dem Schreiben von Text über userEvent.type(). Dies führte dazu, dass Tests häufiger Timeout-Fehler erzeugten und die CI-Pipeline spürbar längere Laufzeiten aufwies.

Tec-Communities berichteten auch außerhalb von Kibana von ähnlichen Problemen mit der Version 14, wodurch klar wurde, dass die Priorität der Entwickler hinter user-event auf einer realistischeren Simulation von Nutzerinteraktionen liegt, auch wenn dies die Testgeschwindigkeit beeinträchtigt.Um diesen Performanceeinbruch zu mildern, griff das Kibana-Team auf pragmatische Workarounds zurück. Dazu gehörte das Ausschalten der künstlichen Verzögerung in der setup-Funktion von user-event durch Setzen von delay auf null. Auch wurde die Pointer-Event-Prüfung durch den neuen Parameter pointerEventsCheck auf 0 deaktiviert, um die teure DOM-Traversierung zu überspringen. Für zeitkritische Tests mit Timer-Logik half der Einsatz von Jest-Funktionalitäten zur Zeitsimulation, wie beispielsweise die Verwendung von advanceTimersByTime, um kontrollierte Zeitschritte zu ermöglichen.

Trotz dieser Maßnahmen war nicht immer eine vollständige Abdeckung mittels user-event möglich, weshalb in einzelnen Fällen fallback auf fireEvent genutzt wurde, um Laufzeitprobleme zu umgehen.Neben der technischen Umsetzung stellte das Upgrade auch die Frage nach der Skalierbarkeit der Teststrategien und dem Umgang mit technischem Risiko in einer so großen Organisation. Da Tests nicht nur Entwicklerfeedback bieten, sondern auch die Qualitätssicherung in CI/CD-Pipelines sicherstellen, hat eine Verlangsamung direkte Auswirkungen auf Release-Zyklen und Logistikkosten. Daher mussten Zeitlimits für einige Tests erhöht und die Testkonzepte insbesondere bei komplexen Formularen überdacht werden, um unnötige Verzögerungen zu vermeiden. Diese Erfahrungen zeigen, wie eng technische Entscheidungen und organisatorische Abläufe miteinander verwoben sind.

Die praktische Umsetzung des Upgrades erfolgte manuell, da zum Zeitpunkt der Umstellung keine automatisierten Tools oder Codemods existierten, die alle unterschiedlichen Testmuster und individuellen Anpassungen im Kibana-Testsuite sicher abdecken konnten. Die erhebliche Anzahl von betroffenen Dateien – über 400 mit mehreren tausend Änderungen – illustriert den Umfang dieser Herausforderung. In der Praxis bedeutete das insbesondere, viele Tests manuell zu verändern, um asynchrones Verhalten zu berücksichtigen, Event-Handler anzupassen und neue APIs korrekt zu verwenden. Einfache Muster, wie der direkte Aufruf von userEvent.click ohne await, mussten überall systematisch überarbeitet werden.

Darüber hinaus gab es signifikante Änderungen im Umgang mit bestimmten Test-Szenarien. Funktionen wie waitForElementToBeRemoved wurden durch andere Konstrukte ersetzt, die eine bessere Kontrolle über das Vorhandensein oder Fehlen von DOM-Elementen gewährleisten. Auch die Syntax für Tastatur-Eingaben wurde überarbeitet und muss nun mit korrekter Groß- und Kleinschreibung der Tastenbezeichnungen verwendet werden, um die Kompatibilität zu garantieren. Selbst der Umgang mit der Funktion userEvent.paste änderte sich grundlegend: Vorher konnte direkt das Element und der Text übergeben werden, nun müssen Klicks und das eigentliche Einfügen in getrennten Schritten erfolgen.

Ein wichtiges Learning aus dem gesamten Prozess war, dass groß angelegte Upgrades solcher fundamentalen Bibliotheken wie user-event einer eingehenden Analyse der bestehenden Testlandschaft bedürfen. Die Migration ist weniger eine rein technische Aufgabe, sondern erfordert ein Verständnis der unterschiedlichen Testmuster und der Intentionalität hinter den bestehenden Tests. Auch die Zusammenarbeit zwischen verschiedenen Teams ist essentiell, da Codeowner aus diversen Bereichen zusammenkommen müssen, um ein konsistentes und fehlerfreies Upgrade zu gewährleisten. Es wurde deutlich, dass nur mit kollektiver Verantwortung und abgestimmtem Vorgehen in einem großen Projekt ein erfolgreiches Upgrade möglich ist.Die ganze Erfahrung war für die Entwickler in Kibana zugleich mühsam und bereichernd.

Sie glich einer artarchäologischen Ausgrabung, bei der über Jahre gewachsene Testpraktiken durchforstet und in das neue Paradigma überführt wurden. Diese intensive Auseinandersetzung führte zu wertvollen Erkenntnissen über Teststrategien und zeigte auf, wie wichtig es ist, technische Schulden regelmäßig abzubauen und Bibliotheken aktuell zu halten. Das Projektteam erhielt im Anschluss positives Feedback von Kollegen, was motiviert, auch zukünftige Herausforderungen mit Zuversicht anzugehen.Für Entwickler, die noch ältere Versionen von user-event verwenden, bietet diese Erfahrung wichtige Hinweise und praxisnahe Empfehlungen. Das Upgrade auf Version 14, obwohl mit Aufwand verbunden, macht Tests realistischer und verbessert langfristig die Qualitätssicherung.

Gleichzeitig sollten Teams auf die Performance achten und Möglichkeiten nutzen, um kritische Tests zu optimieren oder alternative Methoden einzusetzen. Das Beispiel von Kibana dient damit als wertvolle Orientierung für große und komplexe Codebasen, die ähnliche Updates planen. Es wird empfohlen, sich frühzeitig mit den Breaking Changes und Performancefragen auseinanderzusetzen und den Austausch zwischen Teams zu suchen, um Übergänge möglichst reibungslos zu gestalten.Insgesamt zeigt die Geschichte des Upgrades von user-event in Kibana eindrucksvoll, wie Softwareentwicklung in großen Projekten über reine Programmierung hinausgeht und durch organisatorische, technische und kommunikative Komponenten geprägt ist. Der Balanceakt zwischen technischer Aktualisierung, Performance und Teststabilität erfordert Sorgfalt, Teamarbeit und oft kreative Lösungen.

Doch die Mühe lohnt sich, denn moderne Testwerkzeuge sorgen für eine robustere Codequalität und eine bessere Entwicklererfahrung – grundlegende Faktoren für den nachhaltigen Erfolg von Projekten wie Kibana.

Automatischer Handel mit Krypto-Geldbörsen Kaufen Sie Ihre Kryptowährung zum besten Preis

Als Nächstes
Show HN: Godot's Most Powerful Scripting Language
Montag, 09. Juni 2025. TypeScript in Godot: Die Zukunft des leistungsstarken Scriptings

Erfahren Sie, warum TypeScript die leistungsfähigste Skriptsprache für die Godot-Engine ist und wie Entwickler von überlegener Autocomplete-Funktionalität, verbesserter Typensicherheit und vielseitiger Integration profitieren können, um komplexe Spiele und Anwendungen effizienter zu erstellen.

Jim Cramer on ServiceNow, Inc. (NOW) CEO Bill McDermott: ‘Credit to Him, He’s Picked Up a Huge Number of Accounts’
Montag, 09. Juni 2025. Jim Cramer lobt ServiceNow CEO Bill McDermott: Erfolgsgeheimnis hinter dem Wachstum von ServiceNow

Ein detaillierter Einblick in Jim Cramers Einschätzungen zu ServiceNow und CEO Bill McDermotts strategischem Erfolg beim Ausbau zahlreicher Kundenkonten im hart umkämpften Technologiemarkt.

Lloyd Sadd merges with Iridium Risk Services
Montag, 09. Juni 2025. Lloyd Sadd und Iridium Risk Services fusionieren: Ein Meilenstein für die Versicherungsbranche in Westkanada

Die Fusion von Lloyd Sadd und Iridium Risk Services schafft eine der größten Full-Service-Versicherungsmaklergesellschaften in Westkanada und erweitert das Dienstleistungsportfolio erheblich. Diese strategische Partnerschaft bringt neue Möglichkeiten für Kunden und stärkt die Position auf dem Markt durch gebündelte Expertise und innovative Lösungen.

Corcept Therapeutics price target lowered to $135 from $150 at Truist
Montag, 09. Juni 2025. Corcept Therapeutics: Warum Truist das Kursziel auf 135 USD senkte und was Anleger wissen sollten

Die Analyse von Truist zur Kurszielanpassung von Corcept Therapeutics auf 135 USD beleuchtet die aktuellen Herausforderungen des Unternehmens sowie die Zukunftsaussichten des Biotech-Sektors. Ein umfassender Überblick der Gründe für die Herabsetzung und die Auswirkungen auf Investoren und Marktchancen.

Well-Known Tech Analyst Suggests That He’s Somewhat Worried About AAPL’s Outlook
Montag, 09. Juni 2025. Bekannter Tech-Analyst zeigt sich besorgt über die Zukunft von Apple: Eine tiefgehende Analyse der Herausforderungen und Chancen von AAPL

Ein renommierter Technologieanalyst äußert Bedenken hinsichtlich der Umsatzentwicklung von Apple, trotz des anhaltenden Erfolgs und der großen Kundenbasis des Unternehmens. Im Fokus stehen insbesondere die Abhängigkeit von Einnahmen durch Alphabet sowie laufende Rechtsstreitigkeiten und deren mögliche Auswirkungen auf Apples Zukunft.

On Semi price target lowered to $43 from $52 at Truist
Montag, 09. Juni 2025. On Semiconductor: Truist senkt Kursziel auf 43 US-Dollar – Eine Analyse der aktuellen Marktsituation

Die jüngste Kurszielanpassung von Truist für On Semiconductor wirft ein Licht auf die Herausforderungen und Chancen, denen das Unternehmen derzeit gegenübersteht. Eine detaillierte Betrachtung der Quartalsergebnisse, Marktsegmente und zukünftigen Prognosen zeigt, wie sich diese Entwicklung auf Investoren und den Halbleitermarkt auswirkt.

Navitas Semiconductor price target lowered to $3 from $4 at Needham
Montag, 09. Juni 2025. Navitas Semiconductor: Warum Needham das Kursziel auf 3 Dollar senkt und was das für Anleger bedeutet

Navitas Semiconductor erlebt eine Anpassung des Kursziels durch Needham von 4 auf 3 US-Dollar. Trotz positiver Geschäftsergebnisse wirken sich externe Faktoren wie Handelszölle und Verzögerungen im Solar-Segment auf die Wachstumsprognosen aus.