Testes de Unidade
Conhecendo e aplicando
Help  About me...
• André P. Bertoletti
• Pai “júnior” :D
• Analista de Sistemas (2003)
• Desenvolvedor (C#)
• Sistemas E...
Pra começo de
conversa...
O que é testar mesmo?!
Um processo feito de forma
responsável precisa ser
testado sempre, a fim de
garantir que o resultado
obtido confere com o
...
Aqui entra o teste de unidade
É a verificação da menor unidade
de um processo (ou das unidades
mais importantes), afim de
...
Processo: “Pendurar quadro na parede”
Qual seria o teste de unidade deste
processo?
Passou no Teste - OK!!!
Resultado esperado =
quadro na parede
Qualquer outro processo manual
também possui um
resultado
esperado
passível de teste!
Software: é aqui que entramos...
Construir um Software significa
automatizar um processo que
antes era feito manualmente
Dados de
Entrada
Processamento
Aut...
Da mesma forma, os processos automáticos
também precisam ser testados
REQUISITO:
Desenvolver um software que
calcule as qu...
Colocando a mão no código!!!
Conclusão...
Vocês acham que foram realizados os
testes de unidade em nosso software?
SIM
O problema é que os testes não
foram automáticos
... e tarefas complexas
feitas de forma manual
chatas... e tornando-se ch...
Além disso, outros fatores que
dificultam o teste manual...
Pensando além
do F5... se nós já
automatizamos o
processo, será que
não conseguimos
também
automatizar
o seu
teste???
um software
testando...
Aqui entra o Teste de Unidade
Automatizado que nada mais é...
...outro software
Quando rodamos um teste
automatizado, fica sob
responsabilidade dele nos informar
quais testes passaram ou não
Colocando a mão no código!!!
Benefícios
• Desenvolver testes encoraja o programador a
fazer um bom design do seu código,
afim de facilitar o seu teste ...
Benefícios
• Encoraja o programador a desenvolver
código limpo. Pois, se o método estiver
coberto com testes automatizados...
Benefícios
• Independente do programador (iniciante ou
experiente) que esteja mexendo no código, o
produto final continuar...
Benefícios
• Em sistemas complexos como um ERP,
onde há métodos reutilizáveis e com alto grau
de dependência entre eles, o...
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 ...
Nem tudo são flores...
• Mais código para manter, pois caso haja
alguma alteração nos resultados esperados
dos métodos já ...
Nem tudo são flores...
• Como toda mudança, o primeiro passo é
sairmos da zona de conforto
Técnicas diferentes, mas
relacionadas
• Teste de unidade manual
– Já fazemos no dia-a-dia (ou pelo menos,
deveríamos)
• Te...
Lembretes importantes!
• NÃO existe software sem Bug! A ideia do teste
de unidade é MINIMIZAR AO MÁXIMO a
existência deles...
Referências
Só imaturos não testam!
http://nomedojogo.com/2009/04/08/so-os-imaturos-nao-testam-o-video/
Programadores prof...
Próximos SlideShares
Carregando em…5
×

Testes de unidade - Conhecendo e aplicando

420 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
  • Seja o primeiro a comentar

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

×