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

32
Testes de Unidade, por que você deve começar a fazer? Renan Siravegna @RenanSiravegna

Transcript of Testes de Unidade, por que você deve começar a fazer? - Javaneiros

Page 1: Testes de Unidade, por que você deve começar a fazer? - Javaneiros

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

Renan Siravegna @RenanSiravegna

Page 2: Testes de Unidade, por que você deve começar a fazer? - Javaneiros

@RenanSiravegnahttp://renansiravegna.wordpress.com/

Page 3: Testes de Unidade, por que você deve começar a fazer? - Javaneiros

Vocês testam o seu código?

Page 4: Testes de Unidade, por que você deve começar a fazer? - Javaneiros

Ciclo do desenvolvimento

Codificação FinalizaçãoTestes

2 mins 2 mins 1 min

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

Page 5: Testes de Unidade, por que você deve começar a fazer? - Javaneiros

Ciclo do desenvolvimento(de verdade)

Tempo total: 21 Minutos

Codificação FinalizaçãoTestes

2 mins 2 mins 1 min

Repetição (5 vezes)

Page 6: Testes de Unidade, por que você deve começar a fazer? - Javaneiros

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

Page 7: Testes de Unidade, por que você deve começar a fazer? - Javaneiros

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

Page 8: Testes de Unidade, por que você deve começar a fazer? - Javaneiros

Levaria dias? Semanas? Meses?

Page 9: Testes de Unidade, por que você deve começar a fazer? - Javaneiros

Testar manualmente demora!!

Page 10: Testes de Unidade, por que você deve começar a fazer? - Javaneiros

Existe solução?

Page 11: Testes de Unidade, por que você deve começar a fazer? - Javaneiros

Automatizar tudo!!Criar testes de unidade!!

Page 12: Testes de Unidade, por que você deve começar a fazer? - Javaneiros

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.

Page 13: Testes de Unidade, por que você deve começar a fazer? - Javaneiros

Escrever código que testa código

Page 14: Testes de Unidade, por que você deve começar a fazer? - Javaneiros

Como?

Page 15: Testes de Unidade, por que você deve começar a fazer? - Javaneiros

Codificação FinalizaçãoEscrita de testes

2 mins 5 min 1 min

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

Testes

5 ms

Page 16: Testes de Unidade, por que você deve começar a fazer? - Javaneiros

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

Page 17: Testes de Unidade, por que você deve começar a fazer? - Javaneiros

Qualidade de código com testes de unidade

Page 18: Testes de Unidade, por que você deve começar a fazer? - Javaneiros

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

Page 19: Testes de Unidade, por que você deve começar a fazer? - Javaneiros

TDD

Page 20: Testes de Unidade, por que você deve começar a fazer? - Javaneiros

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

produção)

Page 21: Testes de Unidade, por que você deve começar a fazer? - Javaneiros

Como assim?

Page 22: Testes de Unidade, por que você deve começar a fazer? - Javaneiros
Page 23: Testes de Unidade, por que você deve começar a fazer? - Javaneiros

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

Page 24: Testes de Unidade, por que você deve começar a fazer? - Javaneiros

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

depois???

Page 25: Testes de Unidade, por que você deve começar a fazer? - Javaneiros
Page 26: Testes de Unidade, por que você deve começar a fazer? - Javaneiros

Problemas

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

Page 27: Testes de Unidade, por que você deve começar a fazer? - Javaneiros

Refatoração

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

Page 28: Testes de Unidade, por que você deve começar a fazer? - Javaneiros

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

Page 29: Testes de Unidade, por que você deve começar a fazer? - Javaneiros

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

Page 30: Testes de Unidade, por que você deve começar a fazer? - Javaneiros

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

Page 31: Testes de Unidade, por que você deve começar a fazer? - Javaneiros

Leituras recomendadas

Page 32: Testes de Unidade, por que você deve começar a fazer? - Javaneiros