Lernen aus Fehlern: Iterationen als Schlüssel zur stabilen AI-Entwicklung
AI in der Softwareentwicklung klingt oft nach Magie – Code generieren lassen, Probleme automatisch lösen, Tests bestehen lassen. Doch die Realität sieht anders aus: Es braucht viele Iterationen, menschliche Korrekturen und klare Kommunikation, um ans Ziel zu kommen. In einer intensiven Session haben wir die Integration von TestContainers in eine Kotlin/Spring-Boot-Codebasis mit Unterstützung einer AI (Claude) umgesetzt. Das Ergebnis: 100 % grüne Tests – aber der Weg dorthin war alles andere als geradlinig.
> Siehe zu diesem Thema auch unseren Blogbeitrag „Jaraco Bills – Eine AI-generierte Rechnungsverwaltung“
Die größten Herausforderungen
- Falsche Annahmen zu Beginn
Die AI startete mit generischen Tipps und sogar mit einem falschen Technologie-Stack (TypeScript statt Kotlin). Erst klare Anweisungen führten zurück auf den richtigen Weg. - Teilweise Lösungen, viele Iterationen
Von 93 erfolgreichen Tests im ersten Anlauf, über 158 im zweiten bis schließlich zu 166 von 166. Jede Runde brachte Fortschritt, aber auch neue Probleme. - Unerwartete Konflikte
Annotationen (@DataJpaTest vs. @SpringBootTest) führten zu Konflikten, die die AI nicht vorhergesehen hatte. - Missverständnisse bei Anforderungen
Die AI änderte zunächst sogar Produktionscode – obwohl ausdrücklich nur Tests angepasst werden sollten. - Zu komplexe Ansätze
Anfangs wurden komplizierte Cleanup-Strategien entworfen, bis die einfache Lösung gefunden wurde: getrennte Schemas für unterschiedliche Testarten (Testcontainer vs. Mocks).
Was am Ende funktionierte
- Explizite Rechercheanforderungen: Erst wenn die AI konkret benannte, welche Infos sie brauchte, kamen bessere Lösungen.
- Kleine Schritte statt großer Sprünge: Jede Änderung wurde sofort getestet, statt alles auf einmal umzubauen.
- Direkte Befehle: Kurze, klare Anweisungen („fix“, „push das“) halfen mehr als lange Diskussionen.
- Humor und Frust: Frust trieb Klarheit, Humor hielt die Zusammenarbeit am Laufen.
Zahlen, die für sich sprechen
- 6 Iterationen für TestContainers-Setup
- 4 Iterationen für JSON-Probleme
- 3 Iterationen für SQL-Typfehler
- 2 komplette Neuschreibungen von Docker-Compose
- Von 0 % erfolgreiche Tests → auf 100 % (166/166)
- Testabdeckung: von 42 % auf 63 %
Die Learnings
Für Entwickler:innen:
- Klare Grenzen und Anforderungen setzen („nur Tests, nicht Produktion“).
- Erst recherchieren lassen, dann umsetzen.
- Iteratives Vorgehen akzeptieren – kleine, kontrollierte Schritte.
Für AI-Systeme:
- Voraussetzungen prüfen, bevor Lösungen angeboten werden.
- Einfache Lösungen bevorzugen.
- Unsicherheiten transparent machen.
Fazit
AI-gestützte Entwicklung ist kein Zaubertrick. Sie ist ein iterativer Prozess, voller kleiner Fehler und Korrekturen – aber mit dem richtigen Zusammenspiel von Mensch und Maschine lassen sich echte Fortschritte erzielen.
Der Weg von 0 zu 100 % grünen und brauchbaren Tests zeigt: Erfolg entsteht durch Zusammenarbeit, klare Kommunikation und pragmatische Lösungen.