Skip to main content

Volgens een SlashData-enquête uit 2020 gebruikte bijna 90% van de geïnterviewde ontwikkelaars API's in zekere mate. Met dit in gedachten is het geen wonder dat het sollicitatiegesprek, zelfs als je een handmatige tester of automatiseringstester bent die op zoek is naar een nieuwe baan, vragen over API's zal bevatten. 

In dit artikel bespreek ik enkele van de meest voorkomende en belangrijkste vragen over API-testen tijdens sollicitatiegesprekken en geef ik voor elke vraag het ideale antwoord. Laten we beginnen!

1. Wat is API-testen?

API-testen is een type softwaretest waarbij API's (Application Programming Interface) worden geëvalueerd om te controleren of ze voldoen aan de vereisten voor functionaliteit, betrouwbaarheid, prestaties en beveiliging. Omdat API's geen GUI hebben, wordt API-testen uitgevoerd op de berichtenlaag van het systeem. 

Want more from The CTO Club?

Create a free account to finish this piece and join a community of CTOs and engineering leaders sharing real-world frameworks, tools, and insights for designing, deploying, and scaling AI-driven technology.

Name*
This field is hidden when viewing the form
This field is hidden when viewing the form
This field is hidden when viewing the form
This field is hidden when viewing the form
By submitting you agree to receive occasional emails and acknowledge our Privacy Policy. You can unsubscribe at anytime.

2. Wat zijn de voordelen van API-testen?

API-testen heeft verschillende voordelen. Enkele van de belangrijkste zijn:

  • Testen zonder GUI: Testers kunnen API-tests uitvoeren zonder de software rechtstreeks te hoeven gebruiken. Dit is een enorm voordeel, omdat QA-engineers hierdoor al vroeg inzicht krijgen in gebreken en fouten, zodat ontwikkelaars deze kunnen oplossen voordat ze gevolgen hebben voor de GUI.
  • Testen van kernfunctionaliteit: Door de functionaliteit op codeniveau van een applicatie te testen voordat GUI-tests worden uitgevoerd, kan de algehele bouwkwaliteit worden beoordeeld. Hierdoor komen kleine fouten aan het licht die kunnen uitgroeien tot grotere problemen op GUI-niveau. Toegang tot de kern maakt het mogelijk om gelijktijdig met de ontwikkeling te testen, wat communicatie en betere samenwerking bevordert.
  • Tijdefficiënt: API-tests nemen doorgaans minder tijd in beslag dan functionele GUI-tests. GUI-tests duren langer omdat de webcomponenten moeten worden bevraagd. Bij de automatisering van API-tests is bovendien minder code nodig en wordt een betere en snellere testdekking geboden in vergelijking met geautomatiseerde GUI-tests.
  • Onafhankelijk van programmeertaal: Een API-test gebruikt XML of JSON om gegevens uit te wisselen. Deze overdrachtsmodi zijn niet afhankelijk van een programmeertaal; daarom kun je elke programmeertaal gebruiken bij het schrijven van geautomatiseerde tests voor je API. 

3. Waarin verschilt API-testen van UI-testen?

API-testen richt zich veel meer op het testen van bedrijfslogica, gegevensreacties en beveiliging, evenals op prestatieknelpunten. UI-testen richt zich daarentegen op het controleren van de vormgeving en werking van een webinterface, of op de werking van bepaalde knoppen, formulieren, vervolgkeuzelijsten enzovoort.

Get regular tech leadership wisdom for delivering better software and systems.

Name*
This field is hidden when viewing the form
This field is hidden when viewing the form
This field is hidden when viewing the form

4. Wat zijn de onderdelen van een HTTP-verzoek?

Een HTTP-verzoek bestaat uit vijf elementen:

  • Een HTTP-methode (hieronder besproken) die de actie definieert.
  • Een URI (Uniform Resource Identifier) is de identificatie van de bron op de server.
  • Een HTTP-versie, bijvoorbeeld HTTP v1.1.
  • De verzoekheader bevat metagegevens (als sleutel-waardeparen) voor het HTTP-verzoekbericht. Het type client (of browser), de door de client ondersteunde indelingen, indelingen van de berichttekst, cache-instellingen en andere informatie zijn voorbeelden van metagegevens.
  • De verzoektekst bevat de gegevens die door de client naar de API worden verzonden.

5. Wat zijn de meest gebruikte HTTP-methoden in REST-API's?

De belangrijkste HTTP-methoden die worden gebruikt bij het uitvoeren van REST API-testen zijn de methoden waarmee CRUD-bewerkingen worden uitgevoerd:

  • GET is de HTTP-methode waarmee informatie uit de bron wordt gelezen.
  • De POST-methode wordt gebruikt om bronnen te maken of bij te werken.
  • PUT wijzigt een bestaande bron.
  • DELETE verwijdert een opgegeven bron.

6. Wat is het verschil tussen de PUT- en POST-methoden?

Dit is een sollicitatievraag die mij vaak werd gesteld, en het antwoord is hierboven gedeeltelijk al gegeven. 

Wanneer je één bron moet wijzigen die deel uitmaakt van een verzameling bronnen, gebruik je de PUT-methode. Wanneer je een onderliggende bron aan een verzameling bronnen moet toevoegen, moet je de POST-methode gebruiken. Als de PUT-aanroep meer dan één keer wordt verzonden, blijven de resultaten hetzelfde. Als een POST-verzoek meerdere keren wordt verzonden, verschillen de resultaten; er kunnen bijvoorbeeld meerdere bronnen worden gemaakt of er wordt een fout geretourneerd.

Als u bijvoorbeeld een resource hebt voor het maken en bijwerken van gebruikers, zal het verzenden van dezelfde PUT-methode voor een gebruiker de gebruiker telkens bijwerken. Het verzenden van dezelfde POST-methode voor een gebruiker resulteert in meerdere aangemaakte gebruikers of in een foutmelding dat de gebruikersnaam of het e-mailadres al in gebruik is.

7. Wat zijn de klassen van HTTP-responscodestatussen?

Dit is een andere veelgestelde sollicitatievraag en het is belangrijk om dit te weten bij het uitvoeren van API-tests. De klassen van HTTP-responscodes zijn:

  • 1xx: de antwoorden in deze categorie zijn informatieve antwoorden. Ze betekenen dat de client moet doorgaan met het verzoek of het antwoord moet negeren als het verzoek is voltooid.
  • 2xx: een code 200 betekent succes. 
  • 3xx: deze antwoorden zijn omleidingsantwoorden. Dit betekent dat er meerdere mogelijke antwoorden op het verzoek zijn. Een daarvan moet door de user-agent of gebruiker worden geselecteerd. 
  • 4xx: de codes in deze groep duiden op een clientfout. Dit betekent dat de server het verzoek niet kan verwerken en het beschouwt als een fout aan de kant van de client, zoals een niet-herkende URL, een onjuiste syntaxis van het verzoek enzovoort.
  • 5xx: de HTTP-responscode 500 wordt geretourneerd wanneer er aan de serverzijde een fout optreedt en de server het verzoek niet kan uitvoeren.

Als u dieper op de details van de antwoordstatussen wilt ingaan, kunt u de volledige lijst online vinden. 

8. Wat zijn enkele veelgebruikte hulpmiddelen voor geautomatiseerde API-tests?

Op deze vraag zou ik antwoorden met enkele hulpmiddelen waarmee ik al heb gewerkt of waarmee ik op zijn minst enigszins vertrouwd ben. Dus als u ervaring hebt met hulpmiddelen voor API-tests, vermeld ze dan. Zo niet, dan kunt u enkele populaire hulpmiddelen noemen, zoals Katalon, Postman of SoapUI. Bekijk ons artikel over de beste hulpmiddelen voor API-tests voor inspiratie. 

9. Wat zijn enkele veelgebruikte verificatiemethoden bij API-tests?  

Een passend antwoord op deze vraag zou zijn:

  • Verificatie op basis van sessies/cookies
  • Basisverificatie
  • Digestverificatie
  • OAuth

10. Wat is het verschil tussen authenticatie en autorisatie?

Kort gezegd is authenticatie het proces waarbij de identiteit van een gebruiker wordt geverifieerd, terwijl autorisatie het proces is waarbij het toegangsniveau van die gebruiker wordt bevestigd. 

11. Waarom heeft API-testen de voorkeur boven UI-testen voor geautomatiseerde tests?

Als we terugkeren naar de klassieke piramide voor testautomatisering, is het in onze branche algemeen bekend dat end-to-endtests van de UI bovenaan moeten staan, wat betekent dat ze het kleinste aantal tests moeten vormen. Dit komt doordat geautomatiseerde UI-tests doorgaans meer tijd kosten en vatbaarder zijn voor instabiliteit omdat ze veel afhankelijkheden hebben. Geautomatiseerde API-tests vertegenwoordigen het deel voor integratietests van de piramide en zijn veel sneller en doorgaans betrouwbaarder.

12. Wat is het verschil tussen API-testen en unittesten?

Unittesten valt onder whiteboxtesten, terwijl API-testen meestal blackboxtesten zijn. Omdat een eindgebruiker met de gebruikersinterface werkt, moet API-testen het systeem als geheel vertegenwoordigen. Bij unittesten is een belangrijke overweging of elk onderdeel of elke module foutloos functioneert. Om tot een solide modulearchitectuur te komen, moeten afhankelijkheden tot een minimum worden beperkt. 

13. Welke soorten tests kunnen op API's worden toegepast?

De meeste testtypen die bij UI-testen worden toegepast, werken ook op API's. Enkele van de meest relevante testtypen die u voor deze API-sollicitatievraag kunt noemen, zijn:

  • Functioneel testen: meestal wil je testen of de API's doen waarvoor ze zijn ontworpen. Dit betekent dat je functionele testgevallen voor API's uitvoert. 
  • Handmatig testen: het feit dat je geen tester voor automatisering bent, betekent niet dat je geen API's kunt testen. Je kunt tools zoals Postman gebruiken om verzoeken te verzenden en de reacties handmatig te testen.
  • Geautomatiseerd testen: het is een goed idee om de API-testgevallen te automatiseren. Veel van de bovenstaande tools kunnen je daarbij helpen, of je kunt je eigen API-framework maken. 
  • Belastingtesten: door verkeer naar API's te simuleren, kunnen testers knelpunten identificeren voordat deze in productie terechtkomen. Zonder productielast kan het lastig zijn om deze knelpunten in ontwikkelomgevingen te identificeren. Er zijn tools voor belastingtesten waarmee je HTTP-aanroepen naar een bepaald eindpunt kunt verzenden en de responstijd, fouten en foutpercentages en andere waardevolle gegevens uit de reacties kunt meten. Ze kunnen ook helpen bij het simuleren van grote hoeveelheden gegevens om te beoordelen hoe een applicatie zich gedraagt.
  • Beveiligingstesten: met beveiligingstesten wordt de API-implementatie beschermd tegen bedreigingen van buitenaf. Fasen in beveiligingstesten omvatten het verifiëren van versleutelingstechnieken en de architectuur van de toegangscontrole van de API. Gebruikerstoegangsbeheer en verificatie van autorisatie maken hier ook deel van uit.
  • Penetratietesten: bij dit type testen proberen gebruikers die niet bekend zijn met de API de dreigingsvector op afstand te evalueren, waarbij ze zich richten op functionaliteiten, bronnen, workflows of de volledige API en de bijbehorende componenten.

Of je nu een handmatige tester bent of aan testautomatisering werkt, het is essentieel om te weten hoe je met API's werkt. Als je je voorbereidt op sollicitatievragen over API-testen, hoop ik dat je dit artikel waardevol vindt.

Vergeet je niet te abonneren op de nieuwsbrief van The CTO Club voor meer tips en tutorials over testen!