Metas neuer LLM-basierter Testgenerator bietet einen Ausblick auf die Zukunft der Entwicklung
- Meta hat ein Paper mit dem Titel "Automated Unit Test Improvement using Large Language Models at Meta" veröffentlicht.
- Das Paper zeigt, wie sich mit KI die Entwicklung beschleunigen und die Zahl von Softwarefehlern reduzieren lässt.
- Durch die Integration von LLMs in den Workflow von Entwicklerinnen und Entwicklern werden präzise und vollständige Verbesserungsvorschläge für Software gemacht, die die aktuelle Code Coverage erhöhen.
Wichtige Punkte
- TestGen-LLM verwendet den Ansatz „Assured LLM-based Software Engineering“ (Assured LLMSE).
- Es nutzt einen Ensemble-Ansatz, bei dem mehrere LLMs, Prompts und Hyperparameter verwendet werden, um Code-Verbesserungen zu erzeugen und anschließend die beste Verbesserung auszuwählen.
- TestGen-LLM wurde speziell dafür entwickelt, bestehende von Menschen geschriebene Tests zu verbessern.
Statistiken
- Bei der Auswertung der Produkte Reels und Stories auf Instagram wurden 75 % der von TestGen-LLM erzeugten Testfälle erfolgreich gebaut, 57 % bestanden zuverlässig, und 25 % erhöhten die Coverage.
- TestGen-LLM konnte 10 % aller angewendeten Klassen verbessern, und Entwicklerinnen und Entwickler übernahmen 73 % der Testverbesserungen und setzten sie in Production ein.
- Bei einem „test-a-thon“, bei dem Meta-Ingenieurinnen und -Ingenieure Tests erzeugten, um die Test Coverage von Instagram zu erhöhen, lag der Median der von TestGen-LLM-Tests hinzugefügten Codezeilen bei 2,5.
Praktisch nutzbare Erkenntnisse
- Dies ist ein gutes Beispiel dafür, wie sich mit LLMs die Produktivität in der Entwicklung und die Zuverlässigkeit von Software effizient steigern lassen.
- Der eigentliche Wert von LLMs liegt darin, unerwartete Edge Cases zu finden und abzufangen.
- Um LLMs in Production einzusetzen, sind Orchestrierung, Pipelines und Verarbeitung erforderlich.
Wie TestGen-LLM funktioniert
- TestGen-LLM wendet auf von Metas internem LLM erzeugte Kandidatenlösungen eine Reihe semantischer Filter an, um nur die wertvollsten Tests zu behalten.
- Filter 1: Build-Fähigkeit, Filter 2: Ausführung (ob Tests bestehen), Filter 3: Flakiness, Filter 4: Verbesserung der Coverage.
- Diese Verarbeitungsfilter stellen eine Verbesserung der Test-Suite sicher.
Fazit
- Dieses Paper ist eine gute Möglichkeit, die Fortschritte von LLMs im Bereich Software-Zuverlässigkeit nachzuverfolgen, da viele Entwicklerinnen und Entwickler LLMs bereits nutzen.
- LLMs werden zunehmend in der Lage sein, Bugs in immer komplexeren Softwaresystemen zu finden und zu testen.
Meinung von GN⁺
- Dieser Artikel bietet interessante Einblicke darin, welchen Einfluss Künstliche Intelligenz auf die Zukunft der Softwareentwicklung haben kann.
- Tools wie TestGen-LLM können eine große Hilfe dabei sein, die Arbeit von Entwicklerinnen und Entwicklern zu automatisieren und die Effizienz zu steigern.
- Die Weiterentwicklung solcher Technologien geht in Richtung geringerer Komplexität in der Softwareentwicklung, höherer Qualität und Zeitersparnis für Entwicklerinnen und Entwickler.
1 Kommentare
Hacker News-Kommentare