Dissertação

Prioritizing Facebook's Infer Static Analysis Tool Warnings EVALUATED

O Infer é uma ferramenta de Análise Estática que analisa código estaticamente e retorna avisos sobre erros e possíveis bugs. O Infer devolve estes avisos aos programadores sem uma ordem especifica e sem atribuir a cada aviso um nível de prioridade. Neste trabalho, focamos-nos no problema relativo ao facto de um número significativo destes avisos possam ser falsos positivos. É importante manter o controlo sobre o número de falsos positivos pelo facto de que eles podem influenciar negativamente os utilizadores deste tipo de ferramentas, fazendo-os perder confiança na própria ferramenta que estão a usar e perder tempo na análise de avisos que na realidade não são erros. Neste trabalho, fazemos uma revisão do estado-da-arte relativo à classificação de avisos provenientes de ferramentas de análise estática e desenvolvemos um Modelo de Linguagem Neuronal, baseado em redes LSTM, capaz de modelar com sucesso o resultado da execução simbólica do Infer, permitindo por sua vez a deteção de padrões que conduzem à origem de avisos que são falsos positivos. Avaliamos este modelo em dois cenários diferentes e considera-se o uso de diferentes técnicas de preparação de dados para o uso de redes LSTM mostrando que esta preparação tem um impacto significativo na precisão da classificação. Em geral, este estudo mostra que o modelo proposto é capaz de identificar corretamente avisos do Infer que são falsos positivos e consequentemente capaz de melhorar a usabilidade e a eficácia da ferramenta de análise estática Infer ao priorizar os avisos que são verdadeiros positivos.
Infer, Análise Estática, Identificação de Falsos Positivos, Priorização de Avisos, Aprendizagem.

novembro 12, 2020, 16:30

Publicação

Obra sujeita a Direitos de Autor

Orientação

ORIENTADOR

João Fernando Peixoto Ferreira

Departamento de Engenharia Informática (DEI)

Professor Auxiliar

ORIENTADOR

Rui Filipe Lima Maranhão de Abreu

Faculdade de Engenharia da Universidade do Porto

Professor Catedratico