Automatisering van negatieve scenario's is een onmisbaar onderdeel van een volledig testsysteem. Dit zijn controles waarbij de veerkracht van het systeem tegen foutieve acties, onjuiste gegevens, service-uitval en andere ongewone situaties wordt gevalideerd.
Achtergrond van de vraag:
Eerder lag de focus voornamelijk op positieve scenario's (happy paths), omdat deze eenvoudiger te automatiseren en te onderhouden zijn. Echter, de vereisten voor kwaliteit zijn gestegen, en steeds meer bugs ontstaan juist op de grenzen, met foutieve of onduidelijk onjuiste voorwaarden. Handmatig testen veroudert snel, en automatisering maakt het mogelijk om degradaties te volgen.
Probleem:
Oplossing:
Belangrijke kenmerken:
Is het voldoende om alleen te controleren welke fouten worden geretourneerd bij negatieve testing?
Nee. Het is belangrijk om niet alleen de inhoud van de fout te controleren, maar ook ervoor te zorgen dat er na de fout geen wijziging in de systeemstatus heeft plaatsgevonden (bijvoorbeeld dat er geen onjuiste record aan de database is toegevoegd).
Moet je alle mogelijke negatieve scenario's automatiseren?
Nee. Er kunnen er oneindig veel zijn; je moet de meest waarschijnlijke en kritieke identificeren (Boundary Value, Null/Empty, onjuiste types, SQL-injecties, enz.), de rest naar behoefte voorbereiden wanneer bugs zich voordoen.
Kan dezelfde verwerking voor alle negatieve gevallen worden gebruikt?
Nee. Verschillende negatieve scenario's vereisen verschillende controles, foutafhandelingsprocessen en rollback-instructies, en sjabloon asserts zijn niet voldoende.
In het systeem worden alleen geldige registratiescenario's getest. Registratie met een leeg e-mailadres wordt niet automatisch gecontroleerd. Uiteindelijk wordt het probleem dat je een gebruiker met een leeg e-mailadres kunt registreren, pas opgemerkt in de productie.
Voordelen:
Nadelen:
Voor elk negatief scenario (afwezigheid van e-mail, onjuiste opmaak, SQL-injectie) is er een geautomatiseerde test die expliciet controleert op de afwezigheid van een nieuw account en de inhoud van het foutbericht.
Voordelen:
Nadelen: