Middle
Gib ein Beispiel, wie du Testfälle für eine PUT-Anfrage auswählen würdest.
sobes.tech KI
Antwort von AI
Für die Auswahl von Testfällen für die PUT-Anfrage würde ich die folgenden Ansätze anwenden, wobei ich mich auf verschiedene Aspekte konzentriere:
-
Gültige Daten:
- Erstellen / Ändern eines Datensatzes mit korrekten, vollständigen Daten.
- Nur bestimmte Felder ändern, die anderen bleiben unverändert.
- Alle Felder auf neue, gültige Werte ändern.
- Verwendung von Grenzwerten für numerische Felder (Minimal, Maximal).
- Verwendung verschiedener Datenformate, die in der Spezifikation erlaubt sind (z.B. Datum, Uhrzeit).
-
Ungültige Daten:
- Übermittlung von Daten mit falschem Feldtyp (z.B. String statt Zahl).
- Übermittlung von Daten, die die Einschränkungen bei der Länge der Zeichenkette oder dem Zahlenbereich verletzen.
- Übermittlung von Daten, die die Einzigartigkeit des Feldes verletzen (falls zutreffend).
- Übermittlung von Daten mit falschem Format (ungültiges Datum, E-Mail).
- Fehlende Pflichtfelder.
- Übermittlung leerer Strings oder null für Felder, die nicht leer sein dürfen.
-
Vorhandensein der Ressource:
- PUT-Anfrage an eine vorhandene Ressource.
- PUT-Anfrage an eine nicht vorhandene Ressource (Erwartete Antwort 404).
-
Autorisierung und Authentifizierung:
- PUT-Anfrage mit korrekten Anmeldedaten eines Benutzers, der das Recht hat, die Ressource zu ändern.
- PUT-Anfrage mit falschen oder fehlenden Anmeldedaten (erwartet 401 Unauthorized oder 403 Forbidden).
- PUT-Anfrage von einem Benutzer ohne die erforderlichen Rechte zur Änderung dieser Ressource (erwartet 403 Forbidden).
-
Synchronisierung und Konkurrenz:
- Gleichzeitige PUT-Anfragen an dieselbe Ressource (z.B. mit ETag).
-
Fehlerbehandlung:
- PUT-Anfrage, die einen Fehler auf Serverseite verursachen soll (z.B. aufgrund eines internen Fehlers).
Beispieltabelle mit Testfällen:
| ID | Beschreibung des Testfalls | Voraussetzungen | Testdaten (Teils der Anfrage) | Erwartetes Ergebnis | HTTP-Code |
|---|---|---|---|---|---|
| PUT-001 | Änderung einer bestehenden Ressource mit gültigen Daten | Ressource mit ID=123 existiert | { "name": "Neuer Name", "value": 100 } |
Ressource erfolgreich aktualisiert, Daten entsprechen der Anfrage | 200 |
| PUT-002 | Änderung einer bestehenden Ressource mit teilweiser Aktualisierung | Ressource mit ID=123 existiert | { "name": "Nur Name geändert" } |
Ressource erfolgreich aktualisiert, nur das Feld name geändert | 200 |
| PUT-003 | Versuch, eine nicht existente Ressource zu ändern | Ressource mit ID=999 existiert nicht | { "name": "Nicht existente Aktualisierung" } |
Ressource nicht gefunden | 404 |
| PUT-004 | Änderung einer Ressource mit ungültigem Datentyp | Ressource mit ID=123 existiert | { "value": "nicht_eine_nummer" } |
Validierungsfehler bei den Daten | 400 |
| PUT-005 | Änderung einer Ressource ohne Authentifizierung | Ressource mit ID=123 existiert, Anfrage ohne Token | { "name": "Unbefugte Änderung" } |
Nicht autorisiert | 401 |
Jeder Testfall sollte atomar sein und einen bestimmten Aspekt der Funktionalität der PUT-Anfrage überprüfen.