Cobertura: Uma métrica para aferir testes

Cobertura (em inglês, Code Coverage) é uma métrica utilizada para medir a quantidade de código que foi testada por um conjunto de caso de testes.

Será demonstrado nesse artigo um pequeno passo a passo para verificar a cobertura de código nos testes criados anteriormente.

Ferramentas

Há inúmeras ferramentas e plugins criados que implementam a verificação do percentual de cobertura de testes, sendo que as mais famosas são a Emma [1] e Cobertura [2]. Neste artigo será demonstrado o uso do plugin EclEmma [3]. Sua instalação é realizada através do Eclipse Marketplace.

Execução

Como base será utilizado o código escrito no artigo “Melhorando os testes escritos com JUnit”. Basta abrir a classe de teste e executar o plugin através do menu Run > Coverage As… > JUnit Test

Será exibida uma janela contendo o resumo da execução:

Figura 1 - Resumo da Execução do plugin EclEmma

Figura 1 – Resumo da Execução do plugin EclEmma

E a janela de código será atualizada:

Figura 2 - Janela de código atualizada após a execução

Figura 2 – Janela de código atualizada após a execução

As cores possuem os seguintes significados:

  • Vermelho: Código não executado
  • Amarelo: Código executado parcialmente
  • Verde: Código executado

Um ponto importante a ser lembrado é que mesmo código executado pode não ser contabilizado, como os casos de teste com o atributo expected configurado [4].

Conclusão

A cobertura de testes é uma métrica meramente quantitativa e não deve ser utilizada para aferir a qualidade de um conjunto de testes, tem como objetivo apenas demonstrar, percentualmente, quanto do código foi efetivamente executado durante o teste. Deve ser levada em consideração para identificar pontos com nenhum (ou quase nenhum) teste executado.

Referências

Links Externos

Por MARCO ANTONIO ROCHA

Pai, marido, nerd e programador (não necessariamente nessa ordem). Analista de Sistemas ancorado na MATERA desde 2008. Desenvolvedor Java na maior parte do tempo, fuçador em tempo integral.

Postado em: 16 de janeiro de 2014

Confira outros artigos do nosso blog

REST não é JSON

21 de agosto de 2017

Bruno Sofiato

[Webinar] Profile de aplicações Java com Oracle Mission Control e Flight Recorder

24 de julho de 2017

Danival Calegari

Criando Mocks de serviços REST com SoapUI

27 de junho de 2017

Monise Costa

JavaScript 6: diferença entre var, let e const

09 de maio de 2017

Otávio Felipe do Prado

Deixe seu comentário