Osobní údaje
Vyplň jméno a příjmení. Hodnoty se průběžně ukládají v prohlížeči; odešlou se hodnotiteli společně s odpověďmi.
Zadání
Praktický test ověřuje, jestli umíš pracovat s REST i SOAP API, ovlivnit stav přes oba protokoly, ověřit data v relační databázi a popsat principy integračního testování. Časový limit je 60 minut. Pod každým úkolem máš pole, kam můžeš vložit text (poznámka co ti šlo / nešlo), request (curl, raw HTTP, SOAP envelope), response (JSON, XML, status code) nebo nahrát soubory — screenshot, exportovanou Postman collection (.json) i SoapUI projekt (.xml). Vše se ukládá lokálně v prohlížeči a po stisknutí Odeslat se odešle hodnotiteli.
Části testu
| 1. REST + SOAP | 4 úkoly — orientace v API definicích, najít knihu, vytvořit a změnit výpůjčku, ověřit cross-protocol stav. |
|---|---|
| 2. SQL | 3 úkoly nad samostatnou SQLite DB — SELECT, agregace, UPDATE s ověřením dopadu. |
| 3. Závěrečné otázky | 9 otázek na pochopení principů (test pyramida, autentizace, stavový automat, kontraktové testování, …). |
Materiály a nástroje
Definice služeb a přístupy
Definice
| REST — Swagger UI | /swagger — detail endpointů + Try it out |
|---|---|
| SOAP — WSDL playground | /soap-ui — WSDL detail + interaktivní operace |
| SOAP — raw WSDL | /soap?wsdl |
Přístupové údaje
Klikni na hodnotu pro zkopírování do schránky.
| REST — Bearer token | BOOKS-REST-TOKEN-2026 |
|---|---|
| SOAP — username | books-user |
| SOAP — password | Books!2026 |
Nástroje
| Web | Záložky Swagger, WSDL, SQL — rovnou v prohlížeči |
|---|---|
| Postman | Desktop appka pro REST i SOAP testy — pokud ji máš nainstalovanou |
| SoapUI | Desktop appka pro REST i SOAP testy — pokud ji máš nainstalovanou |
| SQL | /sql — editor s našeptávačem + schéma DB |
Praktická část · REST + SOAP
Úkoly 2 → 3 → 4 jsou sekvenčně závislé: úkol 2 vrací bookId pro úkol 3, úkol 3 vrací loanId pro úkol 4. Badge u úkolu označuje, který protokol je potřeba (a kde se na něj podívat — Swagger UI pro REST, WSDL pro SOAP).
- RESTSOAP Projdi si definice služeb — REST přes /swagger, SOAP přes /soap-ui (WSDL + playground). Zorientuj se v obou rozhraních.
Tvoje odpověď / komentář
Přetáhni soubory sem (max 10 MB / soubor) - REST Najdi knihu podle ISBN
978-80-000-0002-8přes REST a ulož sibookIdz odpovědi.Tvoje odpověď / komentář
Přetáhni soubory sem (max 10 MB / soubor) - SOAP Vytvoř výpůjčku přes SOAP
CreateLoanpro tuto knihu (borrowerName=QA Candidate). Ulož siloanIdz odpovědi a změň status naBORROWEDpřes SOAPUpdateLoanStatus. Vyzkoušej jeden negativní scénář (neexistující kniha, nedostupná kniha, neplatný status nebo chybějící WS-Security).Tvoje odpověď / komentář
Přetáhni soubory sem (max 10 MB / soubor) - SOAPREST Přes SOAP
GetLoanověř, že výpůjčka má statusBORROWED. Ohodnoť ji ratingem5(SOAPReviewLoan) — výpůjčka přejde doRETURNEDa kniha se uvolní. Druhým protokolem (REST) ověř cross-protocol konzistenci:GET /rest/books/{bookId}musí teď vracetavailable=true.Tvoje odpověď / komentář
Přetáhni soubory sem (max 10 MB / soubor)
SQL část
SQLite databáze books.db je samostatný dataset, není napojená na běžící REST/SOAP mock. Napiš a spusť dotazy v SQL editoru (na samostatném tabu). Popis schématu a tabulek najdeš tamtéž.
- Vypiš dostupné knihy v kategorii
Integration(sloupceid,title,author).Tvoje odpověď / komentář
Přetáhni soubory sem (max 10 MB / soubor) - Spočítej počet výpůjček podle statusu, výstup pojmenuj
statusapocet, seřaď sestupně podlepocet.Tvoje odpověď / komentář
Přetáhni soubory sem (max 10 MB / soubor) - Změň data: označ všechny knihy v kategorii
Testingjako nedostupné (available = 0) jednímUPDATEdotazem. PakSELECTem ověř, že v kategoriiTestinguž není žádná dostupná kniha. Kolik řádkůUPDATEzměnil?Tvoje odpověď / komentář
Přetáhni soubory sem (max 10 MB / soubor)
Cíl: SELECT, WHERE, GROUP BY, COUNT a UPDATE včetně ověření dopadu změny.
Závěrečné otázky
Cílem je prověřit, jak rozumíš integračnímu testování. Odpovídej věcně, klidně na příkladech z tohoto testu.
- Test pyramidy — kam to patří. Jak bys odlišil/a unit, integrační a end-to-end test? Co z toho jsi tady právě dělal/a? Jaký by byl unit test stejného flow?
Tvoje odpověď / komentář
Přetáhni soubory sem (max 10 MB / soubor) - Bearer token vs WS-Security UsernameToken. Jaké mají silné a slabé stránky? Co konkrétně znamená
Type="PasswordText"a jaké riziko z toho plyne (replay, MITM, logy)? Co by to zlepšilo (timestamp, nonce, PasswordDigest, mTLS)?Tvoje odpověď / komentář
Přetáhni soubory sem (max 10 MB / soubor) - Stavový automat výpůjčky.
REQUESTED → BORROWED → RETURNED / OVERDUE / CANCELLED / LOST. Jaké přechody jsou neplatné a měl by je server odmítnout? Které invarianty bys ověřoval/a (např. nemůže se vrátit půjčka, která nikdy nebyla půjčená)?Tvoje odpověď / komentář
Přetáhni soubory sem (max 10 MB / soubor) - Pokrytí negativními scénáři. Mimo to, co jsi vyzkoušel/a, jaké další kategorie patří do solidní integrační sady? (např. neplatný JSON, chybějící pole, hraniční hodnoty
rating0/6, prázdnýborrowerName, current vs concurrentPOST /loansna stejnou knihu, expirovaný token, chybný Content-Type, …)Tvoje odpověď / komentář
Přetáhni soubory sem (max 10 MB / soubor) - Kontraktové testování. Swagger/OpenAPI a WSDL jsou kontrakty. Jak bys ověřoval/a, že implementace odpovídá kontraktu (schema validation, contract-first vs consumer-driven, Pact, schemathesis)? Co se stane, když backend přidá pole v response — rozbije to testy?
Tvoje odpověď / komentář
Přetáhni soubory sem (max 10 MB / soubor) - Správa testovacích dat a izolace. Tady běží mock v paměti, restart resetuje stav. Jak bys v reálném integračním testu řešil/a izolaci běhů (transakce + rollback, fixture per test, dedicated test env, datová namespaces)? Co s daty, která musí přetrvat (např. číselníky)?
Tvoje odpověď / komentář
Přetáhni soubory sem (max 10 MB / soubor) - SQL ověření dopadu změny.
UPDATEv SQL části — jak jsi ověřil/a, že nezměnil i něco, co neměl? (rowcount,SELECTpřed a po, audit logloan_events). Co by ti pomohlo při debugu, kdyby se rozjelo víc řádků, než mělo?Tvoje odpověď / komentář
Přetáhni soubory sem (max 10 MB / soubor) - REST vs SOAP — konzistence stavu. Tady REST a SOAP sdílí stejný in-memory stav. Co kdyby to byly dvě nezávislé služby (např. REST endpoint a legacy SOAP nad jinou DB)? Jak bys testoval/a eventuální konzistenci? Co je eventually consistent a jak se na to píší integrační testy?
Tvoje odpověď / komentář
Přetáhni soubory sem (max 10 MB / soubor) - CI a stabilita. Co bys spouštěl/a při PR, co při nightly, co před deployem? Jak řešit flaky testy (timing, sdílený stav, externí závislosti)? Co je test data builder a contract drift?
Tvoje odpověď / komentář
Přetáhni soubory sem (max 10 MB / soubor)
Uložit nebo odeslat
Texty a soubory se automaticky průběžně ukládají do tvého prohlížeče. Po dokončení klikni Odeslat hodnotiteli — pošle tvoje jméno + odpovědi + přílohy na server. Pojistka: pokaždé se ti zároveň stáhne .md soubor, který můžeš poslat ručně.