TNG KI UnitTestGen

Automatisierte Unit-Test-Generierung für Java, Kotlin, C# und TypeScript

Unser TNG AI UnitTestGen Tool generiert automatisch Unit-Tests für Projekte in Java, Kotlin, C# und TypeScript. Durch die Nutzung von Large Language Modellen (LLMs) erstellt es Tests, die auf der Logik des Quellcodes basieren. So wird sichergestellt, dass Änderungen an der Codebasis die Funktionalität nicht unbeabsichtigt verändern.

Funktionsweise

Unser Ansatz nutzt Feedback-Schleifen aus Kompilierung und Ausführung der generierten Tests, um deren Funktionalität zu gewährleisten. Dieser Prozess verläuft vollständig autonom, d. h. ohne Eingriff einer Entwicklerin oder eines Entwicklers. Die Ausführung des generierten Codes erfolgt in einer isolierten Docker-Umgebung, wodurch potenzielle Risiken durch die Ausführung von LLM-generiertem Code minimiert werden. Das Tool beschafft automatisch den notwendigen Kontext für den zu testenden Code und stellt sicher, dass das LLM alle relevanten Informationen aus dem Repository erhält.

Unser Tool unterstützt Java (mit Maven und Gradle), Kotlin (mit Gradle), C# (mit .NET 6 und höher) sowie TypeScript (mit den Paketmanagern npm und pnpm und den Testframeworks Vitest und Jest).

Wesentliche Vorteile

UnitTestGen übertrifft andere LLM-basierte Ansätze für die Testgenerierung aus folgenden Gründen:

  • Unabhängigkeit von manueller Aufsicht: Die Unit-Test-Generierung kann effizient und vollständig unabhängig von manueller Steuerung durch Nutzerinnen und Nutzer ablaufen.

  • Qualitätssicherung: Wir bewerten die Qualität der generierten Tests nicht nur anhand der Code-Abdeckung, sondern zusätzlich durch Mutationstests (sofern anwendbar).

  • Sicherheit und Isolation: Durch die Ausführung des generierten Codes in einer Docker-Umgebung stellen wir einen sicheren und effizienten Testgenerierungsprozess sicher. Lediglich die finale Testversion erfordert eine manuelle Überprüfung.

  • Effizienz: Unsere Tests haben gezeigt, dass unser Tool vergleichbare Ergebnisse wie andere Ansätze erzielt, jedoch in deutlich kürzerer Zeit (30-50 % der Laufzeit) und mit weniger Eingabetokens (<50 %).

  • Erkennung unzureichender Abdeckung: Ein optionaler, erster Analyse-Schritt liefert Hinweise darauf, welche Funktionen zusätzliche Tests benötigen.

TNG AI UnitTestGen unterstützt Entwicklerinnen und Entwickler dabei, robuste und zuverlässige Software zu erstellen, indem ein zentraler Bestandteil des Entwicklungsprozesses automatisiert wird. So bleibt mehr Zeit für andere Aspekte der Projektentwicklung.

Code-Mutationsabdeckung

Es ist wichtig zu beachten, dass eine hohe Code-Abdeckung nicht immer eine hohe Testqualität bedeutet. So können Tests ohne Ergebnisvalidierung zwar einen großen Teil des Codes abdecken, aber dennoch die Funktionalität nicht tatsächlich überprüfen. Unser Tool nutzt Mutationstests, um die tatsächliche Wirksamkeit der Tests im Hinblick auf die Logik des Quellcodes zu bewerten. Indem der Quellcode verändert wird, stellen Mutationstests sicher, dass die Test umfassend sind.

Interessiert?

Um Ihnen den Einstieg mit TNG AI UnitTestGen zu erleichtern, bietet TNG begleiteten Zugriff auf das Tool sowie umfassende Unterstützung bei der Integration. Auf Wunsch stellen wir auch Beratungsleistungen durch unser Expertenteam bereit, um einen reibungslosen Übergang zu gewährleisten. Gerne unterstützen wir Sie auch bei der Auswahl des passenden LLM-Backends. Auf Wunsch bieten wir gerne eine auf Ihren Anwendungsfall individualisierte Demonstration an.

Kontaktieren Sie uns unter info@tngtech.com oder über unsere weiteren Kontaktmöglichkeiten, um mehr über unser Tool zu erfahren.