Testes de unidade - Conhecendo e aplicando

389 visualizações

Publicada em

Um breve apresentação sobre alguns conceitos de Teste de unidade em Software, e exemplos de aplicação.

Publicada em: Tecnologia
0 comentários
2 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
389
No SlideShare
0
A partir de incorporações
0
Número de incorporações
1
Ações
Compartilhamentos
0
Downloads
10
Comentários
0
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Testes de unidade - Conhecendo e aplicando

  1. 1. Testes de Unidade Conhecendo e aplicando
  2. 2. Help  About me... • André P. Bertoletti • Pai “júnior” :D • Analista de Sistemas (2003) • Desenvolvedor (C#) • Sistemas ERP (ITSA SOL) • Professor (Pronatec/Unimep) • Entusiasta das Boas Práticas e Métodos Ágeis • Curto também: violão, políticas públicas, café, espiritualidade, etc... apbertoletti@gmail.com @apbertoletti /apbertoletti /apbertoletti
  3. 3. Pra começo de conversa... O que é testar mesmo?!
  4. 4. Um processo feito de forma responsável precisa ser testado sempre, a fim de garantir que o resultado obtido confere com o resultado esperado
  5. 5. Aqui entra o teste de unidade É a verificação da menor unidade de um processo (ou das unidades mais importantes), afim de validar se os resultados de entrada/saída conferem com o esperado.
  6. 6. Processo: “Pendurar quadro na parede” Qual seria o teste de unidade deste processo?
  7. 7. Passou no Teste - OK!!! Resultado esperado = quadro na parede
  8. 8. Qualquer outro processo manual também possui um resultado esperado passível de teste!
  9. 9. Software: é aqui que entramos...
  10. 10. Construir um Software significa automatizar um processo que antes era feito manualmente Dados de Entrada Processamento Automático (métodos C#) Dados de Saída
  11. 11. Da mesma forma, os processos automáticos também precisam ser testados REQUISITO: Desenvolver um software que calcule as quatro operações aritméticas básicas entre dois valores e mostre o resultado na tela. RESULTADO ESPERADO: (operação de adição) • Valor1 = 100 • Valor2 = 200 • Soma = 300
  12. 12. Colocando a mão no código!!!
  13. 13. Conclusão... Vocês acham que foram realizados os testes de unidade em nosso software? SIM
  14. 14. O problema é que os testes não foram automáticos ... e tarefas complexas feitas de forma manual chatas... e tornando-se chatas, uma hora ou outra, nós deixamos de fazê-las. e repetitiva tornam-se
  15. 15. Além disso, outros fatores que dificultam o teste manual...
  16. 16. Pensando além do F5... se nós já automatizamos o processo, será que não conseguimos também automatizar o seu teste???
  17. 17. um software testando... Aqui entra o Teste de Unidade Automatizado que nada mais é... ...outro software
  18. 18. Quando rodamos um teste automatizado, fica sob responsabilidade dele nos informar quais testes passaram ou não
  19. 19. Colocando a mão no código!!!
  20. 20. Benefícios • Desenvolver testes encoraja o programador a fazer um bom design do seu código, afim de facilitar o seu teste automatizado. • Exemplo: separação dos métodos de regras de negócio, da camada apresentação.
  21. 21. Benefícios • Encoraja o programador a desenvolver código limpo. Pois, se o método estiver coberto com testes automatizados, é garantida a sua refatoração. E isso é feito de forma segura, garantindo que o mesmo continuará funcionando. • Exemplo: (mostrar no código)
  22. 22. Benefícios • Independente do programador (iniciante ou experiente) que esteja mexendo no código, o produto final continuará funcionando como era esperado. Por isso, o teste de unidade automatizado, pode ser considerado um “Ativo Fixo” de uma empresa de software;
  23. 23. Benefícios • Em sistemas complexos como um ERP, onde há métodos reutilizáveis e com alto grau de dependência entre eles, os testes automatizados garantem que uma simples manutenção não “quebre” aquilo que já estava funcionando. • Exemplo: Implementação da última Nota Técnica da NFe.
  24. 24. Nem tudo são flores... • Mais código para escrever, pois além do próprio método original, haverá também o(s) método(s) de testes que irá cobri-lo. • Exemplo:
  25. 25. Nem tudo são flores... • Mais código para manter, pois caso haja alguma alteração nos resultados esperados dos métodos já cobertos, os seus respectivos testes também deverão ser reajustados. • Exemplo: (mostrar no código)
  26. 26. Nem tudo são flores... • Como toda mudança, o primeiro passo é sairmos da zona de conforto
  27. 27. Técnicas diferentes, mas relacionadas • Teste de unidade manual – Já fazemos no dia-a-dia (ou pelo menos, deveríamos) • Teste de unidade automatizado – Automatizar aquilo que é repetitivo e crítico • TDD: Test Driven Development – Criar o teste antes do código • BDD: Behavior Driven Development – Pensar em cenários de teste
  28. 28. Lembretes importantes! • NÃO existe software sem Bug! A ideia do teste de unidade é MINIMIZAR AO MÁXIMO a existência deles. • Métodos de testes também são software! Portanto cuidado: testes mal escritos podem retornar falsos positivos ou falsos negativos! • O alto número de testes automatizados pode trazer uma falsa sensação de segurança. Pois a garantia de qualidade exige também a prática de outros testes, como integração, stress e aceitação.
  29. 29. Referências Só imaturos não testam! http://nomedojogo.com/2009/04/08/so-os-imaturos-nao-testam-o-video/ Programadores profissionais escrevem testes, e ponto final! http://blog.fragmental.com.br/2007/10/31/programadores-profissionais-escrevem-testes-ponto-final/ Tudo o que você precisa saber sobre testes no Visual Studio (parte 1) http://www.youtube.com/watch?v=kGnlItZyOzY (parte 2) http://www.youtube.com/watch?v=UgPMmR2LaZo (parte 3) http://www.youtube.com/watch?v=oLFBPGuIqGk Você testa o seu Software? Como? http://luizcorrea.blogspot.com.br/2009/10/voce-testa-o-seu-software-como.html

×