Interviewspørgsmål om API-test

Discover how to deliver better software and systems in rapidly scaling environments. Join our Community

Bemærk, manuelle testere og automatiseringstestere, der forbereder sig til jobsamtaler! Vores guide til interviewspørgsmål om API-test dækker grundlæggende begreber, forskelle mellem API- og brugerfladetest, HTTP-metoder og statuskoder, almindelige værktøjer samt godkendelsesmetoder. Lad os klare den!

Ifølge en SlashData-undersøgelse fra 2020 brugte næsten 90 % af de interviewede udviklere API'er i et eller andet omfang. Med dette in mente er det ikke overraskende, at jobsamtalen vil indeholde API-relaterede spørgsmål, selv hvis du er manuel tester eller automatiseringstester, der leder efter et jobskifte. 

I denne artikel gennemgår jeg nogle af de mest almindelige og vigtige spørgsmål om API-testning ved jobsamtaler og giver det ideelle svar på hvert af dem. Lad os komme i gang!

1. Hvad er API-testning?

API-testning er en type softwaretest, der indebærer evaluering af API'er (Application Programming Interface) for at se, om de opfylder kravene til funktionalitet, pålidelighed, ydeevne og sikkerhed. Da API'er ikke har en GUI, udføres API-testning på systemets meddelelseslag. 

2. Hvad er fordelene ved at udføre API-testning?

API-testning har flere fordele. Blandt de vigtigste kan du nævne:

  • Test uden GUI: Testere kan udføre API-tests uden at skulle bruge softwaren direkte. Det er en enorm fordel, fordi det giver QA-ingeniører tidlig indsigt i fejl og mangler, så udviklere kan rette dem, før de påvirker GUI'en.
  • Test af kernefunktionalitet: Før GUI-tests udføres, gør test af en applikations funktionalitet på kodeniveau det muligt at evaluere den overordnede byggekvalitet. Det hjælper med at afsløre små fejl, der kan udvikle sig til større problemer på GUI-niveau. Adgang til kernen gør det muligt at teste sideløbende med udviklingen, hvilket muliggør kommunikation og bedre samarbejde.
  • Effektiv med hensyn til tid: API-tests tager typisk mindre tid end funktionel GUI-testning. GUI-testning tager længere tid, fordi webkomponenterne skal forespørges. API-testautomatisering involverer især mindre kode og giver bedre og hurtigere testdækning sammenlignet med automatiseret GUI-testning.
  • Uafhængig af programmeringssprog: En API-test bruger XML eller JSON til at udveksle data. Disse overførselsformer er ikke afhængige af programmeringssprog; derfor kan du bruge ethvert programmeringssprog, når du skriver automatiserede tests til din API. 

3. Hvordan adskiller API-testning sig fra UI-testning?

API-testning fokuserer i langt højere grad på test af forretningslogik, datasvar og sikkerhed samt flaskehalse i ydeevnen. UI-testning fokuserer derimod på at kontrollere udseendet og brugeroplevelsen af en webgrænseflade, eller at bestemte knapper, formularer, rullemenuer osv. fungerer.

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

Have an account? Log In

4. Hvilke komponenter består en HTTP-anmodning af?

En HTTP-anmodning har fem elementer:

  • En HTTP-metode (beskrevet nedenfor), der definerer handlingen.
  • En URI (Uniform Resource Identifier) er identifikatoren for ressourcen på serveren.
  • En HTTP-version, f.eks. HTTP v1.1.
  • Anmodningsheaderen indeholder metadata (som nøgleværdi-par) for HTTP-anmodningsmeddelelsen. Klientens (eller browserens) type, klientunderstøttede formater, meddelelseslegemets formater, cacheindstillinger og andre oplysninger er eksempler på metadata.
  • Anmodningslegemet repræsenterer de data, som klienten sender til API'en.

5. Hvilke HTTP-metoder bruges mest i REST API'er?

De vigtigste HTTP-metoder, der bruges ved REST API-testning, er de metoder, der udfører CRUD-handlinger:

  • GET er den HTTP-metode, der læser oplysningerne fra ressourcen.
  • POST-metoden bruges til at oprette eller opdatere ressourcer.
  • PUT ændrer en eksisterende ressource.
  • DELETE fjerner en angivet ressource.

6. Hvad er forskellen mellem PUT- og POST-metoderne?

Det er et spørgsmål, jeg ofte fik stillet til jobsamtaler, og svaret er delvist besvaret ovenfor. 

Når du skal ændre en enkelt ressource, der er en del af en ressourcesamling, kalder du PUT-metoden. Når du skal tilføje en underordnet ressource til en ressourcesamling, skal du bruge POST-metoden. Hvis PUT HTTP-kaldet sendes mere end én gang, forbliver resultaterne de samme. Hvis en POST-anmodning sendes flere gange, vil resultaterne være forskellige, dvs. flere ressourcer kan blive oprettet, eller der returneres en fejl.

Hvis du for eksempel har en ressource til oprettelse og opdatering af brugere, vil den samme PUT-metode for en bruger opdatere brugeren hver gang. Hvis du sender den samme POST-metode for en bruger, vil det enten resultere i, at der oprettes flere brugere, eller i en fejlmeddelelse om, at brugernavnet eller e-mailadressen allerede er i brug.

7. Hvad er klasserne for HTTP-svarstatuskoder?

Dette er endnu et almindeligt interviewspørgsmål og vigtigt at kende, når du udfører API-test. Klasserne for HTTP-svarskoder er:

  • 1xx: svarene i denne kategori er informationssvar. De betyder, at klienten skal fortsætte anmodningen eller ignorere svaret, hvis den er afsluttet.
  • 2xx: en 200-kode betyder succes. 
  • 3xx: disse svar er omdirigeringssvar. Det betyder, at der er flere mulige svar på anmodningen. Et af dem skal vælges af brugeragenten eller brugeren. 
  • 4xx: koderne i denne gruppe angiver en klientfejl. Det betyder, at serveren ikke kan behandle anmodningen, og at den opfatter den som en fejl fra klientsiden, f.eks. en URL, der ikke genkendes, en forkert syntaks i anmodningen og så videre.
  • 5xx: HTTP-svarskoden 500 returneres, når der er en fejl på serversiden, og serveren ikke kan udføre anmodningen.

Hvis du vil gå i detaljer med svarstatusserne, kan du finde den komplette liste online. 

8. Hvilke almindelige værktøjer til automatiseret API-test findes der?

Til dette spørgsmål ville jeg svare med nogle værktøjer, jeg allerede har arbejdet med eller i det mindste er lidt fortrolig med. Så hvis du har erfaring med værktøjer til API-test, skal du nævne dem. Hvis ikke kan du svare med nogle populære værktøjer som Katalon, Postman eller SoapUI. Se vores artikel om de bedste værktøjer til API-test for inspiration. 

9. Hvilke almindeligt anvendte godkendelsesmetoder findes der i API-test?  

Et passende svar på dette spørgsmål ville være:

  • Sessions-/cookiebaseret godkendelse
  • Grundlæggende godkendelse
  • Digest-godkendelse
  • OAuth

10. Hvad er forskellen mellem godkendelse og autorisation?

Kort sagt er godkendelse processen med at bekræfte en brugers identitet, mens autorisation er processen med at bekræfte brugerens adgangsniveau. 

More Articles

11. Hvorfor foretrækkes API-test frem for UI-test til automatiserede tests?

Hvis vi vender tilbage til den klassiske pyramide for testautomatisering, er det velkendt i vores branche, at UI-test fra ende til anden bør være øverst, hvilket betyder, at de bør udgøre det mindste antal tests. Det skyldes, at automatiserede UI-tests har en tendens til at tage længere tid og er mere tilbøjelige til at være ustabile, fordi de har mange afhængigheder. Automatiserede API-tests udgør den del af pyramiden, der omhandler integrationstest, og de er meget hurtigere og som regel mere pålidelige.

12. Hvad er forskellen mellem API-test og enhedstest?

Enhedstest hører under hvidbokstest, mens API-test normalt er sortbokstest. Da en slutbruger interagerer med brugergrænsefladen, skal API-test repræsentere systemet som en helhed. I enhedstest er det vigtigt at overveje, om hver komponent eller hvert modul fungerer fejlfrit. For at opnå en solid modularkitektur bør afhængighederne med andre ord minimeres. 

13. Hvilke testtyper kan anvendes på API'er?

De fleste testtyper, der anvendes til UI-test, fungerer også på API'er. Nogle af de mest bemærkelsesværdige testtyper, du kan nævne til dette API-interviewspørgsmål, er:

  • Funktionstest: Det meste af tiden vil du gerne teste, at API'erne gør det, de er designet til. Det betyder, at du vil køre funktionelle testcases på API'er. 
  • Manuel test: Bare fordi du ikke er en automatiseringstester, betyder det ikke, at du ikke kan teste API'er. Du kan bruge værktøjer som Postman til at sende forespørgsler og teste svarene manuelt.
  • Automatiseret test: Det er en god idé at automatisere API-testcases. Mange af de ovennævnte værktøjer kan hjælpe dig med det, eller du kan oprette dit eget API-rammeværk. 
  • Belastningstest: Ved at simulere trafik til API'er kan testere identificere flaskehalse, før de kommer i produktion. Uden en produktionsbelastning kan det være udfordrende at identificere disse flaskehalse i udviklingsmiljøer. Der findes værktøjer til belastningstest, som gør det muligt at sende HTTP-kald til et givet slutpunkt og måle svartiden, fejl og fejlprocenter samt andre værdifulde data fra svarene. De kan også hjælpe med at simulere store datamængder for at evaluere, hvordan en applikation opfører sig.
  • Sikkerhedstest: Med sikkerhedstest beskyttes API-implementeringen mod trusler udefra. Faserne i sikkerhedstest omfatter verificering af krypteringsteknikker og arkitekturen for API'ets adgangskontrol. Brugeradgangsstyring og verificering af autorisation er også inkluderet.
  • Penetrationstest: Ved denne type test vil brugere, der ikke er bekendt med API'et, forsøge at evaluere trusselsvektoren på afstand med fokus på funktionaliteter, ressourcer, arbejdsgange eller hele API'et og dets komponenter.

Uanset om du er en manuel tester eller arbejder med testautomatisering, er det vigtigt at vide, hvordan man arbejder med API'er. Hvis du forbereder dig på interviewspørgsmål om API-test, håber jeg, at du finder denne artikel værdifuld.

Glem ikke at abonnere på The CTO Clubs nyhedsbrev for flere tips og vejledninger om test!

Andreea Draniceanu
Hi there! My name is Andreea, I’m a software test engineer based in Romania. I’ve been in the software industry for over 10 years. Currently my main focus is UI test automation with C#, but I love exploring all QA-related areas 😊

You may also like