Ifølge en SlashData-undersøkelse fra 2020 brukte nesten 90 % av de intervjuede utviklerne API-er i en eller annen grad. Med dette i tankene er det ikke rart at selv om du er en manuell tester eller automatiseringstester som ser etter en jobbendring, vil jobbintervjuet inneholde spørsmål relatert til API-er.
I denne artikkelen tar jeg deg gjennom noen av de vanligste og viktigste intervjuspørsmålene om API-testing og gir det ideelle svaret på hvert av dem. La oss sette i gang!
1. Hva er API-testing?
API-testing er en type programvaretesting som innebærer å evaluere API-er (Application Programming Interface) for å se om de oppfyller kravene til funksjonalitet, pålitelighet, ytelse og sikkerhet. Siden API-er ikke har et GUI, utføres API-testing på systemets meldingslag.
2. Hva er fordelene ved å utføre API-testing?
API-testing har flere fordeler. Blant de viktigste kan du nevne:
- Test uten GUI: Testere kan gjennomføre API-tester uten å måtte bruke programvaren direkte. Dette er en stor fordel fordi det gir QA-ingeniører tidlig innsikt i feil og mangler, slik at utviklere kan rette dem før de påvirker GUI-et.
- Test av kjernefunksjonalitet: Før du utfører GUI-tester, gjør testing av en applikasjons funksjonalitet på kodenivå det mulig å evaluere den generelle kvaliteten på oppbygningen. Dette bidrar til å avdekke små feil som kan utvikle seg til større problemer på GUI-nivå. Tilgang til kjernen gjør det mulig å teste parallelt med utviklingen, noe som legger til rette for kommunikasjon og bedre samarbeid.
- Tidseffektivt: API-tester tar vanligvis mindre tid enn funksjonell GUI-testing. GUI-testing tar lengre tid fordi webkomponentene må kontrolleres. Testautomatisering av API-er innebærer særlig mindre kode og gir bedre og raskere testdekning sammenlignet med automatisert GUI-testing.
- Språkuavhengig: En API-test bruker XML eller JSON til å utveksle data. Disse overføringsformatene er ikke avhengige av programmeringsspråk. Derfor kan du bruke hvilket som helst programmeringsspråk når du skriver automatiserte tester for API-et ditt.
3. Hvordan skiller API-testing seg fra UI-testing?
API-testing fokuserer i langt større grad på testing av forretningslogikk, datasvar og sikkerhet, samt ytelsesflaskehalser. UI-testing fokuserer derimot på å kontrollere utseendet og brukeropplevelsen til et webgrensesnitt, eller at bestemte knapper, skjemaer, rullegardinmenyer og så videre fungerer.
Have an account? Log In
4. Hva er komponentene i en HTTP-forespørsel?
En HTTP-forespørsel har fem elementer:
- En HTTP-metode (omtalt nedenfor) som definerer handlingen.
- En URI (Uniform Resource Identifier) er identifikatoren til ressursen på serveren.
- En HTTP-versjon, for eksempel HTTP v1.1.
- Forespørselsheaderen inneholder metadata (som nøkkel-verdi-par) for HTTP-forespørselsmeldingen. Klienttypen (eller nettlesertypen), formater som støttes av klienten, formater for meldingsinnholdet, hurtigbufferinnstillinger og annen informasjon er eksempler på metadata.
- Forespørselsinnholdet representerer dataene som klienten sender til API-et.
5. Hvilke HTTP-metoder brukes mest i REST-API-er?
De viktigste HTTP-metodene som brukes ved REST API-testing, er metodene som utfører CRUD-operasjoner:
- GET er HTTP-metoden som leser informasjon fra ressursen.
- POST-metoden brukes til å opprette eller oppdatere ressurser.
- PUT endrer en eksisterende ressurs.
- DELETE fjerner en angitt ressurs.
6. Hva er forskjellen mellom PUT- og POST-metodene?
Dette er et intervjuspørsmål jeg ofte fikk, og svaret er delvis besvart ovenfor.
Når du må endre én enkelt ressurs som er en del av en ressurssamling, bruker du PUT-metoden. Når du må legge til en underordnet ressurs i en ressurssamling, må du bruke POST-metoden. Hvis PUT-kallet sendes mer enn én gang, vil resultatene forbli de samme. Hvis en POST-forespørsel sendes flere ganger, vil resultatene være forskjellige. Det kan for eksempel bli opprettet flere ressurser, eller det kan returneres en feil.
For eksempel: Hvis du har en ressurs for å opprette og oppdatere brukere, vil sending av den samme PUT-metoden for en bruker oppdatere brukeren hver gang. Sending av den samme POST-metoden for en bruker vil enten føre til at flere brukere opprettes, eller til en feil om at brukernavnet eller e-postadressen allerede er i bruk.
7. Hva er klassene for HTTP-responsstatuskoder?
Dette er et annet vanlig intervjuspørsmål og viktig å vite når du utfører API-testing. Klassene for HTTP-responskoder er:
- 1xx: Responsene i denne kategorien er informasjonsresponser. De betyr at klienten bør fortsette forespørselen eller ignorere responsen hvis den er ferdig.
- 2xx: En 200-kode betyr suksess.
- 3xx: Disse responsene er omdirigeringsresponser. Dette betyr at det finnes flere mulige svar på forespørselen. Ett av dem bør velges av brukeragenten eller brukeren.
- 4xx: Kodene i denne gruppen angir en klientfeil. Dette betyr at serveren ikke kan behandle forespørselen, og oppfatter den som en feil på klientsiden, for eksempel en ukjent URL, feil syntaks i forespørselen og så videre.
- 5xx: HTTP-responskoden 500 returneres når det oppstår en feil på serversiden og serveren ikke kan utføre forespørselen.
Hvis du vil gå nærmere inn på detaljene i responsstatusene, finner du den fullstendige listen på nettet.
8. Hva er noen vanlige verktøy for automatisert API-testing?
På dette spørsmålet ville jeg svart med noen verktøy jeg allerede har jobbet med, eller som jeg i det minste kjenner litt til. Så hvis du har erfaring med noen verktøy for API-testing, bør du nevne dem. Hvis ikke kan du svare med noen populære verktøy, for eksempel Katalon, Postman eller SoapUI. Ta en titt på artikkelen vår som dekker de beste verktøyene for API-testing for inspirasjon.
9. Hvilke vanlige autentiseringsmetoder brukes i API-testing?
Et passende svar på dette spørsmålet vil være:
- Sesjons-/informasjonskapselbasert autentisering
- Grunnleggende autentisering
- Digest-autentisering
- OAuth
10. Hva er forskjellen mellom autentisering og autorisering?
Kort sagt er autentisering prosessen med å bekrefte en brukers identitet, mens autorisering er prosessen med å bekrefte tilgangsnivået deres.
More Articles
11. Hvorfor foretrekkes API-testing fremfor UI-testing for automatiserte tester?
Når vi går tilbake til den klassiske pyramiden for testautomatisering, er det velkjent i bransjen vår at UI-tester fra ende til ende bør være øverst, noe som betyr at de bør utgjøre det minste antallet tester. Dette skyldes at automatiserte UI-tester har en tendens til å ta mer tid og er mer utsatt for ustabilitet fordi de har mange avhengigheter. Automatiserte API-tester utgjør integrasjonstestingsdelen av pyramiden, og de er mye raskere og vanligvis mer pålitelige.
12. Hva er forskjellen mellom API-testing og enhetstesting?
Enhetstesting hører inn under hvitboks-testing, mens API-testing vanligvis er svartboks-testing. Siden en sluttbruker samhandler med brukergrensesnittet, må API-testing representere systemet som en helhet. I enhetstesting er et viktig spørsmål om hver komponent eller modul fungerer feilfritt. For å oppnå en robust modularkitektur bør avhengighetene med andre ord minimeres.
13. Hvilke typer testing kan brukes på API-er?
De fleste testtypene som brukes i UI-testing, fungerer også på API-er. Noen av de mest bemerkelsesverdige testtypene du kan nevne i dette API-intervjuspørsmålet, er:
- Funksjonstesting: mesteparten av tiden vil du ønske å teste at API-ene gjør det de er utformet for å gjøre. Dette betyr at du kjører funksjonelle testtilfeller på API-er.
- Manuell testing: bare fordi du ikke er en automatiseringstester, betyr ikke det at du ikke kan teste API-er. Du kan bruke verktøy som Postman til å sende forespørsler og teste svarene manuelt.
- Automatisert testing: Det er en god idé å automatisere API-testtilfellene. Mange av verktøyene ovenfor kan hjelpe deg med det, eller du kan lage ditt eget API-rammeverk.
- Belastningstesting: Ved å simulere trafikk til API-er kan testere identifisere flaskehalser før de settes i produksjon. I mangel av belastning fra produksjonsmiljøet kan det være utfordrende å identifisere disse flaskehalsene i utviklingsmiljøer. Det finnes verktøy for belastningstesting som gjør det mulig å sende HTTP-kall til et gitt endepunkt og måle responstid, feil og feilfrekvenser samt andre verdifulle data fra svarene. De kan også bidra til å simulere store datamengder for å evaluere hvordan en applikasjon oppfører seg.
- Sikkerhetstesting: Med sikkerhetstesting beskyttes API-implementasjonen mot trusler utenfra. Faser i sikkerhetstesting omfatter verifisering av krypteringsteknikker og arkitekturen for API-tilgangskontrollen. Administrasjon av brukertilgang og verifisering av autorisasjon inngår også.
- Penetrasjonstesting: Med denne typen testing vil brukere som ikke kjenner API-et, forsøke å evaluere trusselvektoren på avstand, med fokus på funksjonalitet, ressurser, arbeidsflyter eller hele API-et og komponentene i det.
Enten du er en manuell tester eller jobber med testautomatisering, er det viktig å vite hvordan man arbeider med API-er. Hvis du forbereder deg på intervjuspørsmål om API-testing, håper jeg du finner denne artikkelen nyttig.
Ikke glem å abonnere på nyhetsbrevet til The CTO Club for flere tips og veiledninger om testing!






