banner
Lar / blog / Misailovic
blog

Misailovic

Dec 27, 2023Dec 27, 2023

29/08/2023 09:00:00 Michael O'Boyle

A professora de CS de Illinois, Sasa Misailovic, deseja aplicar o processamento de linguagem natural ao desenvolvimento de software profissional, permitindo que os desenvolvedores identifiquem casos em que o software pode apresentar comportamento inesperado ou indesejável.

Escrito por Michael O'Boyle

O processamento de linguagem natural é o campo da ciência da computação que sustenta o recente boom da tecnologia chatbot, permitindo que a linguagem humana seja processada por computadores e que os resultados computacionais sejam renderizados em formas compreensíveis pelos humanos. Embora seus usos potenciais em quase todas as áreas da sociedade sejam frequentemente discutidos, Sasa Misailovic, professor de ciência da computação de Illinois, deseja aplicá-lo ao desenvolvimento de software profissional.

Em particular, ele está interessado no desenvolvimento de código de teste, permitindo aos desenvolvedores identificar casos em que o software pode apresentar comportamento inesperado ou indesejável. Com seus colaboradores da Universidade do Texas em Austin, Misailovic está desenvolvendo modelos de linguagem natural que podem processar instruções de desenvolvedores e retornar código de teste pronto para uso. Eles chamam sua abordagem de “NLP4Test”.

“Nosso objetivo é melhorar a prática de desenvolvimento e teste de software”, disse Misailovic. “Estamos procurando como o processamento de linguagem natural pode substituir a demorada prática de teste manual de software e liberar os desenvolvedores para se concentrarem em outras tarefas.”

O prêmio de US$ 1,2 milhão é fornecido por meio do programa Software and Hardware Foundations da National Science Foundation e será distribuído ao longo de quatro anos. Misailovic é co-investigador principal.

Os desenvolvedores de software avaliam seu trabalho imaginando maneiras pelas quais seu código pode se comportar mal ou retornar respostas incorretas e escrevendo casos de teste que criam essas condições, tirando tempo do desenvolvimento real. Os desenvolvedores também podem descobrir que seus casos de teste falham, mesmo que o código funcione conforme planejado. Esses chamados testes “instáveis” podem levar os desenvolvedores a perseguições inúteis que consomem ainda mais tempo e lançam dúvidas sobre trabalhos válidos.

Os pesquisadores estão investigando o uso do processamento de linguagem natural, que pode transformar instruções ou comentários da linguagem humana em código de teste. Misailovic está interessado em desenvolver modelos para gerar testes que exponham bugs em software de aprendizado de máquina e modifiquem o código de teste para evitar “fragilidade”. Ele desenvolverá o trabalho iniciado com o ex-aluno de pós-graduação Saikat Dutta, que começará como professor assistente de ciência da computação na Universidade Cornell no próximo ano.

“Por exemplo, os dados gerados à medida que o programa é executado podem ser um complemento poderoso ao processamento de linguagem natural porque a instabilidade não é algo que pode ser previsto com certeza apenas a partir do código do programa”, disse Misailovic. “Se dados de execução adicionais fossem incorporados ao NPL4Test, isso permitiria aos desenvolvedores fazer perguntas como 'Aqui está um trecho de código que escrevi e um teste que falhou. A falha é devido a um bug ou instabilidade?' e 'Qual é a melhor maneira de começar a depurar esse problema?'”

Ao estudar esses problemas, os pesquisadores terão uma série de técnicas que geram código de teste para melhorar a confiabilidade do software de aprendizado de máquina e dar uma melhor compreensão de como avaliar a instabilidade.

Os colaboradores de Misailovic na UT Austin, o professor de ciência da computação Milos Gligoric e os professores de linguística Jessy Li e Kyle Mahowald, estudaram anteriormente a aplicação do processamento de linguagem natural e da engenharia de software. Eles agora estão incorporando desenvolvimentos recentes no processamento de linguagem natural em todos os estágios de teste de software.

Esta história foi publicada em 29 de agosto de 2023.