Bij het werken met automatische testen is de juiste structuur de sleutel tot hun effectiviteit en levensvatbaarheid.
Achtergrond
Vroeger werden autotests vaak gemaakt als monolithische en sterk gekoppelde scripts. Dit maakte ze moeilijk te onderhouden en uit te breiden. De groei van het aantal tests toonde het belang van een goede architectuur aan.
Probleem
Zonder duidelijke structuur ontstaan er:
Oplossing
Gebruik duidelijke abstractieniveaus voor je tests:
Een goede praktijk is om te gebruiken:
# Voorbeeld van structuur /tests /features test_order_creation.py /steps order_steps.py /pages order_page.py
Belangrijkste kenmerken:
Wat is beter: lange end-to-end tests schrijven of korte modulaire autotests?
Vaak worden alleen end-to-end tests gekozen, maar het is belangrijk om verschillende testtypes te combineren afhankelijk van de doelen: alle niveaus (Unit, API, UI) zijn belangrijk voor een kwaliteitscontrole.
Mag je in tests zowel UI-controle op tekst als op locators tegelijkertijd gebruiken?
Dit is niet altijd correct: je kunt beide methoden tegelijkertijd gebruiken, maar alleen als de wijzigbaarheid van de UI en de testlogica dat rechtvaardigen. Het is vaak overbodig en compliceert het onderhoud.
Moet je de structuur van het systeem van de te testen software volledig kopiëren bij het maken van autotests?
Nee, de structuur van autotests moet gericht zijn op gebruiksgemak van testen, en niet op exacte duplicatie van de architectuur van de applicatie.
In een team schreef één persoon de autotests, de tests waren in één bestand, elke test kopieerde stappen van de vorige. Bij het bijwerken van de interface werd een bug handmatig in alle tests gefixt.
Voordelen:
Nadelen:
In een ander team werd een architectonisch sjabloon ingevoerd (scheiding van stappen, pagina's, tests). Nieuwe medewerkers konden zich snel inwerken en introduceerden nieuwe tests snel, updates werden op één plek gedaan.
Voordelen:
Nadelen: