paint-brush
Estudo revela problemas comuns enfrentados por usuários do GitHub Copilotpor@textmodels
4,022 leituras
4,022 leituras

Estudo revela problemas comuns enfrentados por usuários do GitHub Copilot

Muito longo; Para ler

Um estudo investigou os desafios dos usuários com GitHub Copilot, revelando problemas comuns, como obstáculos de uso, questões de compatibilidade e qualidade de sugestão de código. As causas variam de problemas internos do sistema a problemas de conectividade de rede, enquanto as soluções incluem correções de bugs, ajustes de configuração e atualizações de versão. No geral, as descobertas esclarecem a melhoria da experiência do usuário do GitHub Copilot.
featured image - Estudo revela problemas comuns enfrentados por usuários do GitHub Copilot
Writings, Papers and Blogs on Text Models HackerNoon profile picture

Este artigo está disponível no arxiv sob licença CC 4.0.

Autores:

(1) Xiyu Zhou, Escola de Ciência da Computação, Universidade de Wuhan, Wuhan, China;

(2) Peng Liang, Escola de Ciência da Computação, Universidade de Wuhan, Wuhan, China;

(3) Zengyang Li, Escola de Ciência da Computação, Universidade Normal da China Central, Wuhan, China;

(4) Aakash Ahmad, Escola de Computação e Comunicações, Lancaster University Leipzig, Leipzig, Alemanha;

(4) Mojtaba Shahin, Escola de Tecnologias de Computação, Universidade RMIT, Melbourne, Austrália;

(4) Muhammad Waseem, Faculdade de Tecnologia da Informação, Universidade de Jyväskylä, Jyväskylä, Finlândia.


III. RESULTADOS E ANÁLISE

Nesta seção, relatamos os resultados do estudo dos três RQs e fornecemos a análise das principais conclusões. Na Seção III-A apresentamos os tipos de problemas, enquanto nas Seções III-B e III-C apresentamos os tipos de causas e soluções para os problemas correspondentes, respectivamente. Os resultados dos tipos de problemas são categorizados em dois níveis: categorias (por exemplo, problema de conteúdo de sugestão) e tipos (por exemplo, SUGESTÃO MENOS EFICAZ). Enquanto isso, os resultados de causas e soluções são organizados apenas como tipos (por exemplo, Usar versão adequada). Deve-se observar que apenas as causas que comprovadamente levam aos problemas e as soluções que podem resolvê-los são extraídas e fornecidas nos resultados. Portanto, nem todos os problemas têm causas e soluções correspondentes. Fornecemos exemplos com o símbolo “#”, que indica o “GitHub Issue ID”, “GitHub Discussion ID” ou “SO Post ID” no conjunto de dados fornecido [13].


A. Tipo de problemas (RQ1)


A Figura 2 apresenta a taxonomia das questões extraídas dos nossos dados. Pode-se observar que os Problemas de Uso (56,9%) são responsáveis pela maioria dos problemas enfrentados pelos usuários do Copilot. Além disso, um número substancial de usuários levantou solicitações de recursos (15,3%) com base na experiência e nos requisitos do usuário. Há também uma parcela de usuários que encontraram problemas de compatibilidade (15,3%) ao usar o Copilot em diferentes ambientes, enquanto porcentagens menores foram identificadas como problemas de conteúdo de sugestões (4,9%), problemas de experiência do usuário (4,2%) e direitos autorais e questões de política. (3,4%).


  1. Problema de uso (56,9%): Problema de uso refere-se a uma categoria de obstáculos encontrados pelos usuários ao tentar utilizar algumas das funções fundamentais do Copilot (por exemplo, falha na instalação). Esta categoria de questões é ainda dividida em seis tipos, que são detalhados a seguir.


• PROBLEMA DE USO DE FUNCIONALIDADE refere-se à anormalidade de vários recursos relacionados à geração de código fornecidos pelo Copilot. Além de fornecer sugestões de códigos, o Copilot oferece diversos recursos interativos para melhor interagir com os usuários, como “sugestão anterior/próxima”, “visualizar todas as sugestões” e configuração de teclas de atalho para aceitar sugestões. Os usuários podem encontrar exceções ao usar esses recursos. Por exemplo, um usuário relatou que “Copilot não está mais sugerindo no PyCharm” (Discussão nº 11199).


• PROBLEMA DE CONFIGURAÇÃO/OPERAÇÃO refere-se a erros ou mau funcionamento que ocorrem durante a inicialização ou operação do Copilot e geralmente envolvem exceções de tempo de execução. Esses problemas podem impedir que o Copilot seja executado corretamente ou fazer com que ele trave inesperadamente, como quando um usuário encontra “erro de inicialização do copilot no VSCode” (discussão nº 30996).


• FALHA DE AUTENTICAÇÃO refere-se aos problemas relacionados ao login do usuário e dificuldades de autenticação ao usar o Copilot. O Copilot exige que os usuários façam login em sua conta GitHub antes de usar o serviço. Somente usuários com permissões de acesso (incluindo assinaturas pagas, verificação de identidade de estudante, etc.) podem usar o serviço de geração de código do Copilot. Durante o processo de autenticação, os usuários podem encontrar diversos problemas relacionados a ele, resultando na impossibilidade de utilização do Copilot. Por exemplo, um usuário mencionou no fórum de discussão que “Não consigo fazer login após a atualização” (Discussão nº 18132).


• FALHA DE ACESSO refere-se à situação em que os usuários não conseguem acessar o servidor do Copilot, o que muitas vezes envolve erros relacionados às conexões do servidor. Um usuário pode encontrar uma mensagem de erro como “O GitHub Copilot não pôde se conectar ao servidor” (Discussão nº 11801).


• PROBLEMA DE INSTALAÇÃO refere-se aos problemas encontrados durante o processo de instalação do Copilot, incluindo erros de instalação, incapacidade de encontrar métodos de instalação e outros problemas relacionados. Por exemplo, alguns usuários podem encontrar problemas como “Erros ao instalar o Copilot” (Discussões #17250).


• PROBLEMA DE CONTROLE DE VERSÃO refere-se a problemas que os usuários encontram ao ajustar a versão do Copilot ou seu ambiente de execução (por exemplo, IDE), incluindo a incapacidade de atualizar a versão do Copilot ou problemas anormais, como continuar solicitando atualizações mesmo após a atualização. Por exemplo, um usuário disse que “o plugin do copilot falha ao ser atualizado” ao usá-lo no IntelliJ IDEA (discussão nº 17298).


Análise: como um produto de código de IA relativamente novo, identificamos problemas de uso em vários estágios da interação do usuário com o Copilot. Os usuários também tendem a relatar esses problemas e procurar assistência, o que tornou o Problema de Uso a categoria de problemas mais prevalente. PROBLEMA DE USO DE FUNCIONALIDADE (233), PROBLEMA DE CONFIGURAÇÃO/OPERAÇÃO (201) e FALHA DE AUTENTICAÇÃO (199) são os três principais tipos. Atribuímos a maior frequência dos dois primeiros tipos de problemas às deficiências no design e na estabilidade dos recursos do Copilot, que também são influenciadas pelos ambientes e operações dos usuários. O terceiro tipo está associado principalmente a detalhes específicos que surgem quando o Copilot exige que os usuários façam login usando suas contas GitHub.


2) Solicitação de recurso (15,3%): Solicitação de recurso refere-se aos recursos que os usuários solicitam para adicionar ou melhorar com base em sua experiência e necessidades reais ao usar o Copilot. Essas solicitações de recursos não apenas ajudam a melhorar a experiência do usuário do Copilot, mas também contribuem para a exploração de como as ferramentas de geração de código de IA podem interagir melhor com os desenvolvedores. Esta categoria é dividida em quatro tipos, conforme mostrado abaixo.


• PEDIDO DE FUNÇÃO refere-se às solicitações de desenvolvimento de novas funções no Copilot, que normalmente surgem de necessidades genuínas e dificuldades encontradas pelos usuários durante a utilização da ferramenta. Por exemplo, um usuário sugeriu que a adição de um “recurso de explicação de código” poderia aumentar a utilidade do Copilot (Discussão nº 7509).


• PEDIDO DE INTEGRAÇÃO refere-se a um tipo de solicitação para que o Copilot esteja disponível em determinadas plataformas ou seja integrado a outros plugins. Isto se deve principalmente ao desejo de alguns usuários de usar o Copilot em ambientes específicos. Por exemplo, um usuário solicitou “Suporte para a família Intellij 2022.2 EAP” (Discussão nº 17045). Os pedidos de integração também refletem, até certo ponto, a popularidade do Copilot entre os desenvolvedores.


• UI REQUEST refere-se às solicitações feitas pelos usuários para alterações na interface do usuário (UI) do Copilot, que podem envolver a modificação da aparência do ícone do Copilot, o ajuste dos prompts de uso e outros aspectos relacionados. Essas solicitações geralmente visam melhorar os efeitos visuais e a experiência do usuário do Copilot. Por exemplo, um usuário pode solicitar a adição de um “indicador de status” (Problema nº 163) para fornecer informações sobre o status atual de trabalho do Copilot.


• VERSÃO PROFISSIONAL COPILOT refere-se às solicitações de alguns usuários por uma versão profissional do Copilot.


Figura 2. Uma taxonomia de problemas ao usar o GitHub Copilot


Esses usuários são normalmente desenvolvedores de equipes internas de determinadas empresas, que esperam receber serviços de geração de código mais profissionais e confiáveis em seu trabalho real. Especificamente, eles possuem requisitos mais elevados para a confiabilidade e segurança do código do Copilot, bem como certificação da equipe e outros aspectos.


Análise: Para FUNCTION REQUEST (123), observamos que os usuários geralmente expressam um desejo de maior flexibilidade na configuração do Copilot para se alinhar mais estreitamente com seus hábitos de desenvolvimento. Por exemplo, solicitações comuns incluem a capacidade de aceitar sugestões do Copilot palavra por palavra e de especificar onde o Copilot deve operar automaticamente em termos de tipos de arquivo ou escopos de desenvolvimento de código. Demandas mais inovadoras envolvem a necessidade do Copilot fornecer sugestões de acordo com todo o projeto, além de recursos como explicações de código e funcionalidade de chat [15], que já foram lançados como uma prévia técnica no Copilot X. PEDIDO DE INTEGRAÇÃO (75) reflete o desejo dos desenvolvedores de usar o Copilot em seus ambientes familiares. Isto impõe maiores exigências à equipe do Copilot, pois identificamos um número significativo de problemas de compatibilidade.


3) Problema de compatibilidade (15,3%): Esta categoria cobre os problemas que surgem de incompatibilidades entre o Copilot e seu ambiente de execução. O Copilot opera como um plugin em vários IDEs e editores de texto (por exemplo, VSCode e IntelliJ IDEA), e a complexidade dos ambientes e a interferência de outros plugins podem resultar em um número maior de problemas de compatibilidade. Essas questões são ainda classificadas em quatro tipos, que são elaborados a seguir.


• PROBLEMA DE COMPATIBILIDADE DO EDITOR/IDE refere-se a problemas decorrentes de incompatibilidades entre o Copilot e seu IDE ou editor. Esses problemas normalmente se manifestam quando o Copilot não consegue operar corretamente em um IDE ou editor específico.


• PROBLEMA DE COMPATIBILIDADE DE PLUG-IN refere-se a um tipo de problema de correspondência que surge quando o Copilot e outros plug-ins estão ativos e trabalhando juntos no mesmo ambiente. Esses problemas podem causar mau funcionamento parcial ou total do Copilot e de outros plug-ins e geralmente são identificados por meio de métodos de solução de problemas, como a desativação do Copilot ou de outros plug-ins. Por exemplo, um usuário relatou “um conflito de atalho de teclado com Emmet” (Problema nº 47) que o impediu de receber sugestões de código geradas pelo Copilot.


• PROBLEMA DE COMPATIBILIDADE DE FRAMEWORK refere-se a um tipo de problema de compatibilidade entre o Copilot e o framework em que ele opera. Um exemplo comum é o problema de compatibilidade entre Copilot.vim [16], uma versão oficial do Copilot projetada especificamente para Vim, e Node.js.


• PROBLEMA DE COMPATIBILIDADE DE TECLADO refere-se à situação em que a funcionalidade do Copilot não pode ser usada em alguns layouts de teclado incomuns. Por exemplo, um usuário com layout de teclado alemão não pode usar a maioria dos recursos relacionados à geração de código do Copilot. (Discussão #7094).


Análise: O problema de compatibilidade surge dos ambientes operacionais complexos nos quais os usuários utilizam o Copilot, bem como da robustez de compatibilidade do próprio Copilot. No caso do PROBLEMA DE COMPATIBILIDADE EDITOR/IDE (132), o VSCode, a plataforma oficialmente recomendada para uso do Copilot, obteve um número maior de problemas de compatibilidade relatados. Também encontramos problemas semelhantes em outros IDEs amplamente utilizados, como Visual Studio, IDEA e PyCharm. O aparecimento do PLUG-IN COMPATIBILITY ISSUE (72) é menos previsível, com problemas típicos envolvendo conflitos com outras ferramentas de autocompletar código.


4) Problema de Conteúdo de Sugestão (4,9%): Esta categoria de problemas refere-se aos problemas relacionados ao conteúdo do código gerado pelo Copilot. A geração de sugestões de código é o principal recurso das ferramentas de geração de código de IA, como o Copilot, e a qualidade das sugestões determina diretamente se os usuários as adotarão. Portanto, o conteúdo do código gerado é naturalmente uma área de preocupação para usuários, pesquisadores e equipe do Copilot. Estas questões subdividem-se ainda em sete situações específicas, detalhadas a seguir.


• SUGESTÃO DE BAIXA QUALIDADE refere-se a situações em que o Copilot é incapaz de compreender o contexto o suficiente para gerar código útil. Essas sugestões de código podem não conter erros sintáticos, mas devido à sua baixa qualidade, é improvável que sejam adotadas pelos usuários. Por exemplo, o Copilot certa vez gerou um método vazio contendo apenas uma instrução de retorno sem atender aos requisitos especificados no código do usuário (Discussão #6631).


• SUGESTÃO ABSURDA refere-se às sugestões de código fornecidas pelo Copilot que são completamente irrelevantes para as necessidades do usuário ou produzem resultados estranhos. Tais sugestões são consideradas quase inutilizáveis e fornecem pouca assistência heurística ao usuário. Por exemplo, um usuário recebeu um URL falso inacessível gerado pelo Copilot (Discussão nº 14212).


• SUGESTÃO COM BUGS refere-se à situação em que o Copilot consegue gerar código relevante com base no contexto, mas o código sugerido contém alguns bugs. Isso pode fazer com que o programa seja executado, mas não da maneira pretendida pelo desenvolvedor ou, em alguns casos, causando erros ou travamentos. Por exemplo, um usuário relatou que o Copilot sugeriu usar “setState(!state)” em vez de “setState(true)” (Problema nº 43), o que causou um bug lógico no código.


• SUGESTÃO INCOMPREENSÍVEL refere-se à situação em que o Copilot fornece sugestões de código, mas devido à complexidade da lógica do código ou à falta de experiência, os usuários acharam difícil compreender o código sugerido e requerem fonte adicional para verificar sua correção. Por exemplo, um usuário disse “Meu Github Copilot acabou de preenchê-lo automaticamente para mim, então vasculhei a internet tentando encontrar informações relativas a ele, mas não consegui”. (SO #73075410)


• SUGESTÃO COM SINTAXE INVÁLIDA refere-se à situação em que as sugestões geradas pelo Copilot podem conter erros de sintaxe que impedem o correto funcionamento do programa. Um exemplo é quando falta um colchete de fechamento no código sugerido, fazendo com que o editor exiba um erro de sintaxe (Discussão #38941).


• SUGESTÃO MENOS EFICAZ refere-se às sugestões de código geradas pelo Copilot que são funcionalmente corretas e atendem aos requisitos do usuário, mas podem sofrer de eficiência de execução abaixo do ideal ou lógica complicada, impactando potencialmente a qualidade geral do código.


• SUGESTÃO INSEGURA refere-se às sugestões de código geradas pelo Copilot que introduzem vulnerabilidades de segurança. Por exemplo, um usuário indicou que a sugestão de código para ele não tinha responsabilidade pelos tamanhos que estavam sendo lidos (Discussão #6636).


Análise: A qualidade das sugestões de código é um fator essencial para determinar a capacidade do Copilot para desenvolvimento prático de código. Identificamos uma quantidade relativamente pequena de problemas de conteúdo de sugestões, possivelmente indicando que os usuários estão menos inclinados a relatar problemas relacionados ao código sugerido em comparação com problemas relacionados ao uso. Dentre esses problemas, SUGESTÃO DE BAIXA QUALIDADE, SUGESTÃO ABSURDA e SUGESTÃO COM BUGS são os três tipos mais relatados, enquanto SUGESTÃO INSEGURA e SUGESTÃO MENOS EFICAZ são menos prevalentes. Este resultado mostra que a qualidade do código gerado é uma grande preocupação dos usuários, enquanto a segurança e a eficácia não são uma prioridade.


5) Problema de experiência do usuário (4,2%): esta categoria abrange o feedback do usuário sobre sua experiência de uso do Copilot. Comparado ao problema de uso, o Copilot geralmente é executado e funciona conforme o esperado, mas a experiência do usuário é abaixo do ideal. Problemas de experiência do usuário podem surgir devido a cenários de uso específicos ou prevalecer em diversas situações, fornecendo insights sobre áreas onde o Copilot pode ser melhorado. O problema de experiência do usuário pode ser classificado em quatro tipos, detalhados a seguir.


• MÁ EXPERIÊNCIA DE FUNCIONALIDADE refere-se a um tipo de problema de experiência do usuário em que o uso das principais funcionalidades relacionadas à geração de código do Copilot é insatisfatório. Estas questões podem muitas vezes dificultar a coordenação entre os utilizadores e o Copilot e até diminuir a eficiência do trabalho de desenvolvimento real. Por exemplo, um usuário reclamou que as sugestões geradas automaticamente fornecidas pelo Copilot distraíam muito, forçando-o a acionar manualmente a funcionalidade de geração de código (Discussão nº 13007).


• MÁ EXPERIÊNCIA DE ASSINATURA refere-se aos obstáculos que os usuários encontram durante o processo de assinatura dos serviços do Copilot. O Copilot oferece vários métodos de assinatura (por exemplo, verificação de estudante, assinatura paga), causando alguns inconvenientes para os usuários durante o processo de assinatura. Por exemplo, um usuário não tinha certeza do que fazer depois de configurar um faturamento (Discussão nº 19119).


• BAIXO DESEMPENHO refere-se aos problemas de desempenho que ocorrem quando o Copilot está em execução, o que geralmente afeta diretamente a experiência do usuário. Esses problemas incluem alto uso da CPU, longos tempos de resposta e acesso excessivamente frequente ao servidor. • MÁ EXPERIÊNCIA DE AUTENTICAÇÃO refere-se à inconveniência que os usuários encontram ao autenticar suas identidades antes de usar o Copilot. A situação mais comum é que o Copilot solicita frequentemente que os usuários façam login novamente, o que pode ser uma fonte significativa de frustração.


Análise: os problemas de experiência do usuário fornecem informações valiosas sobre a direção para melhorar o Copilot. Entre os problemas de MÁ EXPERIÊNCIA DE FUNCIONALIDADE (25), os problemas mais comumente relatados envolvem sugestões inline do Copilot, causando interrupções no processo de codificação do usuário (5) e a inconveniência de não poder aceitar certas partes do código sugerido (2). Essas preocupações estão alinhadas com algumas das demandas mencionadas pelos usuários nas solicitações de recursos, por exemplo, definir quando o Copilot pode gerar código e o comprimento do código sugerido.


6) Questão de direitos autorais e políticas (3,4%): o Copilot é treinado em um grande corpus de código-fonte aberto e gera sugestões de código com base no contexto do código dos usuários. A forma como o Copilot opera levanta preocupações em relação a possíveis questões de direitos autorais e políticas, conforme expresso por alguns usuários. Esses problemas são divididos em três tipos, conforme mostrado a seguir.


• QUESTÃO DE DIREITOS AUTORAIS DE CÓDIGO refere-se às preocupações levantadas por alguns autores de código em relação ao uso não autorizado de seu código-fonte aberto pelo Copilot para treinamento de modelo. GitHub é atualmente uma das plataformas de hospedagem de código baseadas na web mais populares e, desde o lançamento do Copilot, alguns autores de código têm suspeitas de que seu código hospedado no GitHub foi usado para treinamento sem a devida consideração de sua licença.


• PROBLEMA DE TELEMETRIA DE CÓDIGO refere-se às preocupações expressadas pelos usuários em relação à abordagem do Copilot de coletar seu código para gerar sugestões, o que pode potencialmente resultar no vazamento de código confidencial. Alguns usuários também podem simplesmente não querer ter seu próprio código, bem como o código gerado pelo Copilot para eles, coletado para outros fins.


• VIOLAÇÃO DA POLÍTICA DE MARKETPLACE é um caso específico em que um usuário relatou que o Copilot conseguiu ser publicado no mercado VSCode apesar de usar APIs propostas, enquanto outros plug-ins foram proibidos. O usuário suspeitou que esse comportamento pode violar a Política do Marketplace (Problema nº 3).


Análise: O surgimento de questões de direitos autorais e políticas revela as preocupações dos usuários sobre a forma como o Copilot funciona. O Copilot é treinado em código-fonte aberto multilíngue e também precisa coletar o contexto do código dos usuários durante sua operação para gerar sugestões. Esses dois fatos levaram as pessoas a prestar mais atenção às questões de direitos autorais e propriedade intelectual ao usar o Copilot, especialmente no desenvolvimento interno.


B. Tipo de Causas (RQ2)


  1. Resultados: Identificamos um total de 337 causas, que foram coletadas de 24,1% de todos os problemas, e foram categorizadas em 13 tipos conforme apresentado na Tabela II. O resultado indica que as causas mais frequentes de problemas são problemas internos do Copilot (21,4%) e problemas de conexão de rede (15,4%), com problemas de compatibilidade de editor/IDE (11,1%) e plataforma não suportada (9,2%) também comumente relatados. Os casos específicos, a contagem de ocorrências e a proporção de cada tipo de causa são apresentados na Tabela II. Devido ao limite de espaço, analisamos as cinco causas mais frequentes. É importante notar que certos tipos de problemas podem ser potencialmente as causas de outros problemas.


2) Análise: O problema interno do Copilot, que pode levar a vários tipos de problemas de uso, é o tipo de causa mais comum. Como o Copilot é um projeto de código fechado, seus detalhes internos não são de conhecimento público dos usuários. Portanto, atribuímos problemas upstream relacionados ao Copilot como problema interno do Copilot, abrangendo modelo de linguagem, design funcional e problemas do lado do servidor, que são causados por fatores internos. Normalmente, a identificação do problema interno do Copilot depende do feedback do usuário sobre experiências de uso anormais, que a equipe do Copilot precisará investigar mais detalhadamente para identificar causas subjacentes específicas. Além disso, a ocorrência de problemas internos do Copilot geralmente resulta em um grupo de usuários relatando problemas semelhantes dentro de um determinado período de tempo. Por exemplo, uma implantação incorreta no lado do servidor pode fazer com que um grupo de usuários encontre FALHA DE AUTENTICAÇÃO.


O problema de conexão de rede é um tipo comum de causa que pode levar a falhas de autenticação, exceções de tempo de execução, falhas de acesso e assim por diante. A maioria dos problemas relacionados à rede são atribuídos ao ambiente de rede do usuário. Uma situação comum é que os usuários acessem o Copilot por meio de um proxy HTTP ou VPN, o que pode causar interferência SSL e impedi-los de usar o serviço. No entanto, uma boa notícia é que o Copilot agora suporta acesso através de um proxy HTTP, abordando assim tais preocupações [17].


O problema de compatibilidade do editor/IDE pode levar à geração de vários problemas de uso, incluindo principalmente uso anormal de funcionalidade e problemas operacionais do Copilot e muito mais.


Plataforma não suportada refere-se ao motivo pelo qual alguns usuários não conseguem usar o Copilot de forma eficaz em determinado IDE ou editor de texto, o que leva principalmente a alguns problemas relacionados ao uso e compatibilidade. Como o Copilot não é de código aberto, muitas plataformas não conseguem integrá-lo imediatamente após seu lançamento, o que fez com que alguns usuários encontrassem vários obstáculos ao tentar usá-lo. Portanto, recomendamos que os usuários tentem usar os IDEs que o Copilot suporta oficialmente, pois isso lhes proporcionará um serviço de geração de código mais conveniente e estável, bem como acesso a uma comunidade de discussão madura que pode ajudar a resolver os problemas mais comuns.


Configuração/configuração inadequada é uma das principais causas de uso de funcionalidade e problemas de compatibilidade. Por exemplo, após a instalação do Copilot, sua configuração e definições padrão podem causar mau funcionamento em um IDE específico ou conflito com outros plug-ins. A maioria destes problemas pode ser resolvida através de ajustes de configuração.



C. Tipo de Soluções (RQ3)


  1. Resultados: Identificamos um total de 497 soluções, que foram utilizadas para resolver 35,5% de todos os problemas, e foram categorizadas em 11 tipos conforme mostrado na Tabela III. O resultado revela que a maioria dos bugs de uso foram resolvidos por correções oficiais (Bug corrigido pelo Copilot 27,0%) após feedback do usuário, e quando os usuários tentaram resolver os problemas sozinhos, Modificar configuração/definição (22,1%), Usar versão adequada (17,1% ) e Reinstalar/Reiniciar/Reautorizar o Copilot (12,3%) foram comumente usados como soluções eficazes. As instâncias específicas, a contagem de ocorrências e a proporção de cada tipo de solução são apresentadas na Tabela III. Devido a restrições de espaço, nos concentraremos na interpretação dos resultados das 5 principais soluções, bem como em algumas análises importantes. Deve-se notar que Outros (4,2%) é um conjunto de soluções dedicadas que geralmente são específicas para ambientes e problemas específicos.


O mapeamento entre tipos de problemas e tipos de soluções com a distribuição é mostrado na Tabela IV, utilizando abreviaturas para representar cada tipo de solução. Por exemplo, “BFC” representa Bug corrigido pelo Copilot. O mapeamento mostra que a maioria das soluções é voltada para problemas de uso e de compatibilidade. As principais soluções para solicitações de recursos são principalmente aguardar a implementação oficial de recursos (FIC) ou obter efeitos semelhantes por meio de modificações de configuração ou definição (MCS). Os problemas de experiência do usuário são melhorados principalmente pela equipe Copilot (BFC). Além disso, usar a versão apropriada do Copilot e do editor/IDE (USV) pode levar a uma experiência melhor. Resolver problemas de conteúdo de sugestões é relativamente desafiador, pois apenas alguns podem ser resolvidos através da modificação da forma de entrada (MIW), enquanto a maioria carece de soluções eficazes. As questões de direitos autorais e políticas também têm soluções relativamente limitadas. A principal solução é controlar a coleta de código dos usuários ajustando as configurações do Copilot.


2) Análise: Bug corrigido pelo Copilot é a principal solução para resolver vários problemas, especialmente certos problemas de uso e compatibilidade. Isto é razoável, uma vez que os problemas internos do Copilot são as causas mais frequentes, indicando que muitos problemas do Copilot, como uma nova ferramenta, não podem ser resolvidos pelo esforço dos próprios usuários. Devido à natureza de código fechado do Copilot, os usuários podem apenas fornecer seu feedback e aguardar a resposta e solução da equipe do Copilot.


Modificar configurações/definições é uma solução comum para resolver problemas relacionados a configurações ou definições inadequadas e pode resolver PROBLEMAS DE USO DE FUNCIONALIDADE, PROBLEMAS DE COMPATIBILIDADE DE PLUG-IN e FALHAS DE AUTENTICAÇÃO pelos próprios usuários. Além disso, para algumas solicitações de recursos, os usuários podem obter a funcionalidade desejada simplesmente fazendo algumas alterações na configuração, como alterar a ligação de atalhos do teclado para aceitar sugestões de código. No entanto, descobrimos que, devido à complexidade dos ambientes de execução do Copilot, é difícil fornecer uma configuração recomendada que seja adequada para todas as situações. Portanto, cada caso deve ser analisado individualmente.


Usar versão adequada fornece uma maneira eficaz de resolver problemas de configuração/operação, problemas de uso de funcionalidade, problemas de instalação e problemas de compatibilidade de editor/IDE. O Copilot foi rapidamente iterado em muitas versões com base no feedback do usuário e nos planos de desenvolvimento. Enquanto isso, alguns IDEs também lançaram novas versões para serem compatíveis com ele. No entanto, algumas versões mais antigas podem ser mais estáveis em comparação com a mais recente, que pode conter alguns bugs ou problemas de compatibilidade. Assim, utilizar a versão adequada é uma solução altamente eficaz para os usuários.


Reinstalar/reiniciar/reautorizar o Copilot é outra solução para os usuários simplesmente resolverem FALHAS DE AUTENTICAÇÃO, PROBLEMAS DE CONFIGURAÇÃO/OPERAÇÃO e PROBLEMAS DE USO DE FUNCIONALIDADE por conta própria. Seu princípio é redefinir o estado atual do Copilot, retornando quaisquer erros ou configurações anteriores que possam ter existido ao seu estado inicial.


O recurso implementado pelo Copilot atua como uma ação oficial que atende principalmente às solicitações de recursos do usuário. A velocidade de desenvolvimento dos novos recursos do Copilot é relativamente rápida e a equipe do Copilot está atualmente experimentando alguns dos recursos mais recentes do Copilot X [18].