Cobertura de código com testes unitários como métrica de qualidade  XML
Índice dos Fóruns » Metodologias de Desenvolvimento e Testes de Software
Autor Mensagem
Ferryman
JavaGuru
[Avatar]

Membro desde: 26/10/2006 16:30:23
Mensagens: 220
Offline

Saudações gujeiros,

O que vocês acham de utilizar como métrica de qualidade, os índices de cobertura do código com testes unitários.

Na minha opinião, a porcentagem gerada pelo cobertura é um número muito falho.

Na empresa onde trabalho estão discutindo a possibilidade de falhar a build caso um determinado índice de cobertura não seja atingido. Ao meu ver, isso vai causar alguns problemas, pois somente para atingir a meta, vai ter teste unitário pra coisas inúteis como por exemplo get/set/EntityManager.Persist etc.
Pode acontecer também de ter sistemas com vários testes inúteis, e o CORE das regras de negócio estarem mal testados, porém o projeto como um todo ficar com uma boa taxa de cobertura.

Atualmente utilizamos o "Cobertura" com o maven, porém as configurações dele não são muito boas. Possuímos apenas configuração de patterns de nomes de classes que não desejamos testar.

Existe alguma outra ferramenta de cobertura que possa ser ter uma configuração melhor como por exemplo patterns para os nomes dos métodos que serão testados, quantidades de linhas do método etc?

Obrigado
[]s



Rafael Farias Silva (@rafaferry)

Jsigner - Engenharia reversa automática através do maven. Acesse http://code.google.com/p/jsigner
[Email] [WWW]
s4nchez
Virtual Machine Man
[Avatar]

Membro desde: 05/06/2006 11:35:55
Mensagens: 674
Localização: London, UK
Offline

Impor um limite minimo para cobertura durante o build eh besteira. Primeiro porque este numero nao comprova qualidade dos testes. Segundo porque forca os programadores a escreverem testes sem questionar sua necessidade.

Minha sugestao eh: faca essa metrica visivel e discuta estes valores periodicamente. A equipe pode aprender licoes importantes conversando sobre cobertura de testes, sem que para isso precisem conviver com uma nova restricao.

Ivan Sanchez | coding dojo | blog | twitter
[WWW]
fabiofalci
GUJ Master
[Avatar]

Membro desde: 11/04/2006 09:23:14
Mensagens: 1057
Localização: Porto Alegre - RS
Offline

Números são uma droga. Já vi empresas onde os funcionários se matam pra atingir
índices de tarefas feitas, sem nenhuma preocupação com a qualidade.
[WWW] [MSN] [ICQ]
Ferryman
JavaGuru
[Avatar]

Membro desde: 26/10/2006 16:30:23
Mensagens: 220
Offline

Pois é, eu tenho a mesma opinião de vocês.

Agora, já que temos que comparar números, gostaria de conseguir ajustar melhor o que entra nesse número. Um amigo comentou uma vez de um patch pro cobertura que analisava o bytecode gerado e se fosse um método "trivial", ele não era considerado pelo plugin. Os métodos triviais eram métodos acessores onde soh havia atribuição / leitura de objetos. Vocês usam alguma coisa assim?

Obrigado
[]s

Rafael Farias Silva (@rafaferry)

Jsigner - Engenharia reversa automática através do maven. Acesse http://code.google.com/p/jsigner
[Email] [WWW]
fabiofalci
GUJ Master
[Avatar]

Membro desde: 11/04/2006 09:23:14
Mensagens: 1057
Localização: Porto Alegre - RS
Offline

Acho que esse número de cobertura é uma consequência. O objetivo é fazer o software.
Se fizer direito vai ter uma cobertura boa de teste e isso não é necessariamente 100%.
Uma vez o s4nchez colocou num post aqui um link, de uma métrica boa para acompanhar
http://xprogramming.com/xpmag/jatRtsMetric

Isso sim vale a pena acompanhar.
[WWW] [MSN] [ICQ]
Emerson Macedo
Virtual Machine Man
[Avatar]

Membro desde: 01/08/2006 16:55:28
Mensagens: 689
Localização: Rio de Janeiro - RJ
Offline

Exigir percentual mínimo de cobertura pode ser reflexo do mau entendimento de para que servem os testes. Não acho que faça sentido 100% de cobertura. Eu acredito mais em testar o comportamento do seu software. Se testando bem o comportamento você atingir 100% de cobertura, muito bem. Se não, que diferença isso faz?

[]s

Emerson Macedo Leite
PMP - Ping-pong Master Player
CSM - Counter-Strile Manager
http://codificando.com

"Porque, assim como o relâmpago sai do oriente e se mostra até o ocidente, assim será também a vinda do filho do homem." - Mateus 24:27
[Email] [WWW] [Yahoo!] [MSN] [ICQ]
YvGa
Virtual Machine Man

Membro desde: 07/03/2007 15:58:16
Mensagens: 517
Offline

Eu acho que isso pode ter o efeito contrario ao que se espera.

Escrevendo testes inuteis os programadores vao se encher dos testes e parar de escrever tambem os uteis. No final das contas vao notar que essa abordagem nao funcionam e ainda de quebra criarao aversao a teste unitario nos programadores.

Paulo Borio
 
Índice dos Fóruns » Metodologias de Desenvolvimento e Testes de Software
Ir para:   
Powered by JForum 2.1.8 © JForum Team