Artigo Java Magazine 36 - Cobertura de Testes na Prática
Artigo Publicado pela Java Magazine 36.
Clique aqui para ler esse artigo em PDF.
Cobertura de Testes na Prática
Usando o Emma para determinar a cobertura de testes de aplicações Java
Vinícius Manhães Teles
Quando desenvolvemos testes automatizados para uma aplicação é importante avaliar se eles estão alcançando todas as partes do sistema. O Emma é uma ferramenta open source que ajuda nesta tarefa, fazendo a análise da cobertura de testes de um projeto Java e gerando um relatório em formato texto ou HTML. Esse relatório representa um feedback importante para os desenvolvedores, pois indica quais áreas do projeto ainda não estão sendo cobertas por testes automatizados e portanto devem ser tratadas prioritariamente.
Neste artigo veremos os conceitos fundamentais do Emma e como funciona a ferramenta. Também mostraremos como instalar e usar o Emma e como analisar a cobertura de testes em suas aplicações.
Exemplo de uso
Antes de descrever em detalhes o funcionamento do Emma, vamos ver através de um exemplo o tipo de resultado que ele pode nos prover. Para isso, iremos implementar uma pequena classe, contendo um único método. Esse método recebe um inteiro positivo e retorna o número correspondente na seqüência de Fibonacci. O exemplo pode ser acompanhado mesmo sem saber detalhes de como calcular os números de Fibonacci. Em todo o caso, a regra de geração desses números é simples:
fibonacci(0) = 0
fibonacci(1) = 1
fibonacci(n) = fibonacci(n-2) + fibonacci(n-1)
Se o método recebe um número maior que 1, o retorno é a soma de cada um dos números de fibonacci de seus dois antecessores. Por exemplo, fibonacci(10) == fibonacci(8) + fibonacci(9).
O código da classe que contém o método fibonacci() encontra-se na Listagem 1 e a classe de teste correspondente está na Listagem 2. Depois veremos como gerar o relatório do Emma indicando a cobertura de teste da classe, mas por enquanto você já pode ver o resultado da análise do Emma na Figura 1.
Figura 1. Resumo da cobertura de testes do projeto inteiro.
No topo desse relatório, o Emma indica o percentual de cobertura das classes, métodos e blocos (explicados mais adiante). Por exemplo, a análise da cobertura de linhas indica 100% (6/6), significando que todas as linhas executáveis existentes foram exercitadas pelos testes.
Abaixo dessa informação, o Emma apresenta um resumo da quantidade de pacotes no projeto, bem como arquivos executáveis, classes, métodos e linhas executáveis. Por último, o Emma mostra a análise dos pacotes do sistema, informando o percentual de cobertura das classes de cada um, bem como de seus respectivos métodos, blocos e linhas.
No relatório de cobertura do Emma, é possível obter mais detalhes sobre a cobertura de cada pacote, clicando em seu nome. Nesse exemplo, ao clicar no pacote jm o Emma nos apresenta mais informações sobre ele, como ilustrado na Figura 2. No topo aparece um resumo do percentual de cobertura das classes, métodos, blocos e linhas do pacote. Mais abaixo, esses mesmos percentuais são apresentados novamente, agrupados por classe. Nesse caso em particular, só há uma classe, para a qual o Emma indica 100% de cobertura.
Figura 2. Resumo da cobertura de testes do pacote jm." [...] continue lendo...
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo