Voraussetzung: Agentic Coding, Testing und die eigene Projektskizze aus Übung 7.
Diese Aufgaben sind gedacht zur Bearbeitung während der Präsenzübung am Dienstag. Eine Abgabe der Lösungen ist nicht vorgesehen, aber viermal im Semester muss die eigene Bearbeitung erklärt werden (und zufriedenstellend Verständnis demonstriert werden), damit das Modul abgeschlossen werden kann.
Das Thema dieses Blattes ist fremde Arbeit beurteilen — einmal die von Kommiliton*innen, einmal die einer Maschine. Beides ist dieselbe Fähigkeit.
Aufgabe 1¶
Bewerten Sie zwei Implementierungspläne anderer Teilnehmer*innen (die Datenstrukturen und Interfaces aus Übung 8, Aufgabe 1). Gehen Sie dabei nicht nach Geschmack vor, sondern nach diesen vier Fragen:
Welche Annahme in diesem Plan ist am wahrscheinlichsten falsch?
Wo liegt der Zustand, und wer darf ihn ändern?
Welcher Teil ist nicht testbar, ohne ihn vorher umzubauen?
Was fehlt, damit das Programm aus einem frischen Klon startet?
Formulieren Sie zu jeder Frage einen konkreten Verbesserungsvorschlag, keine Bewertung.
Aufgabe 2¶
Lassen Sie einen Coding-Agenten Ihrer Wahl Tests für Ihr CYOA-Programm aus den Übungen 1–5 schreiben. Geben Sie ihm dabei ausdrücklich nicht die Anweisung, gute Tests zu schreiben — Sie wollen sehen, was ohne diese Anweisung entsteht.
Suchen Sie anschließend im Ergebnis den Test, der nichts prüft. Typische
Kandidaten: ein assert True, ein Test ganz ohne Assertion, ein Test,
der nur prüft, dass ein Aufruf keine Exception wirft, oder ein Test, der
die Implementierung nachbaut statt das Verhalten festzulegen.
Aufgabe 3¶
Nehmen Sie sich nicht Ihr eigenes Urteil als Maßstab, sondern Mutation Testing als Schiedsrichter (siehe Testing):
uv run pytest --gremlinsÜberlebende Mutanten bei grüner Test-Suite sind der Beweis, dass ein Verhalten nicht abgedeckt ist. Notieren Sie für jeden überlebenden Mutanten, welcher Test gefehlt hat — und ob Sie diese Lücke in Aufgabe 2 von Hand gefunden hatten.
Aufgabe 4¶
Wiederholen Sie Aufgabe 2 mit einem zweiten Modell oder Werkzeug (siehe die Tabelle in Agentic Coding). Vergleichen Sie nicht, welches Ergebnis “besser” ist, sondern worin sich die beiden unterscheiden: Anzahl der Tests, Umgang mit Fehlerfällen, Wahl der Test-Bibliothek, Alter der verwendeten API.
Aufgabe 5 (Optional)¶
Schreiben Sie eine CLAUDE.md bzw. AGENTS.md für Ihr Projekt (siehe
Projekt