API testen? Dat doe je zó!
Net als bij de meeste technologische projecten heb je een plan nodig om API testen uit te voeren. Een plan helpt je om te bepalen wat je doelstellingen zijn en hoe je die wilt bereiken. Hier volgen enkele tips om je op weg te helpen met het de API-tests:
- Weet wat de vereisten zijn: breng de API-vereisten in kaart en beantwoord de volgende vragen:
- Welk doel heeft de API?
- Wie is de doelgroep?
- Welke problemen wil je in je tests opsporen?
- Wat is de gewenste output?
- Wat zijn de eigenschappen en functies van de API?
- Wat is de applicatieworkflow?
- Welke integraties moet de API ondersteunen?
- Wat zijn de testprioriteiten?
- Stel je testomgeving in: creëer een testomgeving op basis van de vereisten van je test API. Stem de configuratie van de databank en server af op de vereisten van de toepassing. Voer vervolgens een API-aanroep uit om na te gaan of alles correct geconfigureerd is en er niets fout gaat voordat je daadwerkelijk gaat testen.
- Kies een API-testtool: tenzij je alles handmatig wilt testen, heb je een API-testtool nodig om je testcases te structureren en te beheren.
- Bepaal welke soorten API-tests je wil uitvoeren: nadat je de testomgeving hebt opgezet en zeker weet dat alles werkt, moet je bepalen waarop je de API wil testen.
Welke soorten API-tests kun je uitvoeren?
Het soort test dat je gaat uitvoeren, is afhankelijk van waar je op wilt testen. Zo kun je voor het testen van functies een functionele test uitvoeren.
Je hebt keuze uit verschillende soorten API-tests:
- Functionele tests: testen de verschillende functies in de codebase. De tests simuleren specifieke scenario's om na te gaan of de functies van de API correct werken binnen de geplande en verwachte parameters.
- Betrouwbaarheidstests: gaan na of de API gedurende een specifieke periode en in een specifieke situatie foutloos kan blijven werken.
- Loadtests: gaan na of de prestaties van de API gewaarborgd zijn onder normale omstandigheden en onder piekbelasting.
- Beveiligingstests: worden gebruikt om te controleren of de API voldoende beveiligd is tegen externe bedreigingen. Onder meer de versleutelingsmethodes, de toegangscontrole tot de API, het beheer van gebruikersrechten en de autorisatievalidatie worden getest.
- UI-tests: gaan na of de gebruikersinterface van de API correct werkt. Hier ligt de focus vooral op de interface die aan de API gekoppeld wordt en niet zozeer op de API zelf. UI-tests geven je een beeld van de gezondheid en gebruiksvriendelijkheid van de app aan de front- en backend.
- Negatieve tests: hebben als doel na te gaan wat er gebeurt als de app ongeldige of onbedoelde input krijgt. Je probeert hier te achterhalen wanneer het systeem het begeeft, zodat je adequatere reacties kunt ontwikkelen. Bij de invoer van een letter in een veld dat bestemd is voor getallen moet er bijvoorbeeld een foutmelding verschijnen en mag de app niet meteen crashen.
- Valideringstests: moeten bepalen of de API correct werd ontwikkeld en of alles naar behoren werkt.
Handmatige versus geautomatiseerde tests
Handmatig testen is een erg arbeidsintensief proces, waarbij een QA-medewerker de individuele tests een voor een uitvoert. Testers zijn betrokken bij elk aspect van het proces, vanaf het opstellen van de testcase tot de uitvoering ervan. Testers controleren de functies, zoeken naar bugs en schrijven foutrapporten zonder automatiseringstools te gebruiken.
Handmatige tests zijn tijdrovend en kunnen erg eentonig zijn. Door tests te automatiseren, kun je meer situaties testen, met een groter testbereik en meer efficiëntie.
Waarom handmatig testen?
Bij handmatige tests gaat er meer aandacht uit naar het testproces. Door je tests zelf op te zetten en handmatig uit te voeren, krijg je een genuanceerdere controle over de test. Bovendien ligt het risico op vals-negatieven lager. Die kunnen immers aanzienlijk veel bijkomend werk opleveren om de gemelde fouten op hun correctheid te controleren.
De volgende soorten tests zou je eigenlijk handmatig moeten uitvoeren:
- Verkennende tests
- Bruikbaarheidstests
- UI-tests
- Ad-hoctests
Je kunt wel handmatig testen als je kleine wijzigingen wilt controleren. Zelfs de kleinste wijziging vraagt om nieuwe code voor geautomatiseerde tests en dat zou wel eens meer tijd kunnen vergen dan een snelle handmatige test.
Waarom geautomatiseerd testen?
Het grootste voordeel van geautomatiseerde API-tests is dat je meer tests in minder tijd kunt uitvoeren. Dat komt de productiviteit ten goede en helpt je om efficiënter te testen. Snellere testen betekent snellere oplossingen en dus een snellere productrelease.
De volgende soorten tests zou je eigenlijk geautomatiseerd moeten uitvoeren:
- Functionele tests
- Loadtests
- Prestatietests
- Valideringstests
- Dynamische tests
- Gegevensgestuurde tests
- Fouttests
- Meertalige tests
- Regressietests
API best practices voor het testen van API's?
Hoewel je verkennende tests en UI-tests handmatig zou moeten uitvoeren, moet je de meeste API-tests eigenlijk geautomatiseerd uitvoeren. Hier volgen enkele best practices voor geautomatiseerde API-tests. Ze kunnen je helpen om het testproces te stroomlijnen, meer tests in minder tijd uit te voeren, geld te besparen en een beter product te introduceren.
Documenteer alles
Het succes van je tests kan afhangen van hoe goed je de zakelijke vereisten en testcases gedefinieerd hebt. De meeste API's hebben geen frontend-GUI om naar te verwijzen, dus is het cruciaal om elk veld en de bijhorende parameters duidelijk te specifiëren in je documentatie. Testers gebruiken die documentatie om te controleren of alle vereiste cases behandeld zijn.
Je moet ook gedetailleerde, uitgebreide testverslagen maken waarin je de redenen beschrijft waarom testen mislukt zijn. Dankzij die verslagen kunnen de ontwikkelaars vervolgens gemakkelijker bepalen welke elementen aangepast moeten worden.
Denk aan de DRY-benadering
De DRY-benadering (don't repeat yourself) moet herhaling van code voorkomen. Code die voor componenten en handelingen in verschillende API's gebruikt wordt, zet je een gedeelde bibliotheek die gemakkelijk toegankelijk is voor alle componenten die dat nodig hebben.
Begin met de kleine API's
Begin rustig en test eerst de simpele API's met slechts een of twee inputs (zoals een inlog-API). Door je eerst op de kleine API's te richten, krijg je zelfvertrouwen en kun je je ervan vergewissen dat je testomgeving geschikt is voor het testen van grotere API's.