Análise Estática de Código com FindBugs

Veja neste artigo o que é o FindBugs e como utilizá-lo, além de descrever a sua instalação, quais tipos de erros são descobertos pela ferramenta e qual o gravidade desses erros encontrados.

Introdução

A Verificação de software se destina a mostrar que o projeto do software atende à sua especificação, enquanto que validação se destina a mostrar que o software realiza exatamente o que o usuário espera que ele faça.

O objetivo principal do processo de V&V é estabelecer confiança de que o sistema de software está adequado ao seu propósito. O nível de confiabilidade exigido depende de fatores como função do software, expectativas do usuário, ambiente e mercado.

Segundo Sommerville, existem duas abordagens complementares para a verificação e validação do sistema:


- Inspeções de software analisam e verificam representações de sistema como documentos de requisitos, diagramas de projeto e código fonte do programa. Revisões de código, análises automatizadas e verificação formal são técnicas de V&V estáticas.

Por outro lado, verificação formal consiste em validar ou invalidar a correção dos algoritmos subjacentes a um sistema com relação a uma certa propriedade ou especificação formal, utilizando métodos formais.

As técnicas de inspeção de software podem somente verificar a correspondência entre um programa e sua especificação, isto indica que elas não podem demonstrar que o software é útil operacionalmente, nem utilizá-las para verificar propriedades emergentes como desempenho e confiabilidade.

O FindBugs é uma ferramenta de código aberto utilizado pelos desenvolvedores de software para fazer uma auditoria ou inspeção no código de forma automatizada. Esta ferramenta examina as sua classes procurando por possíveis problemas no código durante a fase de desenvolvimento. O FindBugs analisa o código fonte ou mesmo o código objeto (bytecode para programas Java) do programa procurando por padrões conhecidos.

Instalação

Segue abaixo a instalação passo a passo do plugin FindBugs no seu ambiente de desenvolvimento Eclipse.

Primeiramente vá no menu Help e em seguida selecione a opção “Install New Software...”.


Figura 1: Primeiro passo na instalação do FindBugs

Na janela que foi aberta digite o endereço do site do FindBugs. Após isso aparecerá uma opção para marcar o FindBugs.


Figura 2: Inserindo o site para a instalação do FindBugs

Marque a opção FindBugs e clique em Next. Após isso a instalação será iniciada. O usuário deve aguardar alguns minutos até a operação ser completada, como pode ser visto na tela abaixo:


Figura 3: Finalizando a instalação do FindBugs

Por fim dê um Next e marque a opção “I accept the terms of license agreement”. Clique em Finish para completar a instalação.

Utilização

Para utilizar o FindBugs é muito simples, basta ir no projeto, pacote ou classe em que deseja-se fazer a análise estática e clicar com o botão direito do mouse e ir no menu Find Bugs e na opção Find Bugs.


Figura 4: Executando o FindBugs

Após isso tem-se um relatório completo de todas as anomalias existentes no pacote ou classe selecionada. Na figura abaixo a view Bug Explorer apresenta a existência de algumas anomalias para o projeto selecionado.


Figura 5: Relatórios de bugs do FindBugs

O FindBugs é criterioso e apresenta um relatório bem interessante. Entre as informações interessantes que o Find Bugs pode informar tem-se:

Atualmente a ferramenta FindBugs provê suporte a mais de 250 padrões de erros sendo mais de uma centena deles classificados como erros de correção. Além disso, permite que programadores escrevam seus próprios padrões de erros.

Com o relatório exposto pelo FindBugs é possível que os desenvolvedor, arquitetos e líderes de projetos avaliem melhor o código, o projeto e inclusive a equipe sob uma outra perspectiva, além de fornecer um feedback de onde os desenvolvedores estão mais desatentos.

Relevância dos Defeitos

Um estudo interessante foi realizado por Araújo Filho, José de Souza e Valente que baseado em um estudo em cima da plataforma Eclipse concluíram que ao adotar ferramentas de análise estática, como o FindBugs, é fundamental que os desenvolvedores configurem e adaptem os tipos de defeitos reportados por tais ferramentas ao perfil do sistema que está sendo analisado. Dessa forma, o número de defeitos não-relevantes – ou falso positivos – reportados por tais ferramentas é substancialmente reduzido, chegando a ser inferior a 60% na maioria dos casos.

Outro artigo interessante foi proposto por Ayewah et al. que investigaram os defeitos reportados pela ferramenta FindBugs em três sistemas de grande porte como Sun JDK, Glassfish e Google Java Code base. Este trabalho avaliou a qualidade dos defeitos reportados pelo FindBugs além de discutir os motivos pelos quais ferramentas de análise estática reportam muitos defeitos triviais e falsos positivos. No entanto, vale ressaltar que foram encontrados neste estudo em cima do JDK um número de 10% de erros sérios e 46% possuíram algum impacto. Isso mostra como essa ferramenta também pode ser bem utilizada para encontrar defeitos que podem comprometer o sistema.

Conclusão

Neste artigo procurou-se demonstrar conceitos, funcionamento, instalação e tipos de resultados encontrados pela ferramenta de análise estática de código FindBugs. Essa importante ferramenta auxilia os desenvolvedores a encontrar erros escondidos ou por muitas vezes que passam despercebidos nos códigos feitos pelos programadores. O FindBugs apesar de encontrar diversos falsos positivos ainda encontra erros graves que podem comprometer um sistema, ajudando assim o desenvolvedor a manter a sua aplicação mais estável e confiável.

Bibliografia

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados