Finde die Fehler
Rate zuerst, ohne Punktabzug. Eine KI hat average_order_value() geschrieben. Kunde A hat Bestellungen über 10 und 20, Kunde B eine Bestellung über 100. Für A kommt 65.0 heraus statt 15.0. Tipp auf die Zeile, die das verursacht.
Die Funktion, Zeile für Zeile
0 von 1 gefunden
Die schlimmsten KI-Bugs stürzen nicht ab. Der Code läuft, liefert saubere Zahlen, und die sind falsch. Beim schnellen Lesen fallen sie nicht auf, weil jede Zeile für sich gut aussieht.
Zwei Gewohnheiten finden sie:
- Spiel ein kleines Beispiel von Hand durch. Nimm Eingaben, die du im Kopf ausrechnen kannst, und vergleich mit dem, was der Code liefert.
- Schreib einen Test mit gemischten Eingaben. Mit einem Kunden bleibt dieser Bug versteckt, weil die gemeinsame Summe die Summe dieses Kunden ist. Zwei Kunden decken ihn auf.
Der erwartete Wert in einem Test kommt aus deiner Handrechnung oder aus der Anforderung. Kopier nie, was der Code zurückgegeben hat, sonst schreibt der Test den Bug fest.
Ein Beispiel
Von Hand: A = (10 + 20) / 2 = 15.0 B = 100 / 1 = 100.0
Code sagt: A = 65.0 B = 130.0 -> Bug
Fix: eine Summe pro Kunde führen:
totals[c] = totals.get(c, 0) + order["amount"]
Test, den ich behalte:
orders = [{"customer": "A", "amount": 10.0},
{"customer": "A", "amount": 20.0},
{"customer": "B", "amount": 100.0}]
assert average_order_value(orders) == {"A": 15.0, "B": 100.0}
Lücken füllen
Füll die Lücken.
Testplan
Ich nehme , damit eine gemeinsame Summe auffällt. Der erwartete Wert kommt aus , und das assert prüft .
Probier es aus
Deine Schritte, etwa 2 Minuten
- 1.Spiel für eine Funktion, die eine KI für dich geschrieben hat, ein kleines gemischtes Beispiel von Hand durch und mach daraus einen Test. Füg „ein gemischtes Beispiel durchrechnen“ deinem Kit hinzu.2 Min.