Testgetriebene Entwicklung mit KI-Agenten

AI Test Driven Development TDD AI Agents

Was ist TDD (Testgetriebene Entwicklung)?

Im Kern dreht sich TDD um einen zyklischen Prozess, bekannt als Red-Green-Refactor. Der Zyklus beginnt mit der „Red“-Phase, in der ein Entwickler einen automatisierten Testfall schreibt, der ein gewünschtes Feature oder Verhalten definiert. Dieser Test wird absichtlich so geschrieben, dass er zunächst fehlschlägt, da der entsprechende Code noch nicht existiert. Dieses anfängliche Scheitern ist entscheidend, weil es sicherstellt, dass der Test tatsächlich die gewünschte Funktionalität prüft und Fehler erkennt, sobald der Code implementiert ist.

Die darauffolgende „Green“-Phase besteht darin, den minimalen Code zu schreiben, der notwendig ist, damit der zuvor fehlgeschlagene Test besteht. Dieses Prinzip ermutigt Entwickler, sich auf die unmittelbaren Anforderungen zu konzentrieren, einen sauberen Code zu pflegen und Overengineering zu vermeiden.

Abschließend konzentriert sich die „Refactor“-Phase darauf, die Struktur, Lesbarkeit und Wartbarkeit sowohl des Testcodes als auch des Produktionscodes zu verbessern, während sichergestellt wird, dass alle bestehenden Tests weiterhin bestehen. Refactoring sorgt dafür, dass die Codebasis gesund und anpassungsfähig für zukünftige Änderungen bleibt, ohne Regressionen einzuführen — der bestehende Testbestand dient dabei als Sicherheitsnetz.

Wie automatisieren Sie Ihre TDD-Pipeline vollständig?

Viele Faktoren beeinflussen die Leistung von KI-Agenten beim Programmieren – vom LLM-Modell bis zur Strukturierung Ihres Codes und Ihrer Entwicklungspipeline. Wir haben herausgefunden, dass TDD mit Windsurf und Claude 3.5 Sonnet effektiv ist. Hier ist eine Beispielaufgabe, die im TDD-Verfahren umgesetzt wurde.

Was benötigen Sie?

Bevor wir mit dem Programmieren beginnen, benötigen wir Folgendes:

Ausreichende Tests

Stellen Sie sicher, dass Sie bereits Tests gemäß TDD haben und diese den größten Teil des für den KI-Agenten logischen und hilfreichen Problemumfangs abdecken. Sie müssen nichts für den KI-Agenten ändern oder anpassen. Wenn Ihre Tests und deren Namenskonventionen auf einem Standard basieren, ist das von Vorteil. Der KI-Agent sieht sich als ersten Schritt diese Tests an, um mit der Implementierung zu beginnen.

Hier ein Beispiel für einen Test, der prüft, ob ein Dokument korrekt in MongoDB eingefügt wurde:

MongoDB test example

Schnittstellen

Ein Interface in Java (oder einer anderen Programmiersprache) ist eine Struktur, die vorgibt, wie Klassen aufgebaut sein und welche Methoden sie implementieren sollen. Um den KI-Agenten noch gezielter zu steuern, empfiehlt es sich, ein Interface für Ihr Repository zum Einfügen von Dokumenten zu erstellen:

Java interface example
Java interface code

Konkrete Aufgabenbeschreibung

Zuletzt benötigen wir eine konkrete Aufgabenbeschreibung. Meistens können Sie dafür JIRA- oder GitHub-Issues verwenden, in denen Sie die Aufgabe definieren. Das ist unsere:

Task description screenshot

Starten Sie mit Vibe Coding

Vibe Coding bedeutet, dass Sie Ihren Bedarf in einfachem Englisch (oder sogar per Sprachbefehl) beschreiben und die KI den Code in Echtzeit generiert. Im Blog gehen wir ausführlich auf Vibe Coding ein. Hier das Prompt, das ich in Windsurf verwendet habe, um die Aufgabe für mich zu erledigen:

Prompt example for Windsurf

Implementieren Sie die folgende Abfrage als Kombination aus einer oder mehreren benannten Abfragen und Java-Code.

Finden Sie alle Fahrer, die mindestens X Fahrten mit einer Bewertung über 5 in einem bestimmten Zeitraum abgeschlossen haben und niemals eine Bewertung unter 3 Sternen erhalten haben.

Hinweis:
Sie müssen keine einzelne Abfrage finden, um diese Aufgabe zu lösen (Sie können eine Kombination aus Java-Code und benannten Abfragen verwenden), aber Sie müssen die ORM-Performance im Auge behalten, d. h. stellen Sie sicher, dass Ihre Lösung auch dann noch hinreichend schnell ist, wenn Sie viele Entitäten haben. In der Diskussionsrunde sollten Sie erklären können, welche Probleme bei schlecht geschriebenen Abfragen auftreten können.

@Ass1_2_2Test.java#L35-60 das sind die entsprechenden Tests. Die Implementierung befindet sich in @DriverDAO.java#L34-63

Die Erwähnung der Dateien ist beim Vibe Coding der wichtigste Aspekt. Jetzt können Sie sich zurücklehnen und dem KI-Agenten bei seiner Arbeit zusehen. Er hat die Klasse implementiert, die Tests ausgeführt und wiederholt, bis alle Tests bestanden wurden:

AI Agent coding flow

Häufig gestellte Fragen

Yasha ist ein talentierter Softwareentwickler mit Spezialisierung auf Python, Java und Machine Learning. Yasha schreibt technische Artikel über KI, Prompt Engineering und Chatbot-Entwicklung.

Yasha Boroumand
Yasha Boroumand
CTO, FlowHunt

Steigern Sie Ihre Entwicklung mit KI-Agenten

Entdecken Sie, wie die KI-Flow-Engineers und Coding-Agenten von FlowHunt Ihren Entwicklungsprozess für maximale Effizienz und Innovation automatisieren können.

Mehr erfahren

TouchDesigner
TouchDesigner

TouchDesigner

Integrieren Sie FlowHunt mit TouchDesigner über den Model Context Protocol (MCP) Server. Ermöglichen Sie KI-gesteuerte Automatisierung für das Erstellen von Nod...

4 Min. Lesezeit
AI TouchDesigner +3
Trello
Trello

Trello

Integrieren Sie FlowHunt mit Trello, um Ihr Projektmanagement mit KI-gestützten Agenten und dem Trello MCP Server zu automatisieren. Ermöglichen Sie eine Steuer...

4 Min. Lesezeit
AI Trello +3