Testscript voorbeelden voor een goed testplan
Het gebruik van goede standaarden bij het schrijven van testscripts in Java met Cucumber helpt bij het creëren van een onderhoudbare, schaalbare en leesbare testcodebase.
Ook het hanteren van standaarden bij het schrijven van testscripts in Robot Framework is belangrijk voor een onderhoudbare en efficiënte testautomatiseringssuite.
Beiden testscript voorbeelden zullen in deze blog besproken worden.
Testscript standaarden Java Cucumber
1. Structuur en Organisatie:
Feature-bestanden:
– Plaats feature-bestanden in de map `src/test/resources/features`.
– Gebruik duidelijke, zakelijke taal in de Gherkin-syntax (`Given`, `When`, `Then`).
– Eén feature-bestand per functionaliteit.
– Gebruik tags (`@tag`) om tests te categoriseren en selectief uit te voeren.
Step Definitions:
– Plaats step definition-klassen in de map `src/test/java/steps`.
– Zorg ervoor dat elke stap logisch en specifiek blijft. Vermijd duplicatie van stappen.
Helper Methods:
– Maak een aparte map of klasse voor herbruikbare methoden, zoals `src/test/java/utils`.
2. Best Practices voor Feature-bestanden:
Simpel en duidelijk:
– Schrijf eenvoudige en leesbare scenario’s in Gherkin.
– Vermijd complexe stappen; splits ze zo nodig op.
Scenario’s en Scenario Outlines:
– Gebruik `Scenario Outline` en `Examples` voor datagedreven tests.
– Gebruik duidelijke namen voor scenario’s die het doel beschrijven.
Tags:
– Gebruik tags (`@regression`, `@smoke`, `@critical`) om testcategorieën te onderscheiden.
– Tags maken gefilterde testuitvoering mogelijk.
3. Best Practices voor Step Definitions:
Atomic Steps:
– Elke step definitie moet één duidelijke actie beschrijven.
Herbruikbaarheid:
– Gebruik parametrisatie in step definitions om hergebruik te maximaliseren.
Coding Standards:
– Gebruik consistente naamgevingsconventies.
– Houd methoden kort en specifiek.
– Voeg logging toe om testuitvoer beter te begrijpen.
Error Handling:
– Gebruik asserties uit libraries zoals AssertJ of TestNG om resultaten te valideren.
– Zorg voor duidelijke foutmeldingen.
4. Test Data Management:
Testgegevens:
– Gebruik gestructureerde testdata in JSON, YAML, of Excel-bestanden.
– Implementeer een `DataLoader`-klasse om testgegevens te beheren.
Avoid Hardcoding:
– Parameteriseer gegevens om flexibiliteit te behouden en hardcoding te vermijden.
5. Rapportage:
– Integreer rapportagetools zoals Allure of Extent Reports om duidelijke rapportages te genereren na testuitvoering.
6. CI/CD Integratie:
– Configureer Cucumber-tests met Maven of Gradle en integreer met CI/CD-tools zoals Jenkins of GitHub Actions.
Testcsript standaarden Robot Framework
1. Structuur en Organisatie:
Projectstructuur:
– Houd een duidelijke mappenstructuur aan: tests/ functional/ integration/ regression/ resources/ keywords/ variables/ logs/
– Scheid testcases, keywords, en variabelenbestanden.
File Naming:
– Gebruik beschrijvende namen voor testbestanden en directories, zoals `login_tests.robot` of `search_tests.robot`.
Testcases:
– Houd testcases klein en gericht op één functionaliteit.
– Geef testcases beschrijvende namen, bijvoorbeeld: robot.
2. Gebruik van Keywords:
Herbruikbare keywords:
– Creëer custom keywords in een apart bestand of map (`resources/keywords`).
– Gebruik `BuiltIn`, `SeleniumLibrary`, of andere libraries als basis voor custom keywords.
Beschrijving en consistentie:
– Gebruik duidelijke en beschrijvende namen voor keywords.
– Voeg documentatie toe aan keywords.
3. Variabelenbeheer:
Gebruik variabelenbestanden:
– Definieer variabelen in een apart bestand (`resources/variables`) en gebruik ze consistent.
Avoid Hardcoding:
– Vermijd hardcoded waarden in tests en gebruik variabelen voor flexibiliteit.
4. Test Data Management:
Externe testdata:
– Beheer testgegevens in externe bronnen zoals Excel, CSV, of JSON en laad ze dynamisch in.
Datagedreven testen:
– Gebruik `For Loops` of `Test Templates` om datagedreven scenario’s te ondersteunen
5. Rapportage en Logging:
Log niveau:
– Zorg dat logging nuttig en duidelijk is. Gebruik `Log` en `Log To Console` om relevante informatie vast te leggen.
Rapportage-integraties:
– Integreer Robot Framework met tools zoals Allure of ELK Stack voor uitgebreide rapportages.
6. CI/CD Integratie:
Command line:
– Zorg ervoor dat de tests eenvoudig uitvoerbaar zijn via de command line: “`bash robot -d logs tests/ “`
Integratie met CI/CD:
– Integreer Robot Framework met Jenkins, GitLab CI, of andere CI/CD-tools. Zorg ervoor dat logs en rapportages automatisch worden gegenereerd.
7. Code Kwaliteit:
Documentatie:
– Voeg documentatie toe voor testcases en keywords.
– Zorg dat alle scripts voldoen aan PEP-8 wanneer Python wordt gebruikt voor custom libraries.
Code Reviews:
– Laat testcode regelmatig reviewen om consistentie en kwaliteit te waarborgen.
Debugging:
– Gebruik Robot Framework’s ingebouwde debugmogelijkheden (`Run Keyword If`, `Log`) om problemen sneller op te lossen.