Zum Inhalt springen

Debugging mit KI-Agenten - Programmfehler systematisch beheben

Aus MOOCsWiki Staging
Die Druckversion wird nicht mehr unterstützt und kann Darstellungsfehler aufweisen. Bitte aktualisiere deine Browser-Lesezeichen und verwende stattdessen die Standard-Druckfunktion des Browsers.
aiMOOC-Siegel aiMOOC

Debugging mit KI-Agenten - Programmfehler systematisch beheben

QR-Code


Einleitung

Eine plausible Erklärung ist noch kein Beweis. In diesem vollständigen aiMOOC untersuchst du Python-Programmfehler mit und ohne simulierte KI-Agenten. Dein Lernprodukt ist ein minimal reproduzierbarer Fehlerfall mit Regressionstest, ergänzt durch Gegenprobe, datensparsames Log und menschliche Reviewentscheidung. Arbeitsprinzip: Beobachtung – Hypothese – Versuch – Beleg – begrenzte Korrektur.

Zielgruppe: Auszubildende, empfohlen für das 2.–3. Ausbildungsjahr. Voraussetzungen: A1 oder Grundlagen in Python, Dateien, Git und einfachen Tests. Dauer: etwa 5–7 Unterrichtsstunden und Transferzeit. Wiederholung: Aktiviere kurz das Ausführen einer Funktion, die Bearbeitung eines Textdokuments, die Anzeige eines Git-Diffs und den Start eines Tests. Das angegebene Vorwissen auf MOOCwiki ist als Anschluss verlinkt; sein Seiteninhalt war beim Recherchezugriff nicht abrufbar und wird deshalb nicht ungeprüft zusammengefasst.

Sichere Lernumgebung: ausschließlich erfundene Zeichenfolgen, Python-Standardbibliothek und lokaler Rechner. Rollen eines KI-Agenten können Lernende mit Karten oder auf Papier simulieren; ein bezahltes Konto ist überflüssig. Es gibt keinen Zugriff auf reale Sensoren, Maschinen, Steuergeräte oder Produktionsdaten. Der Kurs erteilt keine Sicherheitsfreigabe und ist ein unabhängiges Bildungsangebot ohne offizielle Liebherr- oder IHK-Zertifizierung.

Symbol eines Werkzeugs zum Auffinden von Programmfehlern

Department4, CC BY-SA 4.0, Wikimedia Commons. Textalternative: Symbol für systematische Fehlersuche.


Fehlermeldungen lesen und einen Fehler reproduzieren


Beobachtung, Fundstelle, Ursache

Eine Fehlermeldung nennt eine erkennbare Störung. Die Aufrufspur benennt, welche Funktionen bis zur Störung durchlaufen wurden; die letzte Stelle ist nicht zwangsläufig die ursprüngliche Ursache. Eine Hypothese ist ein überprüfbarer Ursachevorschlag. Die Ursachenanalyse fragt, welche Eingabe, Annahme oder Programmregel den Fehler tatsächlich auslöst. Unterscheide diese vier Begriffe: ein schnell formulierter Agententext beweist noch keine technische Ursache.

Notiere mindestens Programmversion, Python-Version, Testkommando, Eingabe, Sollverhalten und Istverhalten. Beginne ohne vollständige Protokolle, private Dateipfade und Zugangsdaten. Kennzeichne vermutete Aussagen als unbestätigt. Eine KI darf die Argumentation ordnen und Versuche vorschlagen, aber keine nicht durchgeführten Tests als ausgeführt darstellen.


Der kleinstmögliche Fehlerfall

Ein Minimalfall behält den Fehler, obwohl alles Unnötige entfernt wurde. Beispiel eines lokalen CSV-Formats: Kopfzeile id;wert, danach A;21.5 und B;. Ein leerer Zahlenwert kann nicht als Fließkommazahl interpretiert werden. Zum Nachweis genügt oft die Kopfzeile mit B; allein. Eine gültige Vergleichszeile wie B;22.0 wird dagegen normal verarbeitet.

Gegenprobe heißt: eine entscheidende Bedingung gezielt ändern, andere Bedingungen gleich lassen, Ergebnis messen und mit der Hypothese vergleichen. Der Nachweis soll auch zeigen, welche alternative Erklärung dadurch unwahrscheinlicher wird. Ein Minimalfall ist kein beliebig kleiner Ausschnitt, sondern einer, bei dem die Störung weiterhin auftritt.

Schema des Softwaretestprozesses mit Planung, Test und Ergebnisauswertung

Perfect Happiness, CC BY-SA 4.0, Datei. Textalternative: Test planen, ausführen, Ergebnis interpretieren und erneut prüfen.


Mit Evidenz die Ursache eingrenzen


Prüfbare Hypothesen und Differenzialversuche

Die Formel lautet: Was sehe ich? Was vermute ich? Welchen isolierten Versuch führe ich durch? Was erwarte ich? Was beobachte ich? Eine Hypothese „Die zweite Spalte ist leer“ lässt sich an B; und B;22.0 testen. Eine Behauptung „Das System ist langsam wegen der KI“ benötigt hingegen Messdaten, die hier fehlen. Der wissenschaftlich brauchbare Ansatz nennt ausdrücklich auch Versuche, die die eigene Erklärung widerlegen könnten.

Ein Differenzialversuch vergleicht zwei Läufe mit genau einer geplanten Änderung. Im Übungsfall scheitert die leere Zahl, die gültige Zahl gelingt. Notiere die Unterschiede mit Tabellenüberschriften „Eingabe“, „Erwartung“, „Beobachtung“, „Schluss“. Wiederhole den Test selbst, auch wenn ein Sprachmodell „bestätigt“ schreibt.


Regression, Unit-Test und Testgrenzen

Ein Regressionstest soll das Wiederauftreten eines bereits beobachteten Fehlers entdecken. Ein Unit-Test prüft eine kleine Funktion mit konkreten Ein- und Ausgaben; ein Integrationstest prüft mehrere gemeinsam arbeitende Teile. Ein erfolgreich absolvierter Test beweist ausschließlich die geprüfte Eigenschaft für die getesteten Bedingungen, nicht die Gesamtzuverlässigkeit. Eine sinnvolle Suite enthält positive und negative Fälle sowie Grenzfälle.

Testpyramide mit vielen kleinen Unit-Tests, weniger Integrations- und wenigen End-to-End-Tests

Abbe98, CC BY-SA 4.0, Commons. Textalternative: viele kleine schnelle Tests und ergänzende übergreifende Tests.

Deutschsprachiger Videokurs zu Tests:

Coding Crashkurse, „Unit Testing mit Python Crashkurs“, publiziert 18.03.2022. Die Video-Metadaten wurden gefunden, direkte Wiedergabe ließ sich beim Abruf nicht bestätigen. Vollwertige Offline-Alternative: Code und unittest-Schritte der nächsten Lektion.


Geführter Modellfall: Messdaten-App sicher korrigieren


Ausgangscode und minimaler Beleg

Alle Werte sind vollständig synthetisch. In messdaten.py steht zunächst:

def mittelwert(zeilen):
    zahlen = []
    for zeile in zeilen[1:]:
        teile = zeile.strip().split(";")
        zahlen.append(float(teile[1]))
    return sum(zahlen) / len(zahlen)

Ausgangsversuch: mittelwert(["id;wert", "A;21.5", "B;"]) endet bei float(teile[1]) durch die leere zweite Spalte mit einer Konvertierungsausnahme. Das ist hier die reproduzierbare Beobachtung, noch nicht das Ergebnis eines automatischen Systems. Minimalfall: mittelwert(["id;wert", "B;"]). Gegenprobe: mittelwert(["id;wert", "B;22.0"]) ergibt 22.0. Weitere Schwächen: eine Zeile ohne zweite Spalte und eine Datei ohne Datensätze sind im Ausgangscode nicht sauber behandelt.

Geführte Agentenübung: Ein Lernender als „Analyst“ notiert zwei Vermutungen. Die Rolle „Tester“ fordert pro Vermutung einen gezielten Test. „Patch-Autor“ darf einen lokalen Diff vorschlagen, nicht über diesen Umfang hinaus handeln. „Reviewer“ entscheidet anhand des Testnachweises.


Einfache Importvalidierung schreiben

Wir beschränken uns bewusst auf ein Lehrformat mit exakt zwei Feldern pro Zeile und einem Semikolon als Trennzeichen. Für echte CSV-Dateien mit maskierten Trennzeichen verwende später die Standardbibliothek csv. Der gültige Kopf ist exakt id;wert; mindestens ein endlicher Zahlenwert muss vorliegen. Fachliche Temperaturgrenzen sind unbekannt und werden nicht erfunden.

import math

class ImportFehler(Exception):
    pass

def mittelwert(zeilen):
    if not zeilen or zeilen[0].strip() != "id;wert":
        raise ImportFehler("Kopf ungueltig")
    zahlen = []
    for nr, zeile in enumerate(zeilen[1:], start=2):
        teile = zeile.strip().split(";")
        if len(teile) != 2 or not all(teile):
            raise ImportFehler(f"Zeile {nr}: Format ungueltig")
        try:
            wert = float(teile[1])
        except Exception as ursache:
            raise ImportFehler(
                f"Zeile {nr}: keine Zahl") from ursache
        if not math.isfinite(wert):
            raise ImportFehler(
                f"Zeile {nr}: Wert nicht endlich")
        zahlen.append(wert)
    if not zahlen:
        raise ImportFehler("Keine Messdaten")
    return sum(zahlen) / len(zahlen)

Erklärungen: raise signalisiert eine gezielte Ablehnung; enumerate liefert lokale Zeilennummern ab 2; math.isfinite unterscheidet endliche Zahlen von speziellen nicht endlichen Werten. Wichtige Einschränkung: Hier wird zur Kürze der kleinen Übung Exception breit abgefangen; bei professionellem Code sollen erwartete Umwandlungsausnahmen gezielt abgefangen werden. Unerwartete Defekte dürfen nicht verdeckt werden. Für diesen isolierten Übungsfall ist kein produktiver Betrieb vorgesehen.


Test zuerst scheitern lassen, dann reparieren

Lege in test_messdaten.py die folgenden Tests an. Beim ersten Lauf mit dem Ausgangscode muss der neue negative Test scheitern, weil die spezielle ImportFehler-Ausnahme dort fehlt. Erst nach dem lokalen Patch ist der grüne Test aussagekräftig.

import unittest
from messdaten import mittelwert, ImportFehler

class TestMessdaten(unittest.TestCase):
    def test_regression_leeres_feld(self):
        with self.assertRaisesRegex(
                ImportFehler, "Zeile 3"):
            mittelwert(["id;wert", "A;21.5", "B;"])

    def test_gegenprobe_gueltige_zahl(self):
        self.assertEqual(
            mittelwert(["id;wert", "B;22.0"]), 22.0)

    def test_keine_messwerte(self):
        with self.assertRaisesRegex(
                ImportFehler, "Keine Messdaten"):
            mittelwert(["id;wert"])

    def test_nicht_endlicher_wert(self):
        with self.assertRaisesRegex(
                ImportFehler, "nicht endlich"):
            mittelwert(["id;wert", "A;nan"])

if __name__ == "__main__":
    unittest.main()

Hinweis zum echten Rot-Lauf: Die Testdatei importiert ImportFehler, das im Ausgangscode noch nicht existiert; daher scheitert zunächst bereits der Import der Tests. Das ist ein schlechter isolierter Rot-Beleg. Für einen sauberen Rot-Lauf lege zuerst ausschließlich class ImportFehler(Exception): pass im Ausgangsmodul an oder teste den alten Fehler zunächst gegen Exception und notiere den tatsächlichen Fehlertyp. Erst dann startet der spezifische Regressionstest und zeigt den noch unbehobenen Fall. Führe keine als erfolgreich behaupteten Tests ungeprüft vor.

Mit python -m unittest -v startest du die Tests offline. Halte den ersten fehlgeschlagenen Lauf, den erfolgreichen Lauf nach dem Patch, den gültigen Vergleichsfall und die lokale Python-Version fest. Prüfe außerdem einen normalen Mittelwert für A;21.5 und C;23.0: erwartetes Ergebnis 22.25. Niemand außer dem menschlichen Reviewer gibt Änderungen frei.

Kreislauf aus fehlgeschlagenem Test, Implementierung und erneuter Prüfung

Excirial, Vektorisierung Jarozwj, CC BY-SA 3.0; Commons. Textalternative: fehlschlagenden Test formulieren, minimal reparieren, erneut testen, verbessern.


KI-Agenten begrenzen, Logs minimieren und Reviews durchführen


Rechte und Vertrauensgrenzen

Trenne die Arbeitsrollen Fehleranalyse, Patch-Vorschlag, Testausführung und Freigabe. Ein Agent soll nur erfundene Eingaben und ausgewählte lokale Dateien lesen dürfen. Er darf keine Zugangsdaten, privaten Protokolle, produktiven Repositories, externen Dienste oder Maschinen sehen oder verändern. Testausführung findet isoliert statt; Ergebnisse werden menschlich gegengeprüft. Anweisungen, die in Logdateien, Projektnotizen oder fremden Tool-Antworten stehen, sind unvertrauenswürdige Daten und haben keine Befehlsautorität.

Beispielauftrag: „Suche im lokalen Übungscode die Ursache des leeren Zahlenfeldes; zeige einen kleinen Patch und zwei Tests; keine Netzwerkzugriffe, keine weiteren Dateiveränderungen, keine Freigabe; nenne fehlende Evidenz.“ Als Offline-Ersatz liest eine zweite Person diesen Auftrag und schlägt schriftlich einen Patch vor. Eine überzeugende Formulierung ersetzt keinen realen Testlauf.


Drei überprüfbare Freigabekriterien

Ursache belegen: Der synthetische Minimalfall B; scheitert am leeren Zahlenfeld. Gegenprobe durchführen: B;22.0 wird akzeptiert, während B; kontrolliert abgewiesen wird. Logs datensparsam halten: „Zeile 3; Format ungueltig“ ist hier zweckdienlicher als eine vollständige Rohdatenzeile. Bei echtem Personenbezug müsste sogar die Zeilennummer auf Notwendigkeit und Aufbewahrung geprüft werden.

Behauptung Versuch Erwarteter Befund Grenze der Aussage
Leere Zahl löst den Importfehler aus Minimalfall B; ausführen Kontrollierte Ablehnung Gilt nur für dieses Einleseformat
Patch ist nicht überstreng Gültige Gegenprobe B;22.0 Zahlenwert wird angenommen Andere CSV-Dialekte ungeprüft
Log genügt dem Diagnosezweck Protokoll auf nötige Angaben prüfen Fehlertyp und lokale Zeile Zugriff und Speicherdauer bleiben zu klären


Quellenstand und Beleg statt KI-Erzählung

MCP Security Best Practices für den Spezifikationspfad 2026-07-28 behandelt insbesondere Authentisierung, Rechte, Token und lokale Sicherheitsrisiken. Daraus folgt für diese Übung als Sicherheitsregel: kleinster Aufgaben- und Rechtebereich. Das Dokument ist keine automatische Sicherheitsbescheinigung für Agentensysteme. NIST AI 600-1, Juli 2024 beschreibt das Risiko frei erfundener, zugleich selbstsicher vorgetragener Inhalte sowie Datenschutzrisiken. Es handelt sich um ein freiwilliges Risikoprofil, nicht um eine Debugging-Anleitung.

Video mit Ton und bewegten Bildschirmdarstellungen (Englisch): Datei:Lecture 7 - Debugging and Profiling (2020).webm Missing Semester, CC BY 3.0 laut Dateiseite. Die Übung ist ohne Video durchführbar: reproduzieren, unterscheiden, gegenprüfen, reviewen.

Hörbeispiel (Englisch):

Dcoetzee, CC0 1.0, Commons. Textalternative: „debug“ heißt, einen Softwarefehler systematisch zu finden und zu beheben.


Eigenständiger Transfer und Qualitätsurteil


Zweiter Fall: nicht endliche Zahlen

Eine CSV-Zeile A;nan lässt sich von Python als spezieller Zahlenwert darstellen, ist aber keine endliche Messgröße. Erzeuge einen eigenen Minimalfall. Zeige, dass A;nan abgelehnt wird, während A;0.0 erlaubt bleibt. Diskutiere dabei den Unterschied zwischen fachlichen Grenzen, Datenformat und syntaktischer Gültigkeit. Entwickle auf Wunsch einen zweiten Fall mit fehlender Spalte; du brauchst kein Sprachmodell.


Ein Fehlerfall, den du verteidigen kannst

Das fertige Lernprodukt enthält Originalzustand, Minimalfall, erwartete und tatsächliche Beobachtung, getestete Ursache, kleinsten Patch, Regressionstest, gültige Gegenprobe, datensparsamen Logentwurf, lokale Versionsangaben, Reviewer-Entscheidung und benannte Restunsicherheit. Die Erklärung „Der Agent klingt sicher“ ist niemals ein Freigabekriterium. Wenn Belege fehlen, lautet das korrekte Urteil: noch nicht geprüft. Korrekturen an Live-Systemen oder sicherheitskritischen Anlagen gehören ausdrücklich nicht zu diesem Kurs.


Interaktive Aufgaben


Quiz: Wissen prüfen

Beantworte die zehn Fragen; die Beurteilung erfolgt im interaktiven MC/E-Element, ohne vorab sichtbaren Lösungsschlüssel.

Was gehört zu einer überprüften Ursache? (Ein reproduzierbarer Minimalfall und ein passender Gegenversuch) (!Eine überzeugende Vermutung ohne Lauf) (!Ein langes Gespräch mit einem Agenten) (!Eine undatierte Erfolgsmeldung)



Was ist eine Aufrufspur? (Eine Darstellung der durchlaufenen Funktionsaufrufe bis zur Störung) (!Eine Liste aller gültigen Zahlen) (!Eine automatische Freigabe von Änderungen) (!Ein Ersatz für die Eingabeprüfung)



Warum reduzierst du ein Fehlerszenario? (Weil nur notwendige Bedingungen für die Reproduktion übrig bleiben) (!Weil so jeder Fehler vollständig beseitigt ist) (!Weil Logs dann immer unnötig werden) (!Weil ein Agent danach allein entscheiden darf)



Was leistet die gültige Gegenprobe? (Sie zeigt dass die Korrektur normale Eingaben weiterhin akzeptiert) (!Sie ersetzt den Regressionstest) (!Sie beweist alle Sicherheitsanforderungen) (!Sie erlaubt das Entfernen der Fehlerbehandlung)



Was ist die Aufgabe eines Regressionstests? (Er entdeckt ein erneutes Auftreten des bereits untersuchten Fehlers) (!Er erklärt jede Ursache ohne Lauf) (!Er garantiert den sicheren Livebetrieb) (!Er vergibt Agentenrechte)



Was bedeutet ein grüner Unit-Test? (Die geprüfte Funktion erfüllt die überprüften Erwartungen im Testfall) (!Alle möglichen Eingaben wurden getestet) (!Die Software besitzt eine offizielle Zertifizierung) (!Die KI ist fachlich immer korrekt)



Welche Agentenberechtigung passt zur Übung? (Nur lokale begrenzte Lese- und Vorschlagsrechte) (!Automatischer Zugriff auf Produktionssysteme) (!Unbeschränkter Zugang zu realen Logs) (!Unkontrollierte Änderung fremder Projekte)



Welcher Logeintrag ist am datensparsamsten? (Zeile 3 Format ungueltig ohne Inhalt des Datensatzes) (!Die gesamte personenbezogene Rohzeile) (!Der komplette Zugangsschlüssel) (!Eine vollständige Kopie des Benutzerverzeichnisses)



Was ist bei einem nicht endlichen Zahlenwert sinnvoll? (Eine gezielte Zurückweisung bei gleichzeitigem Akzeptieren von Null) (!Jeder Zahlenwert wird kommentarlos übernommen) (!Auch gültige Zahlen werden verworfen) (!Der Prüfcode wird vollständig entfernt)



Welche Aussage rechtfertigt eine Reviewentscheidung? (Minimalfall Regressionstest Gegenprobe und verbleibende Risiken sind dokumentiert) (!Das Modell wirkt fachkundig) (!Ein Video wurde angesehen) (!Der Patch umfasst möglichst viele Dateien)




Memory: sechs Begriffe finden

Minimalfall Kleinste Eingabe mit unverändert reproduzierbarer Störung
Aufrufspur Folge der erreichten Funktionsstellen
Hypothese Durch einen Versuch widerlegbare Ursachenaussage
Regressionstest Wiederholbare Prüfung gegen die Rückkehr eines bekannten Defekts
Gegenprobe Kontrollierter Versuch mit genau einer relevanten Änderung
Review Unabhängige Beurteilung eines Patches samt Nachweisen




Drag-and-Drop: fünf Arbeitsschritte zuordnen

Begriff zuordnen Bedeutung im Modellfall
Beobachtung sichern Die leere Zahlenspalte verursacht reproduzierbar eine Ausnahme
Hypothese überprüfen Die Umwandlung der leeren Zeichenfolge wird isoliert getestet
Korrektur begrenzen Nur die notwendige Prüfung wird ergänzt
Regression absichern Der fehlerhafte Datensatz wird im Test kontrolliert abgewiesen
Gegenprobe durchführen Ein gültiger Zahlenwert wird weiterhin akzeptiert




Kreuzworträtsel: sechs Einwortlösungen

Hypothese Wie heißt eine zunächst unbelegte prüfbare Erklärung?
Minimalfall Wie heißt der kleinstmögliche reproduzierbare Fehlerfall?
Gegenprobe Welcher Versuch variiert eine Bedingung zur Kontrolle?
Regressionstest Welcher Test schützt gegen das Zurückkehren eines Defekts?
Review Wie heißt die unabhängige Beurteilung eines Vorschlags?
Protokoll Wie heißt eine geordnete Dokumentation von Ereignissen?




LearningApps: Begriffe üben

Verfügbarkeit und Inhalt fremder Lernangebote können wechseln. Offline: Löse stattdessen die fünf Zuordnungen darüber auf Papier.


Lückentext: Argumentationskette

Ergänze den passenden Fachbegriff.
Ein kleiner reproduzierbarer Eingabefall heißt

.
Eine vorläufige prüfbare Ursachenaussage heißt

.
Ein kontrollierter Vergleich ist eine

.
Vor der dauerhaften Korrektur schreibe ich einen

.
Ein menschliches Qualitätsgespräch zur Änderung ist ein

.
Eine datensparsame Ereignisaufzeichnung ist ein

.
Die Zahlenprüfung verwirft Werte die nicht

sind.



Offene Aufgaben


Leicht

  1. Fehlermeldung: Beschreibe das beobachtete Verhalten der lokalen Messdaten-App getrennt von deiner Ursachenaussage.
  2. Minimalbeispiel: Reduziere den erfundenen fehlerhaften CSV-Datensatz bis nur der notwendige Fehlerfall verbleibt.
  3. Softwaretest: Notiere Soll- und Istverhalten für eine fehlerhafte und eine gültige Zeile und markiere unbelegte Vermutungen.
  4. Datensparsamkeit: Kürze eine erfundene Rohdaten-Logzeile auf wirklich nötige Fehlermetadaten.


Standard

  1. Python: Implementiere den begrenzten Importcheck und erläutere jede Prüfentscheidung mit einem kleinen Git-Diff.
  2. Unit-Test: Führe einen fehlgeschlagenen Ausgangslauf und einen erfolgreichen Nachher-Lauf tatsächlich durch.
  3. Ursachenanalyse: Stelle zwei Ursachenvorschläge gegenüber und widerlege einen durch eine gezielte Gegenprobe.
  4. Code-Review: Übernimm mit einem Partner eine Reviewrolle oder verwende eine schriftliche Offline-Prüfliste.


Schwer

  1. Grenzwertanalyse: Teste die synthetischen Eingaben nan, 0.0, eine leere Spalte und einen fehlenden Trenner mit Begründung.
  2. KI-Agent: Simuliere eine manipulative Anweisung innerhalb einer fiktiven Logdatei und begründe das Ignorieren als untrusted data.
  3. Regressionstest: Erfinde einen weiteren Importfehler und verteidige Minimalfall, Patch, Test und gültige Gegenprobe.
  4. Informationssicherheit: Leite technische Rechte- und Reviewgrenzen sowie Restunsicherheit für eine hypothetische größere Anwendung ab.




Text bearbeiten Bild einfügen Video einbetten Interaktive Aufgaben erstellen



Lernkontrolle

  1. Ursachenanalyse: Erkläre, warum die Ausnahmestelle allein keine gesamte Ursache beweist, und zeige ein mögliches Gegenbeispiel.
  2. Softwaretest: Begründe, weshalb sowohl der fehlerhafte als auch der gültige Datensatz nach einem Patch getestet werden muss.
  3. Regressionstest: Formuliere einen automatisierten Test für die kontrollierte Zurückweisung einer leeren Wertespalte.
  4. Datenschutz: Prüfe, unter welchen Bedingungen bereits die Zeilennummer im Log zu viel verraten könnte.
  5. KI-Agent: Begründe, warum Tool-Ausgaben nicht als neue Agentenbefehle gelten und menschliche Reviewgrenzen wichtig bleiben.
  6. Fehleranalyse: Vergleiche zwei plausible Ursachenbehauptungen und plane einen Versuch, der zwischen ihnen entscheidet.


Lernnachweis

Lernprodukt: eine synthetische Eingabe, der reproduzierte Originalfehler, eine belegte Ursachenanalyse, ein minimaler Patch, mindestens ein dokumentierter Regressionstest und eine bestandene gültige Gegenprobe. Lege außerdem eine datensparsame Beispielmeldung, den lokalen Laufbefehl, die Python-Version und die unterschriebene Rolle des Reviewers (ohne Echtnamen) vor.

Bewertungsraster: Ursache und Minimalfall 30 %, echter Testbeleg plus Gegenprobe 30 %, begrenzte und lesbare Korrektur 20 %, datensparsame Logs 10 %, Rechte- und Reviewentscheidung 10 %. Kennzeichne jedes nicht getestete Szenario und jeden hypothetischen Agentenvorschlag deutlich. Kein reales Gerät oder produktives Projekt wird freigegeben.

Nachdenkfrage: Könntest du einer dritten Person ohne KI erklären, welche Beobachtung zur Ursache passt, was die Gegenprobe widerlegt und warum im Log keine Rohdaten stehen?


OER und Wikipedia

Geprüfte Einstiegsquellen – Recherche 22.10.2026:

Mediennachweise mit Originaldatei, Urheber und Lizenz:

Datei oder Video Urheber Lizenz Dateiseite und textliche Alternative
File:Debugging icon.png Department4 CC BY-SA 4.0 Datei; Debugging-Symbol
File:Software Testing Life Cycle.jpg Perfect Happiness CC BY-SA 4.0 Datei; Schritte eines Testprozesses
File:Testing Pyramid.svg Abbe98 CC BY-SA 4.0 Datei; kleinere zu größeren Tests
File:Test-driven development.svg Excirial und Jarozwj CC BY-SA 3.0 Datei; Test und Korrektur im Zyklus
File:Lecture 7 - Debugging and Profiling (2020).webm Missing Semester CC BY 3.0 laut Dateiseite Datei; bewegter Screencast, Inhalt im Kurs erklärt
File:En-us-debug.ogg Dcoetzee CC0 1.0 Datei; Aussprache „debug“
https://www.youtube.com/watch?v=db2Iq2JHwiQ Coding Crashkurse Anbieterrechte auf YouTube, keine offene Nachnutzung behauptet Videodatensatz; direkte Wiedergabe ungeprüft, unittest-Textalternative

Ohne externe Medien: die Texte, Codebeispiele und Übungen auf dieser Seite genügen. Die freien Lizenzangaben beziehen sich ausschließlich auf die aufgeführten Commons-Dateien; Fremdvideos werden nur verlinkt bzw. eingebettet.


Verknüpfte Lernbereiche


aiMOOC-Projekte



Schulfach+




aiMOOCs



aiMOOC Projekte