Your bank is using your money. You’re getting the scraps.WATCH FREE

O aprendizado por reforço surge como um divisor de águas para os testes unitários no desenvolvimento de software

Neste post:

  • Os grandes modelos de linguagem (LLMs, na sigla em inglês) têm problemas para gerar testes unitários precisos devido a "alucinações"
  • O aprendizado por reforço, uma abordagem de tentativa e erro, está surgindo como uma solução melhor para automatizar a escrita de testes unitários.
  • O Diffblue Cover, utilizando aprendizado por reforço, consegue criar testes unitários de forma autônoma, superando os LLMs em tarefas de teste complexas.

No mundo do desenvolvimento de software, precisão e exatidão são fundamentais. Escrever testes unitários robustos é um passo crucial para garantir a confiabilidade e a funcionalidade de aplicativos de software. Embora grandes modelos de linguagem ( LLMs ), como o ChatGPT, tenham impressionado a comunidade de IA com sua capacidade linguística, quando se trata da complexa tarefa de testes unitários, um novo concorrente surgiu como uma solução mais precisa e econômica: o aprendizado por reforço.

O desafio das alucinações do LLM

Os grandes modelos de linguagem revolucionaram o processamento de linguagem natural, oferecendo respostas altamente fluentes e contextualmente relevantes. No entanto, eles não estão isentos de limitações. Um dos principais problemas que afetam os grandes modelos de linguagem é o fenômeno da alucinação, em que geram textos que, emboramaticcorretos e semanticamente plausíveis, são, em última análise, incorretos ou sem sentido. Essa limitação tem gerado preocupação entre os especialistas.

Aprendizado por Reforço vs. LLMs

O debate sobre a eficácia do aprendizado por reforço versus grandes modelos de linguagem para lidar com os desafios dos testes unitários tem sido constante. Alguns especialistas, incluindo Ilya Sutskever da OpenAI, acreditam que o aprendizado por reforço, quando combinado com feedback humano, tem o potencial de eliminar as alucinações dos grandes modelos de linguagem. No entanto, outros, como Yann LeCun da Meta e Geoff Hinton, ex-Google, argumentam que falhas fundamentais nos grandes modelos de linguagem os tornam menos adequados para essa tarefa.

Os testes unitários são um aspecto crítico do desenvolvimento de software, garantindo que os componentes individuais de uma aplicação funcionem conforme o esperado. Eles não apenas garantem a precisão do código, mas também economizam tempo e aumentam a produtividade. Embora as ferramentas de gerenciamento de código (LLMs) possam sugerir trechos de código para teste, elas geralmente priorizam a generalização em detrimento da precisão, deixando para os desenvolvedores a responsabilidade de verificar a eficácia do código gerado.

O Copilot do GitHub, baseado no derivado do GPT-3 da OpenAI, oferece sugestões de código para testes unitários, mas não gera testes unitários explicitamente. Ele fornece aos desenvolvedores trechos de código para testar vários cenários, servindo como um valioso ponto de partida para a escrita de testes unitários abrangentes. No entanto, o Copilot não substitui uma estratégia de testes completa, pois a supervisão humana continua sendo essencial.

Veja também  Litecoin : LTC ultrapassa US$ 170 e mira US$ 180 em seguida?

Apresentando o TiCoder

Para lidar com os desafios dos testes unitários, pesquisadores da Microsoft Research, da Universidade da Pensilvânia e da Universidade da Califórnia, em San Diego, desenvolveram o TiCoder (Test-driven Interactive Coder). Essa ferramenta inovadora utiliza processamento de linguagem natural e algoritmos de aprendizado de máquina para auxiliar os desenvolvedores na geração de testes unitários.

O TiCoder interage com os desenvolvedores fazendo perguntas para refinar sua compreensão da intenção deles. Em seguida, oferece sugestões e opções de autocompletar com base no contexto, sintaxe e linguagem do código. Além disso, o TiCoder gera casos de teste e sugere asserções, facilitando o processo de teste unitário.

Tanto o Copilot quanto o TiCoder, juntamente com outras ferramentas baseadas em LLM (Learning Learning Machine), agilizam a criação de testes unitários. No entanto, eles funcionam como assistentes de IA para programadores humanos que precisam validar e aprimorar seu trabalho. Essas ferramentas aumentam a produtividade, mas não substituem a expertise humana no processo de desenvolvimento de software.

Geoff Hinton, uma figura proeminente na área de IA que deixou o Google recentemente, enfatiza a importância do aprendizado por tentativa e erro. Ele traça um paralelo com a forma como as pessoas aprendem a praticar esportes como basquete — por meio da prática e da experimentação. O aprendizado por reforço, uma poderosa técnica de IA, está alinhado a esse conceito e tem demonstrado desempenho excepcional em tarefas como jogos.

Capa da Diffblue: A pioneira do aprendizado por reforço

Um exemplo notável de aprendizado por reforço em ação é o Diffblue Cover. Este produto inovador utiliza aprendizado por reforço para gerar testes unitários executáveis ​​de forma autônoma, sem intervenção humana. Ele tem o potencial de automatizar tarefas de teste complexas e propensas a erros em larga escala.

Veja também:  Lavagem de criptomoedas: Binance é fundamental para a prisão de grupo de lavagem de dinheiro na Ucrânia

A abordagem do Diffblue Cover envolve pesquisar o vasto espaço de métodos de teste possíveis, escrevermatico código de teste para cada método e selecionar o teste mais adequado com base em vários critérios, incluindo cobertura de teste e estilo de codificação. Essa ferramenta baseada em IA pode criar testes para cada método em segundos e fornecer o melhor teste para uma unidade de código em apenas um ou dois minutos.

A metodologia do Diffblue Cover é semelhante à do AlphaGo, o sistema da DeepMind para jogar o jogo de Go. Ambos os sistemasdentáreas críticas dentro de um vasto espaço de busca e empregam aprendizado por reforço para tomar decisões informadas. No caso do Diffblue Cover, isso envolve a geração de métodos de teste unitário e a seleção dos testes mais eficazes por meio de um processomatic .

As limitações dos LLMs

Quando se trata de tarefas como automatizar a escrita de milhares de testes unitários para um programa complexo, o aprendizado por reforço supera os grandes modelos de linguagem. Os modelos de linguagem, apesar de sua capacidade linguística, carecem da habilidade de supervisão e correção humana eficazes nessa escala. Aumentar a complexidade dos modelos de linguagem não resolve esse problema fundamental.

Embora modelos de linguagem de grande porte, como o ChatGPT, tenham atraído atenção por sua fluência e conhecimento, eles podem não ser a escolha ideal para tarefas precisas, como testes unitários no desenvolvimento de software. O aprendizado por reforço surgiu como uma solução mais precisa e econômica, demonstrando seu potencial para revolucionar a área. 

Com a crescente demanda por confiabilidade de software, a integração do aprendizado por reforço nos processos de teste pode representar um avanço significativo no cenário de desenvolvimento de software.

As mentes mais brilhantes do mundo das criptomoedas já leem nossa newsletter. Quer participar? Junte-se a elas .

Compartilhar link:

Aviso Legal. As informações fornecidas não constituem aconselhamento de investimento. O Cryptopolitan não se responsabiliza por quaisquer investimentos realizados com base nas informações fornecidas nesta página. Recomendamos tron a realização de pesquisas independentes dent /ou a consulta a um profissional qualificado antes de tomar qualquer decisão de investimento.

Mais lidas

Carregando os artigos mais lidos...

Fique por dentro das notícias sobre criptomoedas e receba atualizações diárias na sua caixa de entrada

Escolha do editor

Carregando artigos selecionados pela equipe editorial...

- A newsletter de criptomoedas que te mantém sempre um passo à frente -

Os mercados se movem rapidamente.

Nós nos movemos mais rápido.

Assine o Cryptopolitan Daily e receba informações oportunas, precisas e relevantes sobre criptomoedas diretamente na sua caixa de entrada.

Inscreva-se agora e
não perca nenhum lance.

Entre. Informe-se.
Saia na frente.

Inscreva-se no CryptoPolitan