Pytania rekrutacyjne z testowania API z odpowiedziami
Testowanie API HTTP: metody i kody odpowiedzi, nagłówki i uwierzytelnianie, Postman i Newman, curl, testy negatywne i graniczne, JSON Schema, testy kontraktowe z Pact i OpenAPI, mocki i wirtualizacja usług, idempotentność i współbieżność, OWASP API Security Top 10, testy obciążeniowe i asynchroniczne API.
225 pytań na rozmowę rekrutacyjną z tematu Testowanie API z odpowiedziami i wyjaśnieniami - poziomy Junior, Middle i Senior. Przykładowe pytania, testy online i zadania z kodu.
- REST
- Postman
- Kody odpowiedzi
- Testy kontraktowe
- OWASP API
Pytania według poziomu
Junior
Podstawowe pojęcia i składnia · 50 pytań
Middle
Praktyka, niuanse i optymalizacja · 50 pytań
Senior
Architektura, mechanizmy wewnętrzne, przypadki brzegowe · 50 pytań
Przykładowe pytania
Kilka pytań z każdego poziomu z poprawną odpowiedzią i wyjaśnieniem.
Testowanie API · Junior
- Czym jest testowanie API?
Pokaż odpowiedź
Poprawna odpowiedź: Sprawdzaniem interfejsu aplikacji dla programów, bez UI
Testy API wysyłają zapytania do endpointów i sprawdzają kody odpowiedzi, treść, nagłówki i skutki uboczne. Są szybsze i stabilniejsze niż testy UI i sięgają przypadków, które UI ukrywa.
- Dlaczego testy API często robi się przed testami UI?
Pokaż odpowiedź
Poprawna odpowiedź: API jest gotowe wcześniej, a błędy w nim taniej znaleźć
Endpointy backendu zwykle powstają przed ekranami. Wczesne testy znajdują błędy logiki i walidacji, gdy UI jest jeszcze budowany.
- Czym REST API zwykle identyfikuje zasoby?
Pokaż odpowiedź
Poprawna odpowiedź: Adresami URL jak
/users/42W REST każdy zasób ma adres, a metody HTTP mówią, co z nim zrobić:
GET /users/42odczytuje,DELETE /users/42usuwa. - Która metoda HTTP powinna tylko odczytywać dane?
Pokaż odpowiedź
Poprawna odpowiedź:
GETGETjest metodą bezpieczną: nie może zmieniać stanu serwera.GET, który coś usuwa lub aktualizuje, to błąd, bo mogą go wywołać cache, crawlery i prefetch.
Testowanie API · Middle
- Po co z czasem przenosić sprawdzenia API z Postmana do testów w kodzie?
Pokaż odpowiedź
Poprawna odpowiedź: Kod żyje w Gicie z przeglądem, reużyciem i zwykłym CI
Testy w tym samym repozytorium co usługa są przeglądane razem z kodem, dzielą helpery i działają jak każdy zestaw testów. Postman zostaje przydatny do eksploracji.
- Czym jest REST Assured?
Pokaż odpowiedź
Poprawna odpowiedź: Biblioteką Javy do czytelnych testów API
Oferuje styl given/when/then:
given().body(...).when().post("/users").then().statusCode(201). - Jak sprawdzić treść odpowiedzi względem JSON Schema w testach JavaScript?
Pokaż odpowiedź
Poprawna odpowiedź: Skompilować schemat walidatorem jak Ajv i sprawdzić treść
Ajv zwraca błędy walidacji ze ścieżkami jak
/items/0/price, więc awarie łatwo czytać. - Co łapie
additionalProperties: falsew schemacie odpowiedzi?Pokaż odpowiedź
Poprawna odpowiedź: Nieoczekiwane pola, np. ujawnione dane
Ścisłe schematy wykrywają nowe lub ujawnione pola jak
passwordHash. Zespoły decydują per API, czy ścisłość pomaga, czy daje szum.
Testowanie API · Senior
- Jak rozłożyć testy API na poziomy dla mikroserwisu?
Pokaż odpowiedź
Poprawna odpowiedź: Dużo testów jednostkowych i komponentowych, kontrakty, mało E2E
Testy komponentowe uruchamiają usługę z zaślepionymi zależnościami i szybko pokrywają logikę. Kontrakty pilnują integracji; kilka ścieżek E2E dowodzi, że cały system działa.
- Na jakie pytanie odpowiada sprawdzenie Pact
can-i-deploy?Pokaż odpowiedź
Poprawna odpowiedź: Czy wersję zweryfikowano z wersjami, z którymi działa
Pact Broker wie, które wersje konsumentów i dostawców zweryfikowały każdy kontrakt. Sprawdzenie blokuje wdrożenie, które zepsułoby partnera już działającego na produkcji.
- Jakie jest główne ryzyko testów kontraktowych pisanych tylko przez zespół dostawcy?
Pokaż odpowiedź
Poprawna odpowiedź: Testują to, co dostawca uważa za użycie, a nie realne użycie
Kontrakty od konsumentów oddają realne użycie. Kontrakty tylko od dostawcy często pomijają pole, od którego zależy klient, lub testują pola, których nikt nie używa.
- Po co przeglądać projekt API przed napisaniem kodu?
Pokaż odpowiedź
Poprawna odpowiedź: Późniejsza zmiana opublikowanego kontraktu jest droga dla klientów
Przegląd specyfikacji z góry łapie niejasne błędy, brak paginacji czy niespójne nazwy, gdy poprawka to jedna edycja, a nie migracja z wersjami.
Testy łączone z tym tematem
Pytania z kilku tematów naraz - jak na rozmowie rekrutacyjnej na konkretne stanowisko.
Zadania z kodu
Napisz rozwiązanie prosto w przeglądarce, a testy od razu je sprawdzą. Klasyka rozmów rekrutacyjnych z JavaScriptu (debounce, deepClone, Promise.all, cache LRU), z TypeScriptu (generyki, zawężanie i typy narzędziowe, sprawdza prawdziwy kompilator), logika backendu w Node.js (middleware, limity żądań, kolejki zadań), zapytania SQL w prawdziwym PostgreSQL i z Reacta: komponenty i hooki, takie jak lista zadań, zakładki, useDebounce i useInterval.
Otwórz zadania →