Sobes.tech
Middle

Czy możesz podać przykład, jak wybrałbyś przypadki testowe dla żądania PUT?

sobes.tech AI

Odpowiedź od AI

Wybrałbym przypadki testowe opierając się na następującym:

  • Udana aktualizacja:

    • Aktualizacja wszystkich pól poprawnymi wartościami.
    • Aktualizacja jednego lub kilku pól, pozostawiając pozostałe bez zmian.
    • Aktualizacja pól wartościami granicznymi (jeśli dotyczy).
  • Nieudana aktualizacja (testy negatywne):

    • Nieprawidłowe dane:
      • Nieprawidłowy format danych dla pól (np. ciąg zamiast liczby).
      • Wartości przekraczające maksymalną długość lub poza dozwolony zakres.
      • Brak obowiązkowych pól w ciele żądania.
    • Nieistniejący zasób:
      • Żądanie PUT z ID, które nie istnieje w systemie.
    • Konflikt danych:
      • Próba zaktualizowania zasobu, który został zmieniony przez innego użytkownika (jeśli używany jest mechanizm wersjonowania lub blokad).
    • Brak uprawnień:
      • Próba zaktualizowania zasobu bez odpowiednich uprawnień.
    • Błędy walidacji:
      • Naruszenie logiki biznesowej lub ograniczeń bazy danych (np. duplikacja unikalnej wartości).
    • Nieprawidłowy Content-Type:
      • Wysyłanie żądania z Content-Type innym niż oczekiwany (np. text/plain zamiast application/json).
    • Puste ciało żądania:
      • Wysyłanie żądania bez ciała.
  • Warunki brzegowe:

    • Aktualizacja zasobu z minimalnym zestawem pól (jeśli dozwolone).
    • Aktualizacja zasobu z maksymalnym zestawem pól.
    • Sprawdzenie zachowania przy przesyłaniu w ciele dodatkowych, nieoczekiwanych pól.

Przykład struktury przypadków testowych:

Przypadek Opis Oczekiwany wynik
Udana aktualizacja Aktualizacja wszystkich pól poprawnymi wartościami. 200 OK / 204 No Content (zależy od API)
Nieistniejące ID Próba zaktualizowania zasobu z ID, które nie istnieje. 404 Not Found
Nieprawidłowy format danych Próba zaktualizowania pola numerycznego ciągiem znaków. 400 Bad Request
Brak obowiązkowego pola Brak w ciele żądania pola oznaczonego jako obowiązkowe. 400 Bad Request
Brak uprawnień Próba zaktualizowania zasobu przez użytkownika bez odpowiednich uprawnień. 403 Forbidden

Do automatyzacji używałbym frameworków takich jak RestAssured (Java), Requests (Python) lub Supertest (Node.js) oraz narzędzi do generowania danych testowych.