Meerstappenformulieren (wizard, multi-step forms) zijn gebruikelijk bij registraties, accountinstellingen, lange bedrijfsprocessen (bijv. het aanvragen van een lening of het bestellen van diensten). Handmatige testmethoden zijn foutgevoelig en tijdrovend; automatisering bespaart tijd en zorgt voor dekking van alle "hoekgevallen" scenario's.
Geschiedenis van de vraag: Sinds de opkomst van wizards en lange formulieren werden dergelijke scenario's vaak alleen handmatig getest. Met de opkomst van frameworks zoals Selenium, Cypress en Playwright werd het mogelijk om complexe meerstappenverhalen automatisch te reproduceren, wat de stabiliteit van software aanzienlijk verhoogde en het aantal regressiefouten verminderde.
Probleem: Wizards en lange formulieren worden vaak onderworpen aan logische wijzigingen (stappen komen en gaan, validatievoorwaarden veranderen, dynamische velden verschijnen). Het is belangrijk om de stabiliteit van tests te behouden bij dergelijke wijzigingen. De belangrijkste pijnpunten zijn: kwetsbaarheid van locators door de dynamische aard van de stappen, correcte werking van de overgang tussen stappen, beheer van testdata, emulatie van gebruikersfouten, en het klikken door niet-lineaire scenario's met terugkeren en veranderende toestanden.
Oplossing: Er wordt gebruik gemaakt van het Step Object patroon (uitbreiding van Page Object), dat de logica voor elke stap in aparte entiteiten kan opdelen. In tests moeten alle mogelijke scenario-overgangen worden geïmplementeerd, inclusief terugkeren en onjuiste gegevens. Voor een verhoogde stabiliteit worden dynamische wachttijden en methoden voor het zoeken naar elementen gebruikt die niet afhankelijk zijn van de positie op de pagina. Testdata worden gestructureerd om de logica van alle vertakkingen uitgebreid te dekken.
Belangrijke kenmerken:
Misleidende vraag 1
"Is het voldoende om alleen het happy path (hoofdgebruikersscenario's) te dekken als het formulier stabiel is?"
Antwoord: Nee, fouten komen vaak voor bij het verwerken van onverwachte scenario's - terugkeren, stappen overslaan, grenswaarden. Zonder deze testen kunnen we niet met zekerheid spreken over stabiliteit.
Misleidende vraag 2
"Kun je overgangen tussen stappen alleen met URL-overgangen implementeren?"
Antwoord: Niet altijd. Veel wizards gebruiken dynamische routes of worden alleen beheerd door interne JS-states, dus het is noodzakelijk om klikken en interactie te simuleren zoals een echte gebruiker.
Misleidende vraag 3
"Het beheer van testdata speelt geen belangrijke rol als alle stappen verplicht en statisch zijn?"
Antwoord: Onjuist. Zelfs voor statische formulieren kan verschillende data-invulling leiden tot totaal verschillende reacties, het verschijnen van hints, fouten, dynamische hints.
In de automatisering van het bankaanvraagproces was er één enkele end-to-end test geschreven voor het happy path, zonder terugkeren en fouten. Bij wijziging van een van de stappen (toevoeging van een dynamische blok) viel de test niet alleen uit, maar ving deze ook geen bugs op bij het terugkeren naar de vorige stap of het omgaan met onjuiste gegevens.
Voordelen:
Nadelen:
Er werd een Step Object structuur geïmplementeerd, waarbij elke stap werd gedekt door een aparte test, waarbij de wizard werd gesimuleerd terugkeren, fouten, wisselen tussen verschillende takken. Alles werd beheerd via sets van testdata. Nieuwe stappen of wijzigingen vernietigden de waarde van de testdatabase niet.
Voordelen:
Nadelen: