Kostenloser Versand, aber nicht für alle
Ein Onlineshop für Fahrradzubehör in Freiburg bietet kostenlosen Versand ab 50 €. Ein Assistent schreibt die Regel, und sie sieht richtig aus.
Eine Kundin bestellt für genau 50 € und zahlt trotzdem 4,90 € Versand. Sie schreibt eine Beschwerde.
Ein einziger Test mit 50 € hätte den Fehler in einer Sekunde gefunden.
Am Ende dieser Lektion
Notiz
Ich kann KI-Code mit eigenen Testfällen prüfen.
Schlüsselwörter
| Begriff | Was er bedeutet | Beispiel |
|---|---|---|
| Testfall | eine Eingabe und das Ergebnis, das Sie erwarten | |
| Erwartetes Ergebnis | die richtige Antwort, abgeleitet aus der Regel | |
| assert | eine Python-Zeile, die das Programm stoppt, wenn eine Bedingung falsch ist | assert versandkosten(20) == 4.9 |
| Schwellenwert | der genaue Wert, an dem die Regel wechselt | 50 |
| Randfall | eine ungewöhnliche Eingabe: leer, null, negativ oder riesig |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Ein Testfall verbindet Eingabe und Antwort
Ein Testfall ist eine Eingabe und das Ergebnis, das Sie erwarten. Berechnen Sie dieses Ergebnis aus der Regel, bevor Sie den Code starten.
Lesen Sie das Ergebnis erst im Code ab, prüfen Sie nur, ob der Code zu sich passt.
In Python prüft assert einen Fall. Ist die Bedingung falsch, stoppt das Programm und zeigt Ihre Meldung.
Probieren Sie es: Versandkosten testen
# Regel: Der Versand kostet 4,90 Euro.
# Ab 50 Euro Warenwert ist er kostenlos.
# Der Assistent hat dies geschrieben:
def versandkosten(warenwert):
if warenwert > 50:
return 0.0
return 4.9
# Unsere eigenen Fälle, aus der Regel berechnet.
assert versandkosten(20) == 4.9, "Alltagsfall"
assert versandkosten(80) == 0.0, "Alltagsfall, kostenlos"
assert versandkosten(50) == 0.0, "Schwelle: genau 50"
print("Alle Fälle bestanden")
# Starten Sie. Welcher Fall scheitert? Beheben Sie die Funktion
# und starten Sie neu.
Drei Arten von Fällen
Gute Fälle gehören zu drei Arten. Ein Alltagsfall ist ein gewöhnlicher Wert. Ein Schwellenwert ist der genaue Wert, an dem die Regel wechselt. Prüfen Sie auch die Werte knapp davor und knapp danach. Ein Randfall ist ungewöhnlich: leer, null, negativ oder riesig.
Alltagsfälle gelingen Assistenten meist. Ihre Fehler sitzen an den Schwellen und an den Rändern.
Beispiel: Fälle für den Versand
| Art | Warenwert | Erwarteter Versand | Warum dieser Fall |
|---|---|---|---|
| Alltag | 20 € | 4,90 € | Eine kleine Bestellung |
| Alltag | 80 € | 0 € | Eine große Bestellung |
| Schwelle | 50 € | 0 € | Der Wert, an dem die Regel wechselt |
| Schwelle | 49,99 € | 4,90 € | Knapp unter der Schwelle |
| Rand | 0 € | offen | Die Regel sagt dazu nichts |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Probieren Sie es: Eigene Fälle ergänzen
# Regel: Eine deutsche Postleitzahl hat genau 5 Ziffern.
def plz_gueltig(plz):
return len(plz) == 5 and plz.isdigit()
assert plz_gueltig("50667") == True, "Alltagsfall"
assert plz_gueltig("Koeln") == False, "keine Ziffern"
# Fügen Sie unter dieser Zeile drei eigene Fälle hinzu:
# "5066" (4 Ziffern), "" (leer) und "50 667" (mit Leerzeichen).
# Jeder davon soll False ergeben.
print("Alle Fälle bestanden")
Ein häufiger Irrtum
Warnung
Viele lassen denselben Assistenten auch die Tests schreiben und glauben dem Ergebnis. Tests aus derselben Quelle teilen oft dasselbe falsche Verständnis. Als Entwurf sind sie nützlich, aber prüfen Sie jedes erwartete Ergebnis selbst gegen die Regel.