Friday 6 September 2013

Testar ou não testar....

No projecto que estou envolvido  temos a obrigação de manter uma percentagem  muito elevada de cobertura por testes unitários e desde à algum tempo que tenho vindo a desafiar os meus colegas sobre este assunto, o que temos e o que não temos que testar no nosso software.

Muitos de vós irão dizer sem pensar: "Temos que testar tudo!", mas, aqui é que reside o problema, o que é tudo?

Será que esse tudo quer dizer que devo testar se a minha ViewModel tem o [ImportingConstructor] no constructor ou se tem o [Export] na class, ou ainda se todas as propriedades tem o "OnPropertyChange"?
Outros que testam classes que são gateways entre o client side e o server side que o fazem é testar que o método é chamado com os mesmos parametros recebidos, será que estão a trazer valor acrescentado aos nossos testes ou estaremos só a aumentar a coverage dos testes para nosso regorzijo?

Outro ponto que queria tocar é que por vezes para testar duas linhas de código que escrevemos em 30s, demoramos 20 minutos ou mais a preparar o teste. Será que este teste vale a pena ser escrito?

Não quero com estas palavras  que pensem que eu sou contra os testes unitários, muito pelo contrário. O que acho é que há limites para o que devemos ou não testar e se estamos a perder mais tempo a preparar testes que a programar, algo vai mal na arquitectura da nossa solução.

Agradeço os Vossos comentários.
Paulo Aboim Pinto

1 comment:

Pai said...

Excelente questão difícil resposta também vou ficar à espera dos comentários.