testes de unidade, por que você deve começar a fazer? - javaneiros

Post on 08-Aug-2015

58 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Testes de Unidade, por que vocêdeve começar a fazer?

Renan Siravegna @RenanSiravegna

@RenanSiravegnahttp://renansiravegna.wordpress.com/

Vocês testam o seu código?

Ciclo do desenvolvimento

Codificação FinalizaçãoTestes

2 mins 2 mins 1 min

Tempo total: 5 minutos(E isto é apenas uma suposição...)

Ciclo do desenvolvimento(de verdade)

Tempo total: 21 Minutos

Codificação FinalizaçãoTestes

2 mins 2 mins 1 min

Repetição (5 vezes)

E se você testasse todas as funcionalidades que seu código pode ter afetado?

Pior ainda.. E se você testasse o seu sistema inteiro?

Levaria dias? Semanas? Meses?

Testar manualmente demora!!

Existe solução?

Automatizar tudo!!Criar testes de unidade!!

O que é teste de unidade?

Um pedaço de código que irá chamar outro pedaço de código e irá verificar algumas suposições. Caso as suposições sejam erradas, o teste irá falhar. Unidade é um único e determinado comportamento.

Escrever código que testa código

Como?

Codificação FinalizaçãoEscrita de testes

2 mins 5 min 1 min

Tempo dos testes: 16 minutosRepetição (5 vezes)

Testes

5 ms

Outros benefícios

• Meu sistema funciona!!!• Testes de Regressão• Não tenho medo de alterar meu código• No final das contas, sai mais barato• É mais fácil de encontrar um bug no código• Você consegue ver melhor como seu código será usado• Muito mais divertido!• Melhora a qualidade do código

Qualidade de código com testes de unidade

Problemas

• Falta de conhecimento de Orientação a Objetos• Não pensar corretamente nos cenários• Fica chato se você não faz da forma correta

TDD

Começar testando (antes mesmo de existir o código de

produção)

Como assim?

Benefícios

• Foco no objetivo• Código nasce testado• Sem soluções complexas• Código limpo, mais coeso e menos desacoplado• Maior cobertura de código• Satisfação de ver seu sistema funcionando de ponta a ponta

Mas... Não é a mesma coisa que escrever os testes

depois???

Problemas

• Aprendizado• Mudança de cultura• Exige prática• Refatoração

Refatoração

É uma técnica disciplinada para reestruturar um corpo existente de código, alterando a sua estrutura interna sem alterar seu comportamento externo.

E o que eu ganho com isso?

• Comentários no código se tornam desnecessários• Código pode ser facilmente entendido por todos• Fácil de testar• Fácil de compreender• Extensibilidade• Melhor leitura e escrita

Até quando eu devo testar?

• Desencane de cobrir 100% o seu código• Teste até onde os testes de unidade são necessários• Teste somente o que é relevante

O que não testar

• Getters• Setters• Classes da linguagem• Trechos simples demais• Integração entre partes do sistema (falando em testes de unidade)• Quando você sabe que o teste vai passar antes de implementar

Leituras recomendadas

top related