Sobes.tech
Middle

Můžeš uvést příklad, jak bys vybíral testovací případy pro PUT požadavek?

sobes.tech AI

Odpověď od AI

Vybral bych testovací případy na základě následujícího:

  • Úspěšná aktualizace:

    • Aktualizace všech polí platnými hodnotami.
    • Aktualizace jednoho nebo více polí s ponecháním ostatních beze změny.
    • Aktualizace polí s hraničními hodnotami (pokud je to relevantní).
  • Neúspěšná aktualizace (negativní testy):

    • Neplatná data:
      • Nesprávný formát dat pro pole (například řetězec místo čísla).
      • Hodnoty přesahující maximální délku nebo mimo povolený rozsah.
      • Chybějící povinná pole v těle požadavku.
    • Neexistující zdroj:
      • PUT požadavek s ID, které neexistuje v systému.
    • Konflikt dat:
      • Pokus o aktualizaci zdroje, který byl změněn jiným uživatelem (pokud je použit mechanismus verzování nebo blokování).
    • Nedostatek práv:
      • Pokus o aktualizaci zdroje bez odpovídajících oprávnění.
    • Validační chyby:
      • Porušení obchodní logiky nebo omezení databáze (například duplicitní unikátní hodnota).
    • Nesprávný Content-Type:
      • Odeslání požadavku s Content-Type odlišným od očekávaného (například text/plain místo application/json).
    • Prázdné tělo požadavku:
      • Odeslání požadavku bez těla.
  • Hraniční podmínky:

    • Aktualizace zdroje s minimálním počtem polí (pokud je to povoleno).
    • Aktualizace zdroje s maximálním počtem polí.
    • Kontrola chování při předání v těle požadavku dalších, neočekávaných polí.

Příklad struktury testovacích případů:

Případ Popis Očekávaný výsledek
Úspěšná aktualizace Aktualizace všech polí s korektními hodnotami. 200 OK / 204 No Content (záleží na API)
Neexistující ID Pokus o aktualizaci zdroje s ID, které neexistuje. 404 Not Found
Neplatný formát dat Pokus o aktualizaci pole typu číslo řetězcem. 400 Bad Request
Chybějící povinné pole Chybějící v těle požadavku pole označené jako povinné. 400 Bad Request
Nedostatek práv Pokus o aktualizaci zdroje uživatelem bez potřebných práv. 403 Forbidden

Pro automatizaci bych použil frameworky jako RestAssured (Java), Requests (Python) nebo Supertest (Node.js) a nástroje pro generaci testovacích dat.