Hoe voorkom ik dat E2E-tests na elke wijziging aan de gebruikersinterface mislukken?
E2E-tests mislukken na een wijziging aan de gebruikersinterface omdat ze elementen vinden op basis van een klasse, een id, een stukje tekst of een positie, en juist die dingen veranderen bij een herontwerp. Nexus Studio, van Verdict System LLC, pakt dit in drie stappen aan: het stelt een nieuwe locator voor en vraagt toestemming voordat het de test wijzigt, het markeert een uitvoering die dankzij een herstelde selector slaagt als AUTO_RECOVER in plaats van als onvoorwaardelijk geslaagd, en het geeft een overzicht van zwakke locators zodat je die als eerste kunt verbeteren.
Door het team van Nexus Studio, Verdict System LLC. 7 oktober 2026.
Waarom mislukken Playwright- en Selenium-tests wanneer de gebruikersinterface verandert?
Een locator is het adres waarmee een test een element vindt. Als dat adres afhangt van iets dat losstaat van de functie van het element, zoals een tijdens het bouwen gegenereerde klasse, een positie op de pagina of de tekst van een label, klopt het adres na een wijziging aan de pagina niet meer. De test mislukt dan op die regel, ook al werkt de toepassing nog steeds.
Het probleem is niet die ene mislukte test. Het is de tijd die een team besteedt aan het bekijken van mislukte uitvoeringen, het vinden van de betreffende regel, het zoeken naar een nieuwe locator en het bewerken van het bestand, telkens weer na elke release.
Wat is er mis met zelfherstel dat tests ongemerkt repareert?
Een hulpmiddel dat een defecte locator vervangt zonder iemand iets te laten weten, houdt de tests groen, maar verbergt ook de wijziging. De test klikt nu op iets dat de auteur niet heeft gekozen en dat niemand heeft gecontroleerd. Als de nieuwe overeenkomst het verkeerde element is, kan de test slagen terwijl die het verkeerde controleert.
Nexus Studio gaat uit van de tegenovergestelde regel: niets wordt achter je rug om hersteld.
Hoe herstelt Nexus Studio een defecte locator?
- Als zelfherstel op de standaardinstelling Suggest staat, opent Studio bij een mislukte test een browser op de achtergrond, voert het de test opnieuw uit tot aan de mislukte regel en leest het de pagina uit. De kandidaten staan klaar wanneer je de fout opent. Hiervoor wordt geen AI gebruikt en de test blijft rood.
- Via Repair line in de marge naast de mislukte regel kun je alleen die stap opnieuw opnemen of de selector vervangen door een van de kandidaten. De sterkste kandidaten staan bovenaan en XPath staat als laatste.
- De wijziging verschijnt onopgeslagen in de editor. Door op te slaan keur je de wijziging goed.
- Je kunt je AI ook vragen welke kandidaat je moet kiezen. De AI kan de kandidaten anders rangschikken, maar er nooit een toevoegen, en de vorige versie van het bestand blijft in de tijdlijn van het bestand staan.
Wat betekent het als een test slaagt met een herstelde selector?
Het oordeel is AUTO_RECOVER: de uitvoering is geslaagd, maar zelfherstel moest een selector in die test vervangen. Dit wordt nooit gemeld als SECURE, het oordeel voor onvoorwaardelijk geslaagd. De locator die de auteur schreef werkt niet meer, en bij de volgende wijziging aan de pagina gaat de testsuite echt stuk. Daarom blijft het voorbehoud zichtbaar in het rapport en in History totdat iemand de oorspronkelijke selector herstelt.
AUTO_RECOVER is een van de zeven oordelen voor geslaagde tests, dus een CI-taak eindigt daarbij met afsluitcode 0. Het voorbehoud verschijnt in het rapport, niet als een mislukte build. De volledige volgorde van controles staat in Hoe Nexus Studio 14 testoordelen bepaalt.
Hoe vind ik zwakke selectors voordat ze niet meer werken?
- Locator health toont de zwakke locators van de geopende test, met hun regelnummers, en herstelt ze via hetzelfde dialoogvenster als Repair line.
- Selectorkaarten scannen een pagina zonder AI, beoordelen elke selector als HOOG, GEMIDDELD of LAAG, en bewaren de kaart op je schijf.
- The Vet, de zeven controles die elke door AI geschreven test moet doorstaan, bevat de regel dat de test geen kwetsbare locators mag hebben.
Welke locators kiest de Recorder?
De Nexus Recorder zet je klikken om in testcode, zonder tussenkomst van AI. Hij kan een test-id-attribuut gebruiken: wanneer je data-testid kiest voor een JavaScript-opname, leest hij zowel data-testid als data-qa. Python- en Selenium-opnamen blijven de ene attribuutnaam van hun testuitvoerder gebruiken. Selectors op basis van deze attributen worden als robuust beoordeeld, terwijl een tijdens het bouwen gegenereerde klassenaam, een lange CSS-keten en een losse tagnaam als kwetsbaar worden beoordeeld.
Blijft de test een standaard Playwright- of Selenium-bestand?
Ja. Elke test die Studio schrijft of importeert, bestaat uit frameworkcode die je team al kent: een Playwright Test-bestand (JavaScript, TypeScript, Python of C#), of Selenium (JavaScript, Python, Java of C#). Bij herstel wordt een regel in dat bestand gewijzigd, dus als je stopt met Studio hoef je niet van een bedrijfseigen formaat af te stappen.
Beperkingen
- Zelfherstel in de modus Suggest repareert niets zelfstandig. Iemand moet elke reparatie nog steeds goedkeuren, dus een grote wijziging aan de gebruikersinterface kost nog steeds beoordelingstijd.
- Voor het automatisch uitlezen na een mislukte test is vrij geheugen op de computer nodig. Als er niet genoeg beschikbaar is, start dit niet en kun je de kandidaten nog steeds handmatig opvragen.
- Locator health leest het bestand regel voor regel, dus een locator die over meerdere regels is verdeeld wordt niet herkend.
- Een zwakke locator die nog werkt is geen fout. Locator health wijst je erop, maar niets verplicht je om die te wijzigen.
Waar kan ik het in actie zien?
De Studio-rondleiding toont de Repair-regel en de status van locators op het scherm, de gids met beoordelingen legt AUTO_RECOVER uit naast de andere 13 beoordelingen, en de proefversie van 30 dagen gebruikt dezelfde engine voor je eigen tests.