Objetivo
Entender porque testar
e o que eu ganho com
isso
Tipos de testes
Integrados
 Unitários
Regressão
Funcionais
   Stress
Entendendo: System Under Test (SUT)
Caixa preta
Caixa branca
Testes unitários e integrados sempre
       são testes de regressão
Minha definição
“Testes são documentação executável”
“Testes são garantia de mudar sem
              medo”
“Testes não são uma obrigação”
“Testes libertam”
“Testes são divertidos”
“Testes esclarecem”
Porque não testar?
Falta de tempo
Demora muito
Código legado impossível de testar
Problema do ovo e da galinha:
Refatoro antes para conseguir
testar, ou faço os testes a...
Não é meu trabalho
Se compila funciona
Falta de testes
“Desenvolvedor que não testa é como
 um cirurgião que não lava as mãos”
                           (tradução livre)

     ...
Sistema sem testes dá medo
           Produtividade vai para o lixo
Código sem testes = código legado
      Não importa se você escreveu o código esta manhã
5 Ws e 2 Hs
When, What, Where, Who, Why,
    How and How much
Quando: o quanto antes?
O que: Tudo?
Onde: Outsourcing de testes?
Quem: quem fez o código
Porque: para o paciente não morrer
                     Input
                     Dados
                     Ambiente
   ...
Porque: para facilitar a sua vida
Quanto custa: menos do que fazer sem testes
                  Mas não esqueça que testes
                  custam, seja pr...
Produtividade ao longo do projeto
                     Sem testes
                16

                14

                ...
Como? Nas demos eu mostro
Técnicas
Construa sistemas testáveis
   SRP - Princípio da resposabilidade única
   Separação de responsabilidades
   Coesão
   Inj...
Mocks
        Rhino Mocks
        Moq
        TypeMock
Frameworks de automação de testes
                  MSTest
                  MbUnit
                  xUnit
              ...
Integração contínua
TDD/BDD/xDD
Automatize o setup do ambiente
                NDbUnit
                VSTS
                O seu próprio
Regras
Nada de check-in com tests falhando
        Mantenha o código estável o tempo todo
        => Suporte para gatewayed check...
Testes são escritos junto com o código
             Não interessa se antes ou depois
Testes independem do ambiente
       Tem que passar em qualquer condição
Testes devem descrever o negócio
Faça um teste de cada vez
        Testes com frequência
        assumem que outras partes
        do sistema funcionam
Livros
Artigos sobre Mocks
53           54            55
Links úteis
• JW on Tests:
http://blogs.msdn.com/james_whittaker/
• Giggio on Tests: 
http://unplugged.giggio.net?tag=/te...
Links úteis (ferramentas)
• Mocks
  – Rhino Mocks:http://ayende.com/projects/rhino-
    mocks.aspx
  – Moq: http://code.go...
Links úteis (ferramentas 2)
• Rodadores de testes
  – MSTest/VSTS: http://gofrom.us/14E5
  – nUnit: http://www.nunit.org
 ...
Testes Unitários/Integrados
Testes Unitários/Integrados
Testes Unitários/Integrados
Testes Unitários/Integrados
Testes Unitários/Integrados
Testes Unitários/Integrados
Testes Unitários/Integrados
Testes Unitários/Integrados
Upcoming SlideShare
Loading in...5
×

Testes Unitários/Integrados

5,653

Published on

Apresentação sobre testes unitários feito na nona reunião do .Net Architects.

Published in: Technology, Education
0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
5,653
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

Testes Unitários/Integrados

  1. 1. Objetivo Entender porque testar e o que eu ganho com isso
  2. 2. Tipos de testes
  3. 3. Integrados Unitários Regressão Funcionais Stress
  4. 4. Entendendo: System Under Test (SUT)
  5. 5. Caixa preta
  6. 6. Caixa branca
  7. 7. Testes unitários e integrados sempre são testes de regressão
  8. 8. Minha definição
  9. 9. “Testes são documentação executável”
  10. 10. “Testes são garantia de mudar sem medo”
  11. 11. “Testes não são uma obrigação”
  12. 12. “Testes libertam”
  13. 13. “Testes são divertidos”
  14. 14. “Testes esclarecem”
  15. 15. Porque não testar?
  16. 16. Falta de tempo
  17. 17. Demora muito
  18. 18. Código legado impossível de testar Problema do ovo e da galinha: Refatoro antes para conseguir testar, ou faço os testes antes para conseguir refatorar?
  19. 19. Não é meu trabalho
  20. 20. Se compila funciona
  21. 21. Falta de testes
  22. 22. “Desenvolvedor que não testa é como um cirurgião que não lava as mãos” (tradução livre) Uncle Bob (Robert C. Martin)
  23. 23. Sistema sem testes dá medo Produtividade vai para o lixo
  24. 24. Código sem testes = código legado Não importa se você escreveu o código esta manhã
  25. 25. 5 Ws e 2 Hs When, What, Where, Who, Why, How and How much
  26. 26. Quando: o quanto antes?
  27. 27. O que: Tudo?
  28. 28. Onde: Outsourcing de testes?
  29. 29. Quem: quem fez o código
  30. 30. Porque: para o paciente não morrer Input Dados Ambiente Fluxo
  31. 31. Porque: para facilitar a sua vida
  32. 32. Quanto custa: menos do que fazer sem testes Mas não esqueça que testes custam, seja pragmático
  33. 33. Produtividade ao longo do projeto Sem testes 16 14 12 produtividade 10 8 6 4 2 Com testes 0 7 Tempo 6 5 produtividade 4 3 2 1 0 Tempo
  34. 34. Como? Nas demos eu mostro
  35. 35. Técnicas
  36. 36. Construa sistemas testáveis SRP - Princípio da resposabilidade única Separação de responsabilidades Coesão Injeção de dependência Service Locator
  37. 37. Mocks Rhino Mocks Moq TypeMock
  38. 38. Frameworks de automação de testes MSTest MbUnit xUnit nUnit Gallio
  39. 39. Integração contínua
  40. 40. TDD/BDD/xDD
  41. 41. Automatize o setup do ambiente NDbUnit VSTS O seu próprio
  42. 42. Regras
  43. 43. Nada de check-in com tests falhando Mantenha o código estável o tempo todo => Suporte para gatewayed check-ins no VSTS 2010
  44. 44. Testes são escritos junto com o código Não interessa se antes ou depois
  45. 45. Testes independem do ambiente Tem que passar em qualquer condição
  46. 46. Testes devem descrever o negócio
  47. 47. Faça um teste de cada vez Testes com frequência assumem que outras partes do sistema funcionam
  48. 48. Livros
  49. 49. Artigos sobre Mocks 53 54 55
  50. 50. Links úteis • JW on Tests: http://blogs.msdn.com/james_whittaker/ • Giggio on Tests:  http://unplugged.giggio.net?tag=/teste
  51. 51. Links úteis (ferramentas) • Mocks – Rhino Mocks:http://ayende.com/projects/rhino- mocks.aspx – Moq: http://code.google.com/p/moq – TypeMock: http://www.typemock.com • Setup – NDbUnit: http://code.google.com/p/ndbunit
  52. 52. Links úteis (ferramentas 2) • Rodadores de testes – MSTest/VSTS: http://gofrom.us/14E5 – nUnit: http://www.nunit.org – MbUnit/Gallio: http://www.gallio.org – xUnit: http://www.codeplex.com/xunit – Resharper: http://www.jetbrains.com/resharper

×