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.
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.
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
- Programação
- Microsoft
- Dicas de codificação
- Inteligência artificial
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.
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