Empfohlenes Webinar: Vorstellung von Parasoft C/C++test CT für kontinuierliche Tests und Compliance-Exzellenz | Zum Video

Maximierung der KI in der Softwareentwicklung: Nutzung von ChatGPT mit Parasoft

Kopfschuss von Nathan Jakubiak, Senior Director of Development bei Parasoft
1. Juni 2023
5 min lesen

Kann Ihr Entwicklerteam von ChatGPT-generiertem Code profitieren? Lesen Sie weiter, um zu erfahren, wie Parasoft-Technologien dazu beitragen können, ChatGPT zu einem nützlichen Tool für die Entwicklung zu machen, das Risiko zu senken und die Produktivität zu verbessern.

ChatGPT, eines der heißesten Themen des Jahres 2023, ist ein von trainiertes Sprachmodell OpenAI. Es ist in der Lage, Text in natürlicher Sprache zu verstehen und zu generieren und wurde anhand einer riesigen Datensammlung trainiert, einschließlich des Quellcodes vieler Open-Source-Projekte, die in verschiedenen Programmiersprachen geschrieben wurden.

Softwareentwickler können diese enorme Menge an Wissen zur Unterstützung ihrer Arbeit nutzen, da sie über ein semantisches Verständnis des Quellcodes verfügen. Entwickler können ChatGPT verwenden, um nützlichen Code mit den richtigen Eingabeaufforderungen zu generieren.

Das Schreiben von Code ist eine Anwendung von ChatGPT in der Softwareentwicklung und es gibt viele andere. Der Schwerpunkt dieses Beitrags liegt auf der ChatGPT-Generierung von Code zur Verwendung in einer professionellen Softwareentwicklungsumgebung.

Es sind bereits Coding-Plugins verfügbar, z Github-Copilot, die dieselbe Technologie wie ChatGPT verwenden, um Softwareentwickler zu unterstützen. Diese Plugins können den von Entwicklern geschriebenen Code analysieren und Vorschläge zur Überlegung generieren.

Durch den Zugriff auf einen umfangreichen Codekorpus kann ChatGPT präzisen Code schreiben und hilfreiche Codevorschläge bereitstellen, wodurch der Entwicklungsprozess schneller und effizienter wird.

ChatGPT und Codegenerierung

ChatGPT und die Zukunft der KI-Codegenerierung sind rosig, aber es gibt einige Mängel. Lassen Sie uns die Vor- und Nachteile durchgehen.

Vorteile des Schreibens von Chat-GPT-Code

Auch wenn die Einführung noch am Anfang steht, erkennen professionelle Programmierer bereits die Vorteile der Nutzung von ChatGPT.

  • Unterstützt mehrere Programmiersprachen. Obwohl ChatGPT nicht genau sagen kann, in wie vielen Sprachen es trainiert wurde, sind die heute am häufigsten verwendeten Sprachen diejenigen, die in seinem Trainingssatz am besten vertreten sind.
  • Verbessert die Produktivität Vom generierten Code bis hin zu weiteren Funktionen wie Vorschlägen für Unit-Test, Automatisierungsskripte, Architekturplanung und funktionale Implementierung.
  • Tieferes semantisches Verständnis des Quellcodes im Vergleich zu herkömmlichen Tools für künstliche Intelligenz und maschinelles Lernen (ML). ChatGPT hat gezeigt, dass es mit den richtigen Eingabeaufforderungen die Funktion und das Verhalten von Code verstehen kann. Seine Analyse untersucht die Logik des Codes und identifiziert mögliche Randfälle, Randbedingungen und Abhängigkeiten, die auf oberflächlicher Ebene möglicherweise nicht offensichtlich sind. Herkömmliche KI-Tools sind auf einen viel kleineren Trainingssatz und eine eingeschränkte Ausgabe beschränkt.
  • Unterstützt Entwickler, die mit einer Sprache oder Zielumgebung nicht vertraut sind. ChatGPT kann Entwicklern, die neu in einem Projekt sind, dabei helfen, sich mit der Umgebung und der verwendeten Sprache vertraut zu machen. Obwohl es, wie weiter unten erläutert, Vorbehalte gibt, bietet sich eine gute Gelegenheit, aus diesem Code zu lernen.

Nachteile des Chat-GPT-Schreibcodes

Die Verwendung von ChatGPT zum Schreiben von Code hat einige Nachteile, da die Technologie neu ist und die Herkunft des generierten Codes unklar ist. Hier sind einige der Nachteile der Verwendung von ChatGPT in der Softwareentwicklung.

  • IP-Leckage bei Verwendung proprietären Codes und Informationen in Eingabeaufforderungen. Code, der als Eingabeaufforderungen für ChatGPT verwendet wird, wird Teil des Trainingssatzes und ist möglicherweise für andere Benutzer verfügbar. Samsung-Mitarbeiter haben kürzlich von diesen Risiken erfahren, als sie proprietären Code an ChatGPT weitergaben. Kommerzielle Lösungen wie Copilot ermöglichen es Benutzern, die Möglichkeit zu deaktivieren, ihren proprietären Code für Schulungen zu verwenden.
  • Herkunft des generierten Codes. Enthalten die Trainingsdaten von ChatGPT proprietären Code oder Open-Source-Code mit nicht zulässiger Lizenzierung? Ist eine Quellenangabe oder Lizenzierung des generierten Codes erforderlich? Es ist unklar, woher der von ChatGPT generierte Code stammt, da er auf Beispielen aus dem Internet basiert. Obwohl es sich bei den Trainingsdaten hauptsächlich um Open-Source-Code handelt, müssen die Lizenzanforderungen dennoch verstanden werden.
  • Mangelnde Konsistenz bei den Antworten auf Codierungsaufforderungen. Jede Antwort kann und wird wahrscheinlich jedes Mal unterschiedlich sein, wenn dieselbe Eingabeaufforderung verwendet wird.
  • Qualität und Sicherheit Es gibt Bedenken, da Fehler und schlecht geschriebener Code in den im Training verwendeten Open-Source-Daten in die Ausgabe von ChatGPT gelangen könnten oder das generative KI-Modell einfach Fehler machen könnte. ChatGPT überprüft seine Antworten nicht auf Sicherheit oder Leistung, und der generierte Code ist möglicherweise nicht einmal kompilierbar.
  • Entwickler akzeptieren möglicherweise Code mit nicht offensichtlichen Problemen. Da der Code sauber formatiert und dokumentiert zurückkommt, kann man ihn leicht als selbstverständlich betrachten. Es ist wichtiger denn je, sich zu bewerben gute CodequalitätsprozesseB. Codeüberprüfung, statische Analyse und Unit-Tests, bis hin zum generierten Code, um sicherzustellen, dass er wie erwartet funktioniert.
  • ChatGPT ist nur so gut wie seine Trainingsdaten. Wenn sich Standardentwicklungspraktiken in der Branche ändern, beispielsweise eine Bibliotheks-API, ist es möglich, dass einige ChatGPT-Antworten veraltete Informationen enthalten.

Überwindung der Code-Schreibbeschränkungen von ChatGPT mit der Technologie von Parasoft

Parasoft erforscht derzeit aktiv die Synergien, von denen Kunden profitieren könnten, wenn sie die erweiterten Funktionen generativer KI-Modelle wie ChatGPT mit den umfassenden Funktionen zur Automatisierung von Softwaretests kombinieren, die derzeit von Parasoft-Lösungen angeboten werden. Die Forschung konzentriert sich auf zwei Bereiche.

  1. So nutzen Sie ChatGPT in der automatisierten Softwaretestplattform.
  2. So verwenden Sie die Plattform zur Validierung von ChatGPT-generiertem Code.

Nutzung von ChatGPT in der automatisierten Softwaretestplattform von Parasoft

Es besteht ein großes Potenzial für Synergien zwischen ChatGPT und den bestehenden Funktionen zur Softwaretestautomatisierung von Parasoft. Wir können das tiefe semantische Verständnis des in GPT-basierten Modellen enthaltenen Codes nutzen, um die bereits in der Parasoft-Plattform enthaltenen Testangebote zu verbessern, einschließlich Testgenerierung, statischer Analyse usw Berichtsfunktionen. Insbesondere konzentrieren wir uns darauf, Folgendes zu verbessern.

  1. Generierung von Codekorrekturen für Verstöße gegen die statische Analyse. Parasoft verfügt bereits über eine Fülle von Informationen darüber Kodierungsstandards und statische Analyse Verstöße. Wir sollten diese Informationen nutzen können, um ChatGPT zu veranlassen, automatisch Korrekturen für entdeckte Codeverstöße zu generieren.
  2. Generierung intelligenter, semantisch bewusster Unit-Tests. Die aktuellen Funktionen zur Generierung von Unit-Tests von Parasoft sind darauf optimiert, so viele Codepfade wie möglich abzudecken, ohne redundante Tests zu erstellen. Wir gehen davon aus, dass wir dies mit dem semantischen Codeverständnis von ChatGPT kombinieren können, um Tests mit besseren Namen und einer Reihe von Eingabewerten zu generieren, die zu Folgendem führen: gute Codeabdeckung und umfassen reale Randbedingungswerte.
  3. Generierung von Positiv-, Negativ- und Sicherheits-API-Testszenarien. Der API-Testgenerator von Parasoft in Parasoft SOAtest leistet hervorragende Arbeit bei der Erstellung funktionaler API-Testszenarien basierend auf aufgezeichnetem Datenverkehr. Die Fähigkeit, Szenarien nur für den beobachteten Verkehr zu erstellen, ist jedoch eingeschränkt. Durch die Nutzung von ChatGPT möchten wir API-Testszenarien generieren, die in einer OpenAPI-Definition enthaltene Endpunkte auf verschiedene Arten, sowohl erwartete als auch unerwartete, ausführen.

Verwendung der Parasoft-Plattform zur Validierung von ChatGPT-generiertem Code

Parasoft kann den Nutzen der neuen GPT-basierten Codegenerierung steigern, indem es Probleme bei der Qualität, Sicherheit und Leistung des generierten Codes überwindet. Unsere Plattform ist in vielen verschiedenen Anwendungsbereichen getestet und bewährt, einschließlich sicherheitskritischer Software. Wir schon Verwenden Sie KI und ML, um die statische Analyse, Testgenerierung und Selbstheilung zu unterstützen.

Auch wenn die ChatGPT-Codegenerierung mit Sicherheit immer beliebter wird, ist es dennoch wichtig, dass der Code, den sie erstellt, einem Schwachstellenscan, einer Qualitätsbewertung und Tests unterzogen wird, wie sie beispielsweise von der Parasoft-Plattform bereitgestellt werden.

Vorteile von ChatGPT und Softwaretestautomatisierung

Verifizieren und validieren Sie den generierten Code. Teams müssen Softwaretest-Automatisierungstools verwenden, um den von ChatGPT generierten Code mit statischer Analyse zu analysieren und ihn mit Testtools zu testen. Generierter Code sollte wie jeder andere entwickelte Code behandelt werden, wenn nicht sogar sorgfältiger, um sicherzustellen, dass er die Qualitäts- und Sicherheitsziele des Projekts erfüllt.

Halten Sie sich an die Codierungsstandards. Lösungen wie die statische Analyse von Parasoft können sicherstellen, dass der von ChatGPT generierte Code den Codierungsstandards und Best Practices entspricht. Sie können den Code anhand vordefinierter Regeln und Richtlinien prüfen und etwaige Verstöße melden.

Verbessern Sie die Sicherheit. Die Sicherheit des von ChatGPT generierten Codes ist unbekannt und es ist möglich, dass Schwachstellen und damit verbundene Softwareschwächen in der gut formatierten Ausgabe verborgen sind. Behandeln Sie den gesamten generierten Code wie Drittanbieter- oder Open-Source-Code. Es sollte überprüft werden, bevor es in Ihre Anwendung integriert wird.

Produktivität erhöhen. Die Codegenerierung durch KI dürfte zu einer wichtigen Innovation mit enormem Potenzial werden PRODUKTIVITÄT Gewinne. Beispielsweise ist die Unit-Test-Generierungstechnologie von Parasoft für die Massenerstellung von Testfällen hoch skalierbar. Darüber hinaus bringen die verbesserten Funktionen von Softwaretesttools, die generative KI nutzen, noch weitere Vorteile. Eine echte Win-Win-Situation.

Zusammenfassung

Softwareunternehmen können die Qualität ihrer Tests verbessern und den manuellen Aufwand beim Entwerfen und Ausführen von Tests minimieren, indem sie Lösungen zur Automatisierung von Softwaretests nutzen, die durch generative KI-Technologie ergänzt werden. Parasoft geht davon aus, in naher Zukunft Verbesserungen an seiner Plattform zu veröffentlichen, die ChatGPT verwenden, um die Präzision und Effektivität von statischen Analysen, Unit-Tests und API-Tests zu verbessern, was letztendlich zu einer besseren Validierung sowohl von ChatGPT-generierten als auch von Menschen generierten Produkten führen wird. geschriebener Code.

Um den vollen Nutzen aus dieser neuen KI-Technologie zu ziehen, ist es wichtig, den von ChatGPT generierten Code zu validieren und ihn wie jeden neu entwickelten Code zu behandeln. Tools zur Automatisierung von Softwaretests wie die von Parasoft können dazu beitragen, ChatGPT zu einem nützlichen Tool für die Entwicklung zu machen und gleichzeitig das Risiko zu senken und die Produktivität zu verbessern.

Erfahren Sie mehr über die positiven Auswirkungen von KI und ML beim Softwaretesten.