Der Code lief, die Zahlen nicht
Mehmet pflegt das Skript, das in einem Logistikbetrieb in Wien die Tagessummen berechnet. Ein Assistent schreibt ihm eine neue Funktion. Sie läuft ohne Fehlermeldung.
Zwei Wochen später fällt auf: Die Summen sind zu klein. Eine Zeile wurde nie mitgezählt.
Kein Fehler im Programm heißt nicht, dass es das Richtige tut.
Am Ende dieser Lektion
Notiz
Ich kann Code von einem KI-Assistenten prüfen, bevor ich ihm vertraue.
Schlüsselwörter
| Begriff | Was er bedeutet | Beispiel |
|---|---|---|
| Review | das Durchlesen von Code, bevor er übernommen wird | |
| Annahme | etwas, das der Code stillschweigend voraussetzt | Die Liste ist nie leer |
| Randfall | eine ungewöhnliche Eingabe, etwa leer oder null | |
| Abhängigkeit | eine Bibliothek oder ein Paket, das der Code benutzt | |
| Sicherheitslücke | eine Schwäche, die jemand ausnutzen kann |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Lesen Sie wie bei einem neuen Teammitglied
Ein Review ist ein genaues Durchlesen vor der Übernahme. Behandeln Sie den Vorschlag so wie Code eines neuen Teammitglieds: freundlich, aber nicht blind.
Der Assistent ist schnell, aber er hat Ihr Projekt nie gesehen. Fehler sind nicht selten. Sie bleiben die Person, die den Code in die Firma trägt.
Fünf Fragen für jede Durchsicht
| Frage | Wonach Sie suchen | Beispiel |
|---|---|---|
| 1. Tut er, was ich wollte? | Passt das Ergebnis zur Regel? | Die Summe lässt einen Preis aus |
| 2. Gibt es alles, was er benutzt? | Erfundene Funktionen oder Pakete | liste.hinzufuegen(5) |
| 3. Was ist mit Randfällen? | Leere Liste, null, sehr große Zahl | Teilen durch null |
| 4. Ist er sicher? | Eingaben, Passwörter, Datenbankabfragen | SQL aus Text zusammengebaut |
| 5. Verstehe ich ihn? | Jede Zeile erklärbar | Eine Zeile, die niemand lesen kann |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Probieren Sie es: Gibt es die Methode?
# Der Assistent hat diesen Code geschrieben.
bestellungen = [12, 30, 8]
bestellungen.hinzufuegen(25)
print(bestellungen)
# Python meldet einen Fehler: Listen haben diese Methode nicht.
# Die richtige Methode heißt append. Ersetzen Sie "hinzufuegen"
# und starten Sie neu. Es soll [12, 30, 8, 25] erscheinen.
Die gefährlichsten Fehler sind still
Eine erfundene Methode fällt sofort auf, denn Python meldet einen Fehler. Schlimmer sind Fehler ohne Meldung: eine falsche Grenze, ein vergessener Eintrag, eine falsche Reihenfolge.
Hier hilft nur Rechnen von Hand. Nehmen Sie ein kleines Beispiel, bestimmen Sie das Ergebnis selbst und vergleichen Sie.
Probieren Sie es: Rechnen Sie nach
# Der Code läuft ohne Fehlermeldung. Ist er richtig?
def gesamtbetrag(preise):
summe = 0
for i in range(1, len(preise)):
summe = summe + preise[i]
return summe
preise = [10, 20, 30]
print(gesamtbetrag(preise))
# Erwartet wird 60. Was erscheint? Finden Sie die Ursache
# und ändern Sie den Code so, dass 60 erscheint.
Neue Pakete und Datenbankabfragen
Nennt der Assistent ein Paket, suchen Sie es in der offiziellen Dokumentation. Erfundene Paketnamen kann ein Fremder wirklich anlegen und mit Schadcode füllen. Prüfen Sie Name, Pflege und Lizenz, bevor Sie es installieren.
Baut er eine Datenbankabfrage aus Text zusammen, den Nutzer eingeben, ist das ein Warnzeichen: Eine geschickte Eingabe kann die Abfrage verändern (SQL-Injection). Fragen Sie nach einer Abfrage mit Platzhaltern, in die die Datenbank die Werte selbst einsetzt.
Ein häufiger Irrtum
Warnung
Viele denken: Wenn der Code startet und etwas anzeigt, ist er fertig. Ein Start zeigt nur, dass die Schreibweise stimmt. Ob das Ergebnis stimmt, sehen Sie erst, wenn Sie es mit einem selbst gerechneten Wert vergleichen.