Middle
Донесите пример како бисте изабрали тест случајеве за PUT захтев.
sobes.tech АИ
Одговор од АИ
Za izbor test slučajeva za PUT zahtev, primenio bih sledeće pristupe, fokusirajući se na različite aspekte:
-
Validni podaci:
- Kreiranje / izmena zapisa sa ispravnim, potpunim podacima.
- Delimična izmena samo nekih polja, ostala ostaju nepromenjena.
- Izmena svih polja sa novim, validnim vrednostima.
- Korišćenje graničnih vrednosti za numerička polja (minimalno, maksimalno).
- Korišćenje različitih formata podataka dozvoljenih specifikacijom (npr. datum, vreme).
-
Nevalidni podaci:
- Slanje podataka sa pogrešnim tipom polja (npr. niz umesto broja).
- Slanje podataka koji krše ograničenja dužine niza ili opsega broja.
- Slanje podataka koji krše jedinstvenost polja (ako je primenjivo).
- Slanje podataka sa pogrešnim formatom (nevažeći datum, email).
- Nedostatak obaveznih polja.
- Slanje praznih nizova ili null za polja koja ne smeju biti prazna.
-
Postojanje resursa:
- PUT zahtev za postojeći resurs.
- PUT zahtev za nepostojeći resurs (očekujemo odgovor 404).
-
Autorizacija i autentifikacija:
- PUT zahtev sa ispravnim korisničkim podacima koji imaju pravo na izmenu resursa.
- PUT zahtev sa netačnim ili nedostajućim podacima za prijavu (očekujemo 401 Unauthorized ili 403 Forbidden).
- PUT zahtev od korisnika bez potrebnih prava (očekujemo 403 Forbidden).
-
Sinhronizacija i konkurentnost:
- Istovremeni PUT zahtevi na isti resurs (npr. korišćenjem etag-a).
-
Obrada grešaka:
- PUT zahtev koji treba da izazove grešku na strani servera (npr. zbog unutrašnjeg kvara).
Primer tabele sa test slučajevima:
| ID | Opis test slučaja | Pretpostavke | Test podaci (deo zahteva) | Očekivani rezultat | HTTP Kod |
|---|---|---|---|---|---|
| PUT-001 | Ažuriranje postojećeg resursa sa validnim podacima | Resurs sa ID=123 postoji | { "name": "Novi naziv", "value": 100 } |
Resurs uspešno ažuriran, podaci odgovaraju zahtevu | 200 |
| PUT-002 | Delimično ažuriranje postojećeg resursa | Resurs sa ID=123 postoji | { "name": "Samo ime je promenjeno" } |
Resurs uspešno ažuriran, samo polje name je promenjeno | 200 |
| PUT-003 | Pokušaj ažuriranja nepostojećeg resursa | Resurs sa ID=999 ne postoji | { "name": "Ne postoji ažuriranje" } |
Resurs nije pronađen | 404 |
| PUT-004 | Ažuriranje resursa sa nevažećim tipom podataka | Resurs sa ID=123 postoji | { "value": "nije broj" } |
Greška validacije podataka | 400 |
| PUT-005 | Ažuriranje resursa bez autentifikacije | Resurs sa ID=123 postoji, zahtev bez tokena | { "name": "Neautorizovana promena" } |
Nije autorizovano | 401 |
Svaki test slučaj treba da bude atomaran i da proverava konkretan aspekt funkcionalnosti PUT zahteva.