Skip to main content

Enligt en undersökning från SlashData 2020 använde nästan 90 % av de intervjuade utvecklarna API:er i någon utsträckning. Med detta i åtanke är det inte konstigt att anställningsintervjun kommer att innehålla API-relaterade frågor, även om du är en manuell testare eller automationstestare som söker ett nytt jobb. 

I den här artikeln går jag igenom några av de vanligaste och viktigaste intervjufrågorna om API-testning och ger det ideala svaret på var och en. Då sätter vi igång!

1. Vad är API-testning?

API-testning är en typ av programvarutestning som innebär att API:er (Application Programming Interface) utvärderas för att se om de uppfyller kraven på funktionalitet, tillförlitlighet, prestanda och säkerhet. Eftersom API:er inte har något grafiskt användargränssnitt utförs API-testning på systemets meddelandenivå. 

Continue Reading for Free

Create a free account to finish this article, plus get ongoing access to timely insights and practical resources.

2. Vilka är fördelarna med att utföra API-testning?

API-testning har flera fördelar. Bland de viktigaste kan du nämna:

  • Testning utan grafiskt användargränssnitt: Testare kan genomföra API-tester utan att behöva använda programvaran direkt. Detta är en stor fördel eftersom det ger QA-ingenjörer tidiga insikter i brister och fel, vilket gör att utvecklarna kan åtgärda dem innan de påverkar det grafiska användargränssnittet.
  • Testning av kärnfunktionalitet: Genom att testa en applikations funktionalitet på kodnivå innan GUI-tester utförs kan man utvärdera den övergripande byggkvaliteten. Detta hjälper till att upptäcka små fel som kan utvecklas till större problem på GUI-nivå. Direkt åtkomst till kärnan gör det möjligt att testa parallellt med utvecklingen, vilket underlättar kommunikation och bättre lagarbete.
  • Tidseffektivt: API-tester tar vanligtvis mindre tid än funktionell GUI-testning. GUI-testning tar längre tid eftersom webbkomponenterna måste avfrågas. API-testautomatisering innebär särskilt mindre kod och ger bättre och snabbare testtäckning jämfört med automatiserad GUI-testning.
  • Språkoberoende: Ett API-test använder XML eller JSON för att utbyta data. Dessa överföringsformat är inte språkberoende, vilket innebär att du kan använda vilket programmeringsspråk som helst när du skriver automatiserade tester för ditt API. 

3. Hur skiljer sig API-testning från UI-testning?

API-testning fokuserar mycket mer på att testa affärslogik, datasvar och säkerhet samt flaskhalsar i prestandan. UI-testning fokuserar däremot på att kontrollera utseendet och känslan hos ett webbgränssnitt eller att vissa knappar, formulär, rullgardinsmenyer och liknande fungerar.

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

4. Vilka komponenter ingår i en HTTP-begäran?

En HTTP-begäran har fem delar:

  • En HTTP-metod (som behandlas nedan) som definierar åtgärden.
  • En URI (enhetlig resursidentifierare) är resursens identifierare på servern.
  • En HTTP-version, till exempel HTTP v1.1.
  • Begärandehuvudet innehåller metadata (som nyckel-värde-par) för HTTP-begäransmeddelandet. Klientens (eller webbläsarens) typ, format som stöds av klienten, meddelandets brödtextformat, cacheinställningar och annan information är exempel på metadata.
  • Begärans brödtext representerar de data som klienten skickar till API:et.

5. Vilka är de vanligaste HTTP-metoderna i REST-API:er?

De viktigaste HTTP-metoderna som används vid REST API-testning är de metoder som utför CRUD-åtgärder:

  • GET är HTTP-metoden som läser information från resursen.
  • POST-metoden används för att skapa eller uppdatera resurser.
  • PUT ändrar en befintlig resurs.
  • DELETE tar bort en angiven resurs.

6. Vad är skillnaden mellan PUT- och POST-metoderna?

Det här är en intervjufråga som jag ofta fick, och svaret besvaras delvis ovan. 

När du behöver ändra en enskild resurs som är en del av en resurssamling använder du PUT-metoden. När du behöver lägga till en underordnad resurs i en resurssamling måste du använda POST-metoden. Om PUT-anropet skickas mer än en gång förblir resultaten desamma. Om en POST-begäran skickas flera gånger blir resultaten annorlunda, det vill säga att flera resurser kan skapas eller att ett fel returneras.

Om du till exempel har en resurs för att skapa och uppdatera användare kommer samma PUT-metod för en användare att uppdatera användaren varje gång. Om du skickar samma POST-metod för en användare resulterar det antingen i att flera användare skapas eller i ett felmeddelande om att användarnamnet eller e-postadressen redan används.

7. Vilka klasser finns det för HTTP-svarsstatuskoder?

Det här är en annan vanlig intervjufråga och något som är viktigt att känna till när du utför API-testning. Klasserna för HTTP-svarskoder är:

  • 1xx: svaren i den här kategorin är informationssvar. De innebär att klienten ska fortsätta begäran eller ignorera svaret om den är slutförd.
  • 2xx: en 200-kod innebär att begäran lyckades. 
  • 3xx: de här svaren är omdirigeringssvar. Det innebär att det finns flera möjliga svar på begäran. Ett av dem ska väljas av användaragenten eller användaren. 
  • 4xx: koderna i den här gruppen anger ett klientfel. Det innebär att servern inte kan behandla begäran och uppfattar den som ett fel på klientsidan, till exempel en oigenkänd URL, en felaktig syntax i begäran och så vidare.
  • 5xx: HTTP-svarskoden 500 returneras när det finns ett fel på serversidan och servern inte kan utföra begäran.

Om du vill gå in på detaljerna kring svarsstatusarna hittar du den fullständiga listan online. 

8. Vilka är några vanliga verktyg för automatiserad API-testning?

På den här frågan skulle jag svara med några verktyg som jag redan har arbetat med eller åtminstone känner till lite grann. Om du har erfarenhet av några verktyg för API-testning bör du därför nämna dem. Om inte kan du svara med några populära verktyg, till exempel Katalon, Postman eller SoapUI. Ta en titt på vår artikel om de bästa verktygen för API-testning för inspiration. 

9. Vilka är några vanligt förekommande autentiseringsmetoder vid API-testning?  

Ett lämpligt svar på den här frågan skulle vara:

  • Sessions- eller cookie-baserad autentisering
  • Grundläggande autentisering
  • Digest-autentisering
  • OAuth

10. Vad är skillnaden mellan autentisering och behörighetskontroll?

Kort sagt är autentisering processen att verifiera en användares identitet, medan behörighetskontroll är processen att bekräfta användarens åtkomstnivå. 

11. Varför föredras API-testning framför UI-testning för automatiserade tester?

Om vi återgår till den klassiska pyramiden för testautomatisering är det välkänt i vår bransch att UI-tester från början till slut bör ligga högst upp, vilket innebär att de bör utgöra det minsta antalet tester. Det beror på att automatiserade UI-tester tenderar att ta längre tid och är mer benägna att vara instabila eftersom de har många beroenden. Automatiserade API-tester utgör delen för integrationstestning i pyramiden och är mycket snabbare och vanligtvis mer tillförlitliga.

12. Vad är skillnaden mellan API-testning och enhetstestning?

Enhetstestning hör till så kallad testning med vit låda, medan API-testning vanligtvis är testning med svart låda. Eftersom en slutanvändare interagerar med användargränssnittet måste API-testningen representera systemet som helhet. Vid enhetstestning är en viktig fråga om varje komponent eller modul fungerar felfritt. För att uppnå en stabil modularkitektur bör beroenden minimeras. 

13. Vilka typer av tester kan tillämpas på API:er?

De flesta testtyper som används vid UI-testning fungerar även på API:er. Några av de mest anmärkningsvärda testtyperna som du kan nämna för den här API-intervjufrågan är:

  • Funktionstestning: oftast vill du testa att API:erna gör det de är utformade för att göra. Det innebär att du kör funktionella testfall på API:er. 
  • Manuell testning: bara för att du inte arbetar med automatiserade tester betyder det inte att du inte kan testa API:er. Du kan använda verktyg som Postman för att skicka förfrågningar och testa svaren manuellt.
  • Automatiserad testning: det är en bra idé att automatisera testfallen för API:et. Många av verktygen ovan kan hjälpa dig med det, eller så kan du skapa ditt eget API-ramverk. 
  • Lasttestning: genom att simulera trafik till API:er kan testare identifiera flaskhalsar innan de når produktionsmiljön. Utan belastning från produktionsmiljön kan det vara svårt att identifiera dessa flaskhalsar i utvecklingsmiljöer. Det finns verktyg för lasttestning som gör det möjligt att skicka HTTP-anrop till en viss slutpunkt och mäta svarstiden, fel och felfrekvenser samt andra värdefulla data från svaren. De kan också hjälpa till att simulera stora datamängder för att utvärdera hur en applikation beter sig.
  • Säkerhetstestning: med säkerhetstestning skyddas API-implementeringen mot externa hot. Faser inom säkerhetstestning omfattar verifiering av krypteringstekniker och arkitekturen för API:ets åtkomstkontroll. Hantering av användaråtkomst och verifiering av behörigheter ingår också.
  • Penetrationstestning: vid den här typen av testning försöker användare som inte känner till API:et utvärdera hotbilden på avstånd, med fokus på funktioner, resurser, arbetsflöden eller hela API:et och dess komponenter.

Oavsett om du är manuell testare eller arbetar med testautomatisering är det viktigt att veta hur man arbetar med API:er. Om du förbereder dig inför intervjufrågor om API-testning hoppas jag att du har nytta av den här artikeln.

Glöm inte att prenumerera på The CTO Clubs nyhetsbrev för fler tips och handledningar om testning!