paint-brush
Studie deckt häufige Probleme auf, mit denen GitHub-Copilot-Benutzer konfrontiert sindvon@textmodels
5,028 Lesungen
5,028 Lesungen

Studie deckt häufige Probleme auf, mit denen GitHub-Copilot-Benutzer konfrontiert sind

Zu lang; Lesen

Eine Studie untersuchte Benutzerherausforderungen mit GitHub Copilot und deckte häufige Probleme wie Nutzungshindernisse, Kompatibilitätsprobleme und die Qualität von Codevorschlägen auf. Die Ursachen reichen von internen Systemproblemen bis hin zu Problemen mit der Netzwerkverbindung. Zu den Lösungen gehören Fehlerbehebungen, Konfigurationsanpassungen und Versionsaktualisierungen. Insgesamt geben die Ergebnisse Aufschluss über die Verbesserung der Benutzererfahrung von GitHub Copilot.
featured image - Studie deckt häufige Probleme auf, mit denen GitHub-Copilot-Benutzer konfrontiert sind
Writings, Papers and Blogs on Text Models HackerNoon profile picture

Dieses Dokument ist auf arxiv unter der CC 4.0-Lizenz verfügbar.

Autoren:

(1) Xiyu Zhou, Fakultät für Informatik, Universität Wuhan, Wuhan, China;

(2) Peng Liang, Fakultät für Informatik, Universität Wuhan, Wuhan, China;

(3) Zengyang Li, Fakultät für Informatik, Central China Normal University, Wuhan, China;

(4) Aakash Ahmad, School of Computing and Communications, Lancaster University Leipzig, Leipzig, Deutschland;

(4) Mojtaba Shahin, School of Computing Technologies, RMIT University, Melbourne, Australien;

(4) Muhammad Waseem, Fakultät für Informationstechnologie, Universität Jyväskylä, Jyväskylä, Finnland.


III. ERGEBNISSE UND ANALYSE

In diesem Abschnitt berichten wir über die Studienergebnisse der drei RQs und liefern eine Analyse der wichtigsten Ergebnisse. In Abschnitt III-A haben wir die Arten von Problemen vorgestellt, während wir in den Abschnitten III-B und III-C die Arten von Ursachen bzw. Lösungen für die entsprechenden Probleme vorstellen. Die Ergebnisse der Problemtypen werden in zwei Ebenen kategorisiert: Kategorien (z. B. Problem mit dem Inhalt von Vorschlägen) und Typen (z. B. WENIGER WIRKSAMER VORSCHLAG). Mittlerweile sind die Ergebnisse für Ursachen und Lösungen nur nach Typen organisiert (z. B. „Geeignete Version verwenden“). Es ist zu beachten, dass nur Ursachen, die nachweislich zu den Problemen führen, und Lösungen, die die Probleme beheben können, extrahiert und in den Ergebnissen bereitgestellt werden. Daher haben nicht alle Probleme entsprechende Ursachen und Lösungen. Wir stellen Beispiele mit dem „#“-Symbol zur Verfügung, das die „GitHub Issue ID“, „GitHub Discussion ID“ oder „SO Post ID“ im bereitgestellten Datensatz angibt [13].


A. Art der Probleme (RQ1)


Abb. 2 zeigt die Taxonomie der aus unseren Daten extrahierten Probleme. Es ist zu beobachten, dass Nutzungsprobleme (56,9 %) den Großteil der Probleme ausmachen, mit denen Copilot-Benutzer konfrontiert sind. Darüber hinaus hat eine beträchtliche Anzahl von Benutzern Funktionsanfragen (15,3 %) basierend auf ihrer Benutzererfahrung und ihren Anforderungen gestellt. Es gibt auch einen Teil der Benutzer, die bei der Verwendung von Copilot in verschiedenen Umgebungen auf Kompatibilitätsprobleme gestoßen sind (15,3 %), während kleinere Prozentsätze als Probleme mit dem Inhalt von Vorschlägen (4,9 %), Probleme mit der Benutzererfahrung (4,2 %) sowie Urheberrechts- und Richtlinienprobleme identifiziert wurden (3,4 %).


  1. Nutzungsproblem (56,9 %): Nutzungsproblem bezieht sich auf eine Kategorie von Hindernissen, auf die Benutzer stoßen, wenn sie versuchen, einige der grundlegenden Funktionen von Copilot zu nutzen (z. B. Installationsfehler). Diese Kategorie von Problemen ist weiter in sechs Arten unterteilt, die im Folgenden detailliert erläutert werden.


• FUNKTIONALITÄTS-NUTZUNGSPROBLEM bezieht sich auf die Anomalie verschiedener von Copilot bereitgestellter Funktionen im Zusammenhang mit der Codegenerierung. Neben der Bereitstellung von Codevorschlägen bietet Copilot verschiedene interaktive Funktionen zur besseren Interaktion mit Benutzern, wie z. B. „Vorheriger/nächster Vorschlag“, „Alle Vorschläge anzeigen“ und die Konfiguration von Tastenkombinationen zum Annehmen von Vorschlägen. Bei der Verwendung dieser Funktionen können bei Benutzern Ausnahmen auftreten. Beispielsweise berichtete ein Benutzer, dass „Copilot auf PyCharm keine Vorschläge mehr macht“ (Diskussion Nr. 11199).


• SETUP-/BETRIEBSPROBLEM bezieht sich auf Fehler oder Fehlfunktionen, die während der Initialisierung oder des Betriebs von Copilot auftreten und häufig Laufzeitausnahmen beinhalten. Diese Probleme können die ordnungsgemäße Ausführung von Copilot verhindern oder zu einem unerwarteten Absturz führen, beispielsweise wenn ein Benutzer auf einen „Copilot-Startfehler in VSCode“ stößt (Diskussion Nr. 30996).


• AUTHENTIFIZIERUNGSFEHLER bezieht sich auf Probleme im Zusammenhang mit Benutzeranmeldungs- und Authentifizierungsschwierigkeiten bei der Verwendung von Copilot. Copilot erfordert, dass sich Benutzer bei ihrem GitHub-Konto anmelden, bevor sie den Dienst nutzen. Nur Benutzer mit Zugriffsberechtigungen (einschließlich kostenpflichtiger Abonnements, Überprüfung der Studentenidentität usw.) können den Codegenerierungsdienst von Copilot nutzen. Während des Authentifizierungsprozesses können bei Benutzern verschiedene damit verbundene Probleme auftreten, die dazu führen, dass Copilot nicht verwendet werden kann. Beispielsweise erwähnte ein Benutzer im Diskussionsforum, dass „ich mich nach dem Upgrade nicht anmelden kann“ (Diskussion Nr. 18132).


• Zugriffsfehler bezieht sich auf die Situation, in der Benutzer nicht auf den Copilot-Server zugreifen können, was häufig zu Fehlern im Zusammenhang mit Serververbindungen führt. Ein Benutzer erhält möglicherweise eine Fehlermeldung wie „GitHub Copilot konnte keine Verbindung zum Server herstellen“ (Diskussion Nr. 11801).


• INSTALLATIONSPROBLEM bezieht sich auf die Probleme, die während des Installationsprozesses von Copilot aufgetreten sind, einschließlich Installationsfehlern, der Unfähigkeit, Installationsmethoden zu finden und anderen damit zusammenhängenden Problemen. Beispielsweise können bei einigen Benutzern Probleme wie „Fehler bei der Installation von Copilot“ auftreten (Diskussionen Nr. 17250).


• PROBLEM MIT DER VERSIONSKONTROLLE bezieht sich auf Probleme, auf die Benutzer stoßen, wenn sie die Version von Copilot oder seiner Laufzeitumgebung (z. B. IDE) anpassen, einschließlich der Unfähigkeit, die Copilot-Version zu aktualisieren, oder anormaler Probleme wie der fortgesetzten Aufforderung zu Upgrades auch nach dem Upgrade. Beispielsweise sagte ein Benutzer, dass das Copilot-Plugin nicht aktualisiert werden kann, wenn er es in IntelliJ IDEA verwendet (Diskussion Nr. 17298).


Analyse: Da es sich um ein relativ neues KI-Codeprodukt handelt, haben wir in verschiedenen Phasen der Benutzerinteraktion mit Copilot Nutzungsprobleme festgestellt. Benutzer neigen auch dazu, diese Probleme zu melden und nach Hilfe zu suchen, wodurch Nutzungsprobleme zur häufigsten Problemkategorie wurden. FUNKTIONALITÄTS-NUTZUNGSPROBLEM (233), SETUP-/BETRIEBS-PROBLEM (201) und AUTHENTIFIZIERUNGSFEHLER (199) sind die drei häufigsten Typen. Wir führen die höhere Häufigkeit der ersten beiden Arten von Problemen auf die Mängel im Funktionsdesign und in der Stabilität von Copilot zurück, die auch von den Umgebungen und Abläufen der Benutzer beeinflusst werden. Der dritte Typ ist hauptsächlich mit spezifischen Details verbunden, die entstehen, wenn Copilot von Benutzern verlangt, sich mit ihren GitHub-Konten anzumelden.


2) Funktionsanfrage (15,3 %): Funktionsanfrage bezieht sich auf die Funktionen, die Benutzer basierend auf ihrer Erfahrung und ihren tatsächlichen Bedürfnissen bei der Verwendung von Copilot hinzufügen oder verbessern möchten. Diese Funktionsanfragen tragen nicht nur dazu bei, die Benutzererfahrung von Copilot zu verbessern, sondern tragen auch zur Erforschung bei, wie Tools zur KI-Codegenerierung besser mit Entwicklern interagieren können. Diese Kategorie ist weiter in vier Typen unterteilt, wie unten gezeigt.


• FUNKTIONSANFRAGE bezieht sich auf Anfragen zur Entwicklung neuer Funktionen in Copilot, die sich typischerweise aus echten Bedürfnissen und Schwierigkeiten der Benutzer bei der Verwendung des Tools ergeben. Beispielsweise hat ein Benutzer vorgeschlagen, dass das Hinzufügen einer „Code-Erklärungsfunktion“ den Nutzen von Copilot erhöhen könnte (Diskussion Nr. 7509).


• INTEGRATIONSANFRAGE bezieht sich auf eine Art Anfrage für Copilot, auf bestimmten Plattformen verfügbar zu sein oder in andere Plugins integriert zu werden. Dies ist hauptsächlich auf den Wunsch einiger Benutzer zurückzuführen, Copilot in bestimmten Umgebungen zu verwenden. Beispielsweise forderte ein Benutzer „Unterstützung für die Intellij 2022.2 EAP-Familie“ (Diskussion Nr. 17045). Die Integrationswünsche spiegeln zum Teil auch die Beliebtheit von Copilot bei Entwicklern wider.


• UI-ANFRAGE bezieht sich auf die von Benutzern gestellten Anfragen nach Änderungen an der Benutzeroberfläche (UI) von Copilot, was die Änderung des Erscheinungsbilds des Copilot-Symbols, die Anpassung von Benutzeraufforderungen und andere damit zusammenhängende Aspekte umfassen kann. Diese Anfragen zielen im Allgemeinen darauf ab, die visuellen Effekte und das Benutzererlebnis von Copilot zu verbessern. Beispielsweise kann ein Benutzer das Hinzufügen einer „Statusanzeige“ (Problem Nr. 163) anfordern, um Informationen über den aktuellen Arbeitsstatus von Copilot bereitzustellen.


• PROFESSIONELLE COPILOT-VERSION bezieht sich auf den Wunsch einiger Benutzer nach einer professionellen Version von Copilot.


Abb. 2. Eine Taxonomie der Probleme bei der Verwendung von GitHub Copilot


Bei diesen Benutzern handelt es sich in der Regel um Entwickler aus internen Teams bestimmter Unternehmen, die sich für ihre eigentliche Arbeit professionellere und zuverlässigere Dienste zur Codegenerierung wünschen. Insbesondere stellen sie höhere Anforderungen an die Zuverlässigkeit und Sicherheit des Copilot-Codes sowie an die Teamzertifizierung und andere Aspekte.


Analyse: Für FUNCTION REQUEST (123) haben wir beobachtet, dass Benutzer häufig den Wunsch nach größerer Flexibilität bei der Konfiguration von Copilot äußern, um sie besser an ihre Entwicklungsgewohnheiten anzupassen. Zu den häufigen Anfragen gehört beispielsweise die Möglichkeit, die Vorschläge von Copilot Wort für Wort zu akzeptieren und anzugeben, wo Copilot in Bezug auf Dateitypen oder Code-Entwicklungsbereiche automatisch agieren soll. Zu den innovativeren Anforderungen gehört die Notwendigkeit, dass Copilot Vorschläge für das gesamte Projekt bereitstellen muss, sowie Funktionen wie Code-Erklärungen und Chat-Funktionen [15], die bereits als technische Vorschau in Copilot X eingeführt wurden. INTEGRATION REQUEST (75) spiegelt dies wider Wunsch von Entwicklern, Copilot in ihrer gewohnten Umgebung zu nutzen. Dies stellt höhere Anforderungen an das Copilot-Team, da wir eine erhebliche Anzahl von Kompatibilitätsproblemen festgestellt haben.


3) Kompatibilitätsproblem (15,3 %): Diese Kategorie umfasst die Probleme, die durch Nichtübereinstimmungen zwischen Copilot und seiner Laufzeitumgebung entstehen. Copilot arbeitet als Plugin in verschiedenen IDEs und Texteditoren (z. B. VSCode und IntelliJ IDEA), und die Komplexität der Umgebungen und Störungen durch andere Plugins können zu einer erhöhten Anzahl von Kompatibilitätsproblemen führen. Diese Probleme werden weiter in vier Typen eingeteilt, die im Folgenden näher erläutert werden.


• EDITOR-/IDE-KOMPATIBILITÄTSPROBLEM bezieht sich auf Probleme, die durch Nichtübereinstimmungen zwischen Copilot und seiner IDE oder seinem Editor entstehen. Diese Probleme äußern sich typischerweise darin, dass Copilot in einer bestimmten IDE oder einem bestimmten Editor nicht ordnungsgemäß funktionieren kann.


• PLUG-IN-KOMPATIBILITÄTSPROBLEM bezieht sich auf eine Art von Übereinstimmungsproblem, das auftritt, wenn Copilot und andere Plugins aktiv sind und in derselben Umgebung zusammenarbeiten. Solche Probleme können zu teilweisen oder vollständigen Fehlfunktionen von Copilot und anderen Plugins führen und werden normalerweise durch Fehlerbehebungsmethoden wie das Deaktivieren von Copilot oder anderen Plugins identifiziert. Beispielsweise meldete ein Benutzer „einen Tastaturkürzelkonflikt mit Emmet“ (Problem Nr. 47), der ihn daran hinderte, von Copilot generierte Codevorschläge zu erhalten.


• FRAMEWORK-KOMPATIBILITÄTSPROBLEM bezieht sich auf eine Art Kompatibilitätsproblem zwischen Copilot und dem Framework, auf dem es läuft. Ein häufiges Beispiel ist das Kompatibilitätsproblem zwischen Copilot.vim [16], einer offiziellen Version von Copilot, die speziell für Vim entwickelt wurde, und Node.js.


• TASTATURKOMPATIBILITÄTSPROBLEM bezieht sich auf die Situation, in der die Funktionalität von Copilot in einigen ungewöhnlichen Tastaturlayouts nicht genutzt werden kann. Beispielsweise kann ein Benutzer mit einem deutschen Tastaturlayout die meisten Codegenerierungsfunktionen von Copilot nicht nutzen. (Diskussion Nr. 7094).


Analyse: Kompatibilitätsprobleme ergeben sich aus den komplexen Betriebsumgebungen, in denen Benutzer Copilot verwenden, sowie aus der Kompatibilitätsstabilität von Copilot selbst. Im Fall des EDITOR/IDE-KOMPATIBILITÄTSPROBLEMS (132) wurden bei VSCode, der offiziell für die Copilot-Nutzung empfohlenen Plattform, mehr Kompatibilitätsprobleme gemeldet. Ähnliche Probleme haben wir auch in anderen weit verbreiteten IDEs wie Visual Studio, IDEA und PyCharm festgestellt. Das Auftreten von PLUG-IN-KOMPATIBILITÄTSPROBLEM (72) ist weniger vorhersehbar, typische Probleme sind Konflikte mit anderen Code-Vervollständigungstools.


4) Problem mit dem Inhalt von Vorschlägen (4,9 %): Diese Kategorie von Problemen bezieht sich auf Probleme im Zusammenhang mit dem Inhalt des von Copilot generierten Codes. Die Generierung von Codevorschlägen ist die Kernfunktion von KI-Codegenerierungstools wie Copilot, und die Qualität der Vorschläge bestimmt direkt, ob Benutzer sie übernehmen. Daher ist der Inhalt des generierten Codes natürlich ein Bereich, der Benutzern, Forschern und dem Copilot-Team Anlass zur Sorge gibt. Diese Probleme werden weiter in sieben spezifische Situationen unterteilt, die im Folgenden detailliert beschrieben werden.


• VORSCHLÄGE NIEDRIGER QUALITÄT beziehen sich auf Situationen, in denen Copilot den Kontext nicht ausreichend verstehen kann, um nützlichen Code zu generieren. Solche Codevorschläge dürfen zwar keine syntaktischen Fehler aufweisen, aufgrund ihrer schlechten Qualität ist es jedoch unwahrscheinlich, dass sie von Benutzern übernommen werden. Beispielsweise hat Copilot einmal eine leere Methode generiert, die nur eine Return-Anweisung enthielt, ohne die im Benutzercode angegebenen Anforderungen zu erfüllen (Diskussion Nr. 6631).


• Unsinnige Vorschläge beziehen sich auf die von Copilot bereitgestellten Codevorschläge, die für die Bedürfnisse des Benutzers völlig irrelevant sind oder seltsame Ergebnisse erzeugen. Solche Vorschläge gelten als nahezu unbrauchbar und bieten dem Benutzer nur wenig heuristische Hilfe. Beispielsweise erhielt ein Benutzer eine unzugängliche gefälschte URL, die von Copilot generiert wurde (Diskussion Nr. 14212).


• VORSCHLAG MIT FEHLER bezieht sich auf die Situation, in der Copilot relevanten Code basierend auf dem Kontext generieren kann, der vorgeschlagene Code jedoch einige Fehler enthält. Dies kann dazu führen, dass das Programm ausgeführt werden kann, jedoch nicht in der vom Entwickler beabsichtigten Weise, oder dass es in manchen Fällen zu Fehlern oder Abstürzen kommt. Beispielsweise berichtete ein Benutzer, dass Copilot die Verwendung von „setState(!state)“ anstelle von „setState(true)“ vorgeschlagen habe (Problem Nr. 43), was einen logischen Fehler im Code verursachte.


• UNVERSTÄNDLICHER VORSCHLAG bezieht sich auf die Situation, in der Copilot Codevorschläge macht, die Benutzer jedoch aufgrund der Komplexität der Codelogik oder mangelnder Erfahrung Schwierigkeiten hatten, den vorgeschlagenen Code zu verstehen, und zusätzliche Quellen benötigen, um seine Richtigkeit zu überprüfen. Ein Benutzer sagte beispielsweise: „Mein Github Copilot hat es einfach automatisch für mich vervollständigt, dann habe ich das Internet nach Informationen dazu durchsucht, konnte es aber nicht finden.“ (SO #73075410)


• VORSCHLAG MIT UNGÜLTIGER SYNTAX bezieht sich auf die Situation, in der die von Copilot generierten Vorschläge möglicherweise Syntaxfehler enthalten, die die ordnungsgemäße Ausführung des Programms verhindern. Ein Beispiel wäre, wenn im vorgeschlagenen Code eine schließende Klammer fehlt, was dazu führt, dass der Editor einen Syntaxfehler anzeigt (Diskussion Nr. 38941).


• WENIGER EFFEKTIVE VORSCHLÄGE beziehen sich auf die von Copilot generierten Codevorschläge, die funktional korrekt sind und die Anforderungen des Benutzers erfüllen, aber möglicherweise unter einer suboptimalen Ausführungseffizienz oder komplizierter Logik leiden, was möglicherweise Auswirkungen auf die Gesamtqualität des Codes hat.


• INSECURE SUGGESTION bezieht sich auf die von Copilot generierten Codevorschläge, die Sicherheitslücken verursachen. Beispielsweise gab ein Benutzer an, dass der Codevorschlag für ihn keine Verantwortung für die gelesenen Größen habe (Diskussion Nr. 6636).


Analyse: Die Qualität der Codevorschläge ist ein entscheidender Faktor für die Fähigkeit von Copilot zur praktischen Codeentwicklung. Wir haben eine relativ kleine Anzahl von Inhaltsproblemen mit Vorschlägen festgestellt, was möglicherweise darauf hindeutet, dass Benutzer weniger dazu neigen, Probleme im Zusammenhang mit vorgeschlagenem Code zu melden, als Probleme im Zusammenhang mit der Nutzung. Unter diesen Problemen sind Vorschläge von geringer Qualität, unsinnige Vorschläge und Vorschläge mit Fehlern die drei am häufigsten gemeldeten Typen, während unsichere Vorschläge und weniger wirksame Vorschläge weniger verbreitet sind. Dieses Ergebnis zeigt, dass die Qualität des generierten Codes ein großes Anliegen der Benutzer ist, während Sicherheit und Effektivität keine hohe Priorität haben.


5) Problem mit der Benutzererfahrung (4,2 %): Diese Kategorie umfasst Benutzerfeedback zu ihren Erfahrungen mit der Verwendung von Copilot. Im Vergleich zu Usage Issue läuft und funktioniert Copilot im Allgemeinen wie vorgesehen, die Benutzererfahrung ist jedoch nicht optimal. Benutzererfahrungsprobleme können aufgrund bestimmter Nutzungsszenarien auftreten oder in verschiedenen Situationen auftreten und Einblicke in Bereiche geben, in denen Copilot verbessert werden könnte. Benutzererfahrungsprobleme können weiter in vier Typen eingeteilt werden, die im Folgenden detailliert beschrieben werden.


• SCHLECHTE FUNKTIONALITÄTSERFAHRUNG bezieht sich auf eine Art von Benutzererfahrungsproblem, bei dem die Nutzung der Kernfunktionen von Copilot im Zusammenhang mit der Codegenerierung unbefriedigend ist. Diese Probleme können häufig die Koordination zwischen Benutzern und Copilot behindern und sogar die Effizienz der eigentlichen Entwicklungsarbeit beeinträchtigen. Beispielsweise beschwerte sich ein Benutzer darüber, dass die von Copilot automatisch generierten Vorschläge sehr ablenkend waren und ihn dazu zwangen, die Codegenerierungsfunktion manuell auszulösen (Diskussion Nr. 13007).


• SCHLECHTE ABO-ERFAHRUNG bezieht sich auf die Hindernisse, auf die Benutzer während des Abonnementprozesses für die Dienste von Copilot stoßen. Copilot bietet verschiedene Abonnementmethoden an (z. B. Studentenverifizierung, kostenpflichtiges Abonnement), was für Benutzer während des Abonnementvorgangs zu einigen Unannehmlichkeiten führt. Beispielsweise war ein Benutzer unsicher, was er nach dem Einrichten einer Abrechnung als nächstes tun sollte (Diskussion Nr. 19119).


• SCHLECHTE LEISTUNG bezieht sich auf Leistungsprobleme, die bei der Ausführung von Copilot auftreten und sich normalerweise direkt auf die Benutzererfahrung auswirken. Zu diesen Problemen gehören eine hohe CPU-Auslastung, lange Antwortzeiten und zu häufige Serverzugriffe. • SCHLECHTE Authentifizierungserfahrung bezieht sich auf die Unannehmlichkeiten, die Benutzern bei der Authentifizierung ihrer Identitäten vor der Verwendung von Copilot begegnen. Die häufigste Situation besteht darin, dass Copilot Benutzer häufig dazu auffordert, sich erneut anzumelden, was zu erheblicher Frustration führen kann.


Analyse: Probleme mit der Benutzererfahrung liefern wertvolle Einblicke in die Richtung zur Verbesserung von Copilot. Unter den Problemen mit schlechter Funktionalität (25) sind die am häufigsten gemeldeten Probleme die Inline-Vorschläge von Copilot, die Störungen im Codierungsprozess des Benutzers verursachen (5) und die Unannehmlichkeiten, bestimmte Teile des vorgeschlagenen Codes nicht akzeptieren zu können (2). Diese Bedenken stimmen mit einigen der von Benutzern in Funktionsanfragen genannten Anforderungen überein, z. B. der Festlegung, wann Copilot Code generieren kann und der Länge des vorgeschlagenen Codes.


6) Urheberrechts- und Richtlinienproblem (3,4 %): Copilot ist auf einem großen Korpus an Open-Source-Code geschult und generiert Codevorschläge basierend auf dem Codekontext der Benutzer. Die Art und Weise, wie Copilot vorgeht, wirft Bedenken hinsichtlich möglicher Urheberrechts- und Richtlinienprobleme auf, wie von einigen Benutzern geäußert wurde. Diese Probleme werden in drei Typen unterteilt, wie unten dargestellt.


• CODE COPYRIGHT PROBLEM bezieht sich auf die von einigen Codeautoren geäußerten Bedenken hinsichtlich der unbefugten Nutzung ihres Open-Source-Codes durch Copilot für das Modelltraining. GitHub ist derzeit eine der beliebtesten webbasierten Code-Hosting-Plattformen, und seit der Veröffentlichung von Copilot gibt es bei einigen Code-Autoren den Verdacht, dass ihr auf GitHub gehosteter Code ohne angemessene Berücksichtigung ihrer Lizenz für Schulungen verwendet wurde.


• CODE-TELEMETRIE-PROBLEM bezieht sich auf die von Benutzern geäußerten Bedenken hinsichtlich des Ansatzes von Copilot, ihren Code zu sammeln, um Vorschläge zu generieren, was möglicherweise zum Verlust vertraulichen Codes führen kann. Einige Benutzer sind möglicherweise auch einfach nicht damit einverstanden, dass ihr eigener Code sowie der von Copilot für sie generierte Code für andere Zwecke gesammelt werden.


• VERLETZUNG DER MARKTPLATZRICHTLINIEN ist ein konkreter Fall, in dem ein Benutzer berichtete, dass Copilot trotz der Verwendung vorgeschlagener APIs auf dem VSCode-Marktplatz veröffentlicht werden konnte, während andere Plugins verboten waren. Der Benutzer vermutete, dass dieses Verhalten möglicherweise gegen die Marktplatzrichtlinie verstößt (Problem Nr. 3).


Analyse: Das Auftreten von Urheberrechts- und Richtlinienproblemen zeigt die Bedenken der Benutzer hinsichtlich der Funktionsweise von Copilot. Copilot ist auf mehrsprachigen Open-Source-Code geschult und muss während des Betriebs auch den Codekontext der Benutzer erfassen, um Vorschläge zu generieren. Diese beiden Tatsachen haben dazu geführt, dass Menschen bei der Verwendung von Copilot, insbesondere bei der internen Entwicklung, den Fragen des Urheberrechts und des geistigen Eigentums mehr Aufmerksamkeit schenken.


B. Art der Ursachen (RQ2)


  1. Ergebnisse: Wir identifizierten insgesamt 337 Ursachen, die aus 24,1 % aller Probleme gesammelt und in 13 Typen kategorisiert wurden, wie in Tabelle II dargestellt. Das Ergebnis zeigt, dass die häufigsten Ursachen für Probleme Copilot-interne Probleme (21,4 %) und Netzwerkverbindungsprobleme (15,4 %) sind, wobei auch Editor-/IDE-Kompatibilitätsprobleme (11,1 %) und nicht unterstützte Plattformen (9,2 %) häufig gemeldet werden. Die spezifischen Fälle, die Anzahl der Vorkommnisse und der Anteil jeder Art von Ursache sind in Tabelle II aufgeführt. Aus Platzgründen analysieren wir die fünf häufigsten Ursachen. Es ist erwähnenswert, dass bestimmte Arten von Problemen möglicherweise die Ursache für andere Probleme sein können.


2) Analyse: Interne Copilot-Probleme, die zu verschiedenen Arten von Nutzungsproblemen führen können, sind die häufigste Ursache. Da es sich bei Copilot um ein Closed-Source-Projekt handelt, sind seine internen Details den Benutzern nicht öffentlich bekannt. Daher ordnen wir Upstream-Probleme im Zusammenhang mit Copilot den internen Copilot-Problemen zu und umfassen Sprachmodell-, Funktionsdesign- und serverseitige Probleme, die durch interne Faktoren verursacht werden. Typischerweise basiert die Identifizierung interner Copilot-Probleme auf Benutzerfeedback zu ungewöhnlichen Nutzungserfahrungen, die das Copilot-Team weiter untersuchen muss, um spezifische zugrunde liegende Ursachen zu ermitteln. Darüber hinaus führt das Auftreten eines internen Copilot-Problems häufig dazu, dass eine Gruppe von Benutzern innerhalb eines bestimmten Zeitraums ähnliche Probleme meldet. Beispielsweise kann eine serverseitige fehlerhafte Bereitstellung dazu führen, dass bei einer Gruppe von Benutzern ein AUTHENTIFIZIERUNGSFEHLER auftritt.


Netzwerkverbindungsprobleme sind eine häufige Ursache, die zu Authentifizierungsfehlern, Laufzeitausnahmen, Zugriffsfehlern usw. führen kann. Die meisten netzwerkbezogenen Probleme werden auf die Netzwerkumgebung des Benutzers zurückgeführt. Eine häufige Situation besteht darin, dass Benutzer über einen HTTP-Proxy oder ein VPN auf Copilot zugreifen, was zu SSL-Störungen führen und sie an der Nutzung des Dienstes hindern kann. Eine gute Nachricht ist jedoch, dass Copilot jetzt den Zugriff über einen HTTP-Proxy unterstützt und damit solche Bedenken ausräumt [17].


Kompatibilitätsprobleme zwischen Editor und IDE können zur Entstehung verschiedener Nutzungsprobleme führen, darunter vor allem eine abnormale Funktionsnutzung, Betriebsprobleme von Copilot und mehr.


„Nicht unterstützte Plattform“ bezieht sich auf den Grund, warum einige Benutzer Copilot in bestimmten IDEs oder Texteditoren nicht effektiv nutzen können, was hauptsächlich zu Problemen im Zusammenhang mit der Nutzung und Kompatibilität führt. Da Copilot nicht Open Source ist, können viele Plattformen es nicht sofort nach seiner Veröffentlichung integrieren, was dazu geführt hat, dass einige Benutzer beim Versuch, es zu verwenden, auf verschiedene Hindernisse stoßen. Daher empfehlen wir Benutzern, die von Copilot offiziell unterstützten IDEs zu verwenden, da sie dadurch einen bequemeren und stabileren Codegenerierungsdienst sowie Zugang zu einer ausgereiften Diskussions-Community erhalten, die bei der Lösung der häufigsten Probleme helfen kann.


Eine unsachgemäße Konfiguration/Einstellung ist eine der Hauptursachen für Funktionsnutzungs- und Kompatibilitätsprobleme. Beispielsweise kann es nach der Installation von Copilot aufgrund seiner Standardkonfiguration und -einstellungen zu Fehlfunktionen in einer bestimmten IDE oder zu Konflikten mit anderen Plugins kommen. Die meisten dieser Probleme können durch Konfigurationsanpassungen behoben werden.



C. Art der Lösungen (RQ3)


  1. Ergebnisse: Wir haben insgesamt 497 Lösungen identifiziert, mit denen 35,5 % aller Probleme gelöst werden konnten, und wurden in 11 Typen eingeteilt, wie in Tabelle III dargestellt. Das Ergebnis zeigt, dass die meisten Nutzungsfehler durch offizielle Korrekturen behoben wurden (Fehler, der von Copilot behoben wurde, 27,0 %), nachdem Benutzer Feedback gegeben hatten und als Benutzer versuchten, Probleme selbst zu lösen, Konfiguration/Einstellung ändern (22,1 %), geeignete Version verwenden (17,1 %). ) und Copilot neu installieren/neu starten/erneut autorisieren (12,3 %) wurden häufig als wirksame Lösungen verwendet. Die spezifischen Fälle, die Anzahl der Vorkommen und der Anteil jedes Lösungstyps sind in Tabelle III aufgeführt. Aus Platzgründen konzentrieren wir uns auf die Interpretation der Ergebnisse der Top-5-Lösungen sowie auf einige wichtige Analysen. Es ist zu beachten, dass es sich bei „Andere“ (4,2 %) um eine Sammlung dedizierter Lösungen handelt, die normalerweise speziell auf bestimmte Umgebungen und Probleme zugeschnitten sind.


Die Zuordnung zwischen Problemtypen und Lösungstypen mit der Verteilung ist in Tabelle IV dargestellt, wobei Abkürzungen zur Darstellung der einzelnen Lösungstypen verwendet werden. „BFC“ steht beispielsweise für Bug Fixed by Copilot. Die Zuordnung zeigt, dass die meisten Lösungen auf Nutzungs- und Kompatibilitätsprobleme abzielen. Die Hauptlösungen für Feature Requests bestehen in erster Linie darin, auf die offizielle Feature-Implementierung (FIC) zu warten oder ähnliche Effekte durch Konfigurations- oder Einstellungsänderungen (MCS) zu erzielen. Probleme mit der Benutzererfahrung werden größtenteils vom Copilot-Team (BFC) behoben. Darüber hinaus kann die Verwendung der entsprechenden Version von Copilot und Editor/IDE (USV) zu einem besseren Erlebnis führen. Die Lösung von Inhaltsproblemen mit Vorschlägen ist relativ anspruchsvoll, da nur wenige durch eine Änderung der Eingabemethode (MIW) behoben werden können, während es für die meisten an wirksamen Lösungen mangelt. Für Urheberrechts- und Richtlinienprobleme gibt es ebenfalls relativ begrenzte Lösungen. Die Hauptlösung besteht darin, die Erfassung des Benutzercodes durch Anpassen der Einstellungen von Copilot zu steuern.


2) Analyse: Der von Copilot behobene Fehler ist die primäre Lösung zur Behebung verschiedener Probleme, insbesondere bestimmter Nutzungs- und Kompatibilitätsprobleme. Dies ist sinnvoll, da Copilot-interne Probleme die häufigste Ursache sind, was darauf hindeutet, dass viele Probleme von Copilot als neuem Tool nicht durch eigene Anstrengungen der Benutzer gelöst werden können. Aufgrund des Closed-Source-Charakters von Copilot können Benutzer einfach ihr Feedback abgeben und auf die Antwort und Lösung des Copilot-Teams warten.


Das Ändern von Konfigurationen/Einstellungen ist eine gängige Lösung zur Lösung von Problemen im Zusammenhang mit falschen Konfigurationen oder Einstellungen und kann Probleme bei der FUNKTIONALITÄT, NUTZUNG DER FUNKTION, PROBLEME MIT DER PLUG-IN-KOMPATIBILITÄT und AUTHENTIFIZIERUNGSFEHLER durch Benutzer selbst beheben. Darüber hinaus können Benutzer bei einigen Funktionsanforderungen die gewünschte Funktionalität erreichen, indem sie einfach einige Konfigurationsänderungen vornehmen, z. B. die Verknüpfung von Tastenkombinationen ändern, um Codevorschläge zu akzeptieren. Wir haben jedoch festgestellt, dass es aufgrund der Komplexität der Copilot-Laufumgebungen schwierig ist, eine empfohlene Konfiguration bereitzustellen, die für alle Situationen geeignet ist. Daher muss jeder Fall einzeln analysiert werden.


„Geeignete Version verwenden“ bietet eine effektive Möglichkeit, SETUP-/BETRIEBSPROBLEME, FUNKTIONALITÄTSNUTZUNGSPROBLEME, INSTALLATIONSPROBLEME und EDITOR-/IDE-KOMPATIBILITÄTSPROBLEME zu beheben. Copilot wurde basierend auf Benutzerfeedback und Entwicklungsplänen schnell in vielen Versionen iteriert. Mittlerweile haben einige IDEs auch neue Versionen veröffentlicht, um damit kompatibel zu sein. Einige ältere Versionen sind jedoch möglicherweise stabiler als die neueste Version, die einige Fehler oder Kompatibilitätsprobleme enthalten kann. Daher ist die Verwendung der entsprechenden Version eine äußerst effektive Lösung für Benutzer.


Copilot neu installieren/neu starten/erneut autorisieren ist eine weitere Lösung für Benutzer, mit der sie Authentifizierungsfehler, Einrichtungs-/Betriebsprobleme und Probleme bei der Nutzung der Funktionalität einfach selbst beheben können. Sein Prinzip besteht darin, den aktuellen Zustand von Copilot zurückzusetzen und alle vorherigen Fehler oder Einstellungen, die möglicherweise vorhanden waren, auf ihren ursprünglichen Zustand zurückzusetzen.


Die von Copilot implementierte Funktion ist eine offizielle Maßnahme, die hauptsächlich auf Funktionsanfragen der Benutzer eingeht. Die Entwicklungsgeschwindigkeit der neuen Funktionen von Copilot ist relativ hoch und das Copilot-Team experimentiert derzeit mit einigen der neuesten Funktionen im Copilot X [18].