Escrever código é apenas o primeiro passo para criar algo. Examinar seu código em busca de bugs e consertá-los é demorado e geralmente leva mais tempo do que o previsto, mas é uma etapa essencial, no entanto.

Se ao menos houvesse uma maneira de corrigir bugs automaticamente que vai além dos erros de sintaxe e realmente entende as intenções por trás do seu código.

Recentemente, a Microsoft desenvolveu uma IA capaz de detectar e corrigir bugs no código usando aprendizado profundo. Mas como essa tecnologia revolucionária passou a existir e como ela funciona?

O que é o BugLab e como ele funciona?

BugLab é uma implementação de Python de inteligência artificial que procura e corrige bugs dentro do código. Foi desenvolvido por Miltos Alamanis e Marc Brockschmidt, dois pesquisadores da Microsoft Research. Eles conseguiram superar a falta de dados rotulados frequentemente usados ​​em aprendizado de máquina recorrendo ao aprendizado autossupervisionado e permitindo que o BugLab se treine por meio de um jogo de “esconde-esconde” com linhas de código.

instagram viewer

O BugLab foi treinado usando dois modelos de computação; um que esconde bugs dentro de trechos corretos de código e outro que busca e corrige os bugs. Ambos os modelos aprendem continuamente um com o outro. Com o tempo, o seletor de bug torna-se melhor em ocultar bugs no código e o detector torna-se melhor em capturá-los e corrigi-los.

Compreendendo o código com o BugLab

A maioria dos bugs que o BugLab AI é treinado para detectar e corrigir não resulta em erros lógicos, mas apenas como resultado do contexto geral do código. Compreender a intenção do desenvolvedor é essencial para encontrar esses bugs.

Tratar trechos de código da mesma maneira que processar linguagens naturais produz resultados abaixo do ideal. Ainda é difícil para a IA entender a relação entre as diferentes declarações quando elas são divididas em tokens individuais.

Em vez disso, o BugLab analisa o código como um todo. Dessa forma, cada sintaxe, expressão, símbolo e identificador são representados como pontos em um gráfico, permitindo que a IA “entenda” a conexão e o relacionamento entre vários nós.

Arquiteturas de rede neural são então usados ​​para treinar o AI de depuração. Eles são capazes de obter insights da rica estrutura do gráfico de código e fornecer razões para o relacionamento de cada nó com os outros.

O BugLab funciona em código da vida real?

É importante observar que o BugLab não substitui um programador habilidoso. Isso porque bugs complexos ainda não estão ao nosso alcance.

O objetivo da Microsoft com a IA é detectar e corrigir bugs que ocorrem comumente, como operadores booleanos incorretos, como o uso de "ou" em vez de "e" e vice-versa, além de comparações de valor invertido e variável mau uso.

De acordo com Microsoft, os resultados são promissores, já que o BugLab é capaz de detectar e corrigir automaticamente cerca de 26% dos bugs em um trecho de código. Ainda assim, uma porcentagem significativa de precisão ainda é perdida devido a falsos positivos e bugs perdidos.

Futuras aplicações do Microsoft BugLab

O objetivo da Microsoft com o BugLab é economizar o tempo dos desenvolvedores de software, muitas vezes gasto revisando seu código em busca do menor dos bugs.

Embora o modelo de depuração de IA ainda esteja em andamento, ele tem a chance de encontrando e corrigindo bugs que variam de inconveniente a catastrófico. Mas em alguns anos, você pode esperar que o BugLab se torne um item obrigatório no kit de ferramentas de todos os desenvolvedores, mesmo que não seja perfeito.

A evolução exponencial da IA ​​de autoaprendizagem

Quanto mais tempo os modelos de IA como o BugLab têm para treinar em exemplos da vida real, melhores e mais precisos resultados eles produzirão.

Um dos obstáculos mais desafiadores que os pesquisadores da Microsoft enfrentaram durante o desenvolvimento do BugLab foi empregar uma compreensão humana de código e intenção na ferramenta. Mas agora que isso está praticamente resolvido, você pode esperar que o BugLab fique melhor com o tempo.

Aprendizado Profundo vs. Aprendizado de máquina vs. AI: Como eles vão juntos?

Está tentando descobrir a diferença entre inteligência artificial, aprendizado de máquina e aprendizado profundo? Aqui está o que todos eles significam.

Leia a seguir

CompartilhadoTweetE-mail
Tópicos relacionados
  • Programação
  • Microsoft
  • Dicas de codificação
  • Inteligência artificial
Sobre o autor
Anina Ot (89 artigos publicados)

Anina é redatora freelance de tecnologia e segurança da Internet na MakeUseOf. Ela começou a escrever sobre segurança cibernética há 3 anos na esperança de torná-lo mais acessível para o cidadão comum. Adora aprender coisas novas e é um grande nerd em astronomia.

Mais de Anina Ot

Assine a nossa newsletter

Junte-se ao nosso boletim informativo para dicas de tecnologia, análises, e-books grátis e ofertas exclusivas!

Clique aqui para se inscrever