Aktualisiert am: 14. Januar 2025
5 Minuten Lesezeit
Hier erfährst du, wie das GitLab-Team mit Hilfe der KI-Funktionen von GitLab Duo komplexere Testsituationen bewältigt und dabei auch sicherstellt, dass die Code-Tests den Standards entsprechen.
Im ersten Teil unserer dreiteiligen Serie über die Testerstellung mit GitLab Duo ging es darum, wie man Code-Tests automatisieren kann. Jetzt werden wir die Erfahrungen teilen, die wir beim Einsatz von KI für die Testgenerierung gemacht haben.
Insgesamt waren wir mit den Ergebnissen zufrieden, die wir mit GitLab Duo bei der Testgenerierung für unseren Code erzielt haben. Wie bei jeder Sprachgenerierung waren in einigen Fällen kleinere Anpassungen erforderlich, z. B. die Korrektur von Importpfaden oder die Bearbeitung von Inhalten in Datensätzen. Bei den komplexeren Fällen mussten wir berücksichtigen, dass KI-Lösungen oft der Kontext fehlt. Hier erfährst du, wie wir die komplexeren Testsituationen mit GitLab Duo gemeistert haben.
Wie so oft bei der Entwicklung eines Softwareprodukts stießen wir auf Fälle, in denen wir bestehende Tests aktualisieren mussten. Anstatt eine komplette Testsuite für ein häufiges Problem manuell anzupassen, nutzten wir die Fähigkeiten des GitLab-Duo-Chat-Fensters in VS Code voll aus. Um beispielsweise Tests zu überarbeiten, nutzten wir den Chat-Prompt „Please update the provided tests to use unittest rather than pytest“ („Aktualisiere die bereitgestellten Tests so, dass sie unittest und nicht pytest verwenden“) und fügten dann die Tests ein, die GitLab Duo aktualisieren sollte.
Hinweis: Wir haben die Empfehlungen von GitLab Duo kopiert und in unseren Code eingefügt.
Das Erstellen von Tests für älteren Code, von dem wir wussten, dass er funktioniert, war eine weitere Herausforderung. In solchen Fällen war es sinnvoll, neben den fehlgeschlagenen Tests auch Fehlerschnipsel bereitzustellen und GitLab Duo zu bitten, neue Tests zu erstellen. Wir haben die Fehler aus dem Terminalfenster in den Chat kopiert und mit der Aufforderung „Please explain and fix this failing test“ („Erkläre und behebe diesen fehlgeschlagenen Test“) oder ähnlichen Prompts eine Zusammenfassung der Probleme mit dem Test ausgeben lassen sowie einen neuen Test erstellt, der das Problem behebt. Wir mussten feststellen, dass dies manchmal mehrere Überarbeitungsrunden erforderte, wenn neue Testfehler auftraten. Die Effizienz von GitLab Duo bei der Erstellung verschiedener überarbeiteter Lösungen war jedoch schnell und wirkte sich positiv auf die Effizienz des Teams und der Entwickler(innen) aus.
In anderen Fällen führte die Modularisierung oder die Komplexität unseres Codes zu Abweichungen bei den Ergebnissen von GitLab Duo. Bei der Erstellung von Tests erzeugte GitLab Duo beispielsweise manchmal eine Reihe bestandener und fehlgeschlagener Tests, was auf unterschiedliche Testansätze zurückzuführen war (z. B. die Verwendung von Simulationen und die Objekte, die simuliert wurden). Wir gaben GitLab Duo ein eigenes Beispiel für einen bestandenen Test und forderten es auf, die einzelnen Tests nacheinander so zu ändern, dass sie dem Stil der bestandenen Tests entsprechen, um die Konsistenz zu wahren. Außerdem stellten wir GitLab Duo eine Datei mit funktionierenden Tests für ein ähnliches Objekt oder eine ähnliche Aufgabe zur Verfügung, damit es die Struktur nachbilden konnte.
Während der Entwicklung eines Python-Moduls generierte GitLab Duo viele Tests mit Simulationen, die oft überarbeitet werden mussten, insbesondere im Hinblick auf die Standardisierung der Namensgebung. In solchen Fällen konnten wir GitLab Duo Chat nutzen, um die Tests zu überarbeiten und Anweisungen zu geben, welche Testkomponenten zu aktualisieren waren. GitLab Duo zu diesen Änderungen aufzufordern, war wesentlich schneller als die Überarbeitung einzelner Tests, wie wir es zuvor getan hatten.
GitLab Duo erstellte Tests für zusätzliche Testfälle, die das Team zuvor nicht berücksichtigt hatte, und erhöhte so die Abdeckung. So konnten wir dank GitLab Duo diese Grenzfälle schnell und effizient angehen und die Testabdeckung erweitern, was für unser Team einen wichtigen Mehrwert darstellt, um schneller ein robustes Produkt zu entwickeln.
Die folgenden Erkenntnisse waren wichtig für unseren Erfolg mit GitLab Duo:
In unserem nächsten Artikel der Reihe geht es um einen Test, den wir durchgeführt haben, um die Auswirkungen von GitLab Duo auf die automatisierten Tests unseres Teams zu validieren, und um die beeindruckenden Ergebnisse, die wir bis jetzt erzielt haben.