Testes
pra que?
@rodrigodealer
sábado, 20 de julho de 13
Eu
sábado, 20 de julho de 13
Pergunta
sábado, 20 de julho de 13
Por quê?
sábado, 20 de julho de 13
Noite de sono :-)
sábado, 20 de julho de 13
Cliente satisfeito :D
sábado, 20 de julho de 13
Todos felizes :-D
sábado, 20 de julho de 13
Exemplo :-)
sábado, 20 de julho de 13
(Ruby)
sábado, 20 de julho de 13
E esse?
Meio grande, né?
sábado, 20 de julho de 13
“Ruby é feito para ser bonito. Se está feio, está errado.”
Matz
sábado, 20 de julho de 13
“Extract method” - Faz bem
Aquele if, else foi
embora o/
sábado, 20 de julho de 13
Código repetido
Variável desnecessária
Deletar código faz bem :D
sábado, 20 de julho de 13
Ok, fiz esse refactoring, que garantia eu
tenho que vai funcionar?
sábado, 20 de julho de 13
Com testes!
sábado, 20 de julho de 13
Testes unitários
sábado, 20 de julho de 13
Certa vez um sábio disse:
A test is not a unit test if:
* it talks to the database
* it communicates across the network
* ...
Testar unitariamente é
sábado, 20 de julho de 13
Testar a menor porção de código
sábado, 20 de julho de 13
Devem rodar rapidamente, em poucos segundos
sábado, 20 de julho de 13
Devem rodar rapidamente, em poucos segundos
Feedback rápido!
sábado, 20 de julho de 13
Seu código vai sofrer um impacto grande a partir
do momento que começar a escrever testes e
refatorar
sábado, 20 de julho ...
Seu código vai sofrer um impacto grande a partir
do momento que começar a escrever testes e
refatorar
Como assim?
sábado, ...
Red - Green - Refactor
sábado, 20 de julho de 13
Exemplo :-D
(Java)
(Camada de modelo)
sábado, 20 de julho de 13
O que estou testando?
sábado, 20 de julho de 13
Se esse método reflete
o Enum
sábado, 20 de julho de 13
Menor unidade, lembra?
sábado, 20 de julho de 13
Testes de integração
sábado, 20 de julho de 13
Rodam mais lentamente
sábado, 20 de julho de 13
Fazem operações num
banco de dados
Ou no sistema de arquivos
Existe I/O
Ou em rede
sábado, 20 de julho de 13
Para que?
Meus dados estão vindo de forma correta?
Meus dados estão sendo gravados de forma correta?
Minha camada de model...
Que ferramentas posso usar?
RubyJava
sábado, 20 de julho de 13
Testes de aceitação
sábado, 20 de julho de 13
Pra que?
sábado, 20 de julho de 13
Minha aplicação está com a camada de serviços bem testada
sábado, 20 de julho de 13
E a integração com a camada de visão?
sábado, 20 de julho de 13
TextTextText
JavaScript não funciona!
sábado, 20 de julho de 13
Que ferramentas uso?
sábado, 20 de julho de 13
Que ferramentas uso?
sábado, 20 de julho de 13
Eu testo toda a aplicação?
sábado, 20 de julho de 13
Eu testo toda a aplicação?
Depende.
sábado, 20 de julho de 13
Porque?
sábado, 20 de julho de 13
Porque?
Testes de aceitação demoram mais a rodar
sábado, 20 de julho de 13
Porque?
Testes de aceitação demoram mais a rodar
Tem feedback demorado
sábado, 20 de julho de 13
Porque?
Testes de aceitação demoram mais a rodar
Tem feedback demorado
Escrever os testes também demora
sábado, 20 de julh...
Porque?
Testes de aceitação demoram mais a rodar
Tem feedback demorado
Escrever os testes também demora
sábado, 20 de julh...
Porque?
Testes de aceitação demoram mais a rodar
Tem feedback demorado
Escrever os testes também demora
Ou seja...
sábado,...
Demora!
sábado, 20 de julho de 13
Por isso...
sábado, 20 de julho de 13
Por isso...
É aconselhável testar apenas as telas mais importantes
sábado, 20 de julho de 13
Por isso...
É aconselhável testar apenas as telas mais importantes
Telas mais utilizadas ou com nível de complexidade maio...
Por isso...
É aconselhável testar apenas as telas mais importantes
Telas mais utilizadas ou com nível de complexidade maio...
Junte tudo
Testes unitários + de integração + de aceitação
E coloque em um servidor de integração contínua
sábado, 20 de j...
Existem vários
Jenkins TeamCity CruiseControl
sábado, 20 de julho de 13
Feedback rápido!
sábado, 20 de julho de 13
Feedback rápido!
Via email
sábado, 20 de julho de 13
Feedback rápido!
Via email
Via IDE
sábado, 20 de julho de 13
Feedback rápido!
Via email
Via IDE
Via IM
sábado, 20 de julho de 13
Feedback rápido!
Via email
Via IDE
Via IM
...
sábado, 20 de julho de 13
Quanto antes você for avisado
que algo está errado, melhor!
sábado, 20 de julho de 13
Cobertura de testes
sábado, 20 de julho de 13
Cobertura de testes
100% de cobertura?
sábado, 20 de julho de 13
Cobertura de testes
100% de cobertura?
É importante
sábado, 20 de julho de 13
Cobertura de testes
100% de cobertura?
É importante, mas não é tudo
sábado, 20 de julho de 13
Como assim?
sábado, 20 de julho de 13
Cobertura de testes
100% de cobertura garante que o código está coberto
sábado, 20 de julho de 13
Cobertura de testes
100% de cobertura garante que o código está coberto
Mas não garante que está efetivamente testado
sába...
E que critério eu utilizo?
sábado, 20 de julho de 13
E que critério eu utilizo?
Bom senso
sábado, 20 de julho de 13
E que critério eu utilizo?
Bom senso
sábado, 20 de julho de 13
E que critério eu utilizo?
Teste o que pode quebrar
sábado, 20 de julho de 13
E o que eu não testo?
1. Não precisa testar métodos da linguagem
sábado, 20 de julho de 13
E o que eu não testo?
1. Não precisa testar métodos da linguagem
2. Não precisa testar métodos do framework
sábado, 20 de ...
E o que eu não testo?
1. Não precisa testar métodos da linguagem
2. Não precisa testar código dos frameworks
3. Não precis...
E o que eu não testo?
1. Não precisa testar métodos da linguagem
2. Não precisa testar código dos frameworks
3. Não precis...
Para concluir...
sábado, 20 de julho de 13
Para concluir...
Teste suas aplicações
sábado, 20 de julho de 13
Para concluir...
Teste suas aplicações
Todo mundo agradece, lembra?
sábado, 20 de julho de 13
Você Cliente
sábado, 20 de julho de 13
Todos felizes :-D
sábado, 20 de julho de 13
Sugestão
http://www.infoq.com/br/presentations/o-que-nao-testar
http://www.infoq.com/br/news/2010/06/cobertura-testes-fals...
Perguntas?
sábado, 20 de julho de 13
Obrigado!
@rodrigodealer
sábado, 20 de julho de 13
Próximos SlideShares
Carregando em…5
×

Testes - Pra quê - 2013

399 visualizações

Publicada em

Palestra apresentada no evento do Guru-CE dia 20/7

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

  • Seja a primeira pessoa a gostar disto

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

Nenhuma nota no slide

Testes - Pra quê - 2013

  1. 1. Testes pra que? @rodrigodealer sábado, 20 de julho de 13
  2. 2. Eu sábado, 20 de julho de 13
  3. 3. Pergunta sábado, 20 de julho de 13
  4. 4. Por quê? sábado, 20 de julho de 13
  5. 5. Noite de sono :-) sábado, 20 de julho de 13
  6. 6. Cliente satisfeito :D sábado, 20 de julho de 13
  7. 7. Todos felizes :-D sábado, 20 de julho de 13
  8. 8. Exemplo :-) sábado, 20 de julho de 13
  9. 9. (Ruby) sábado, 20 de julho de 13
  10. 10. E esse? Meio grande, né? sábado, 20 de julho de 13
  11. 11. “Ruby é feito para ser bonito. Se está feio, está errado.” Matz sábado, 20 de julho de 13
  12. 12. “Extract method” - Faz bem Aquele if, else foi embora o/ sábado, 20 de julho de 13
  13. 13. Código repetido Variável desnecessária Deletar código faz bem :D sábado, 20 de julho de 13
  14. 14. Ok, fiz esse refactoring, que garantia eu tenho que vai funcionar? sábado, 20 de julho de 13
  15. 15. Com testes! sábado, 20 de julho de 13
  16. 16. Testes unitários sábado, 20 de julho de 13
  17. 17. Certa vez um sábio disse: A test is not a unit test if: * it talks to the database * it communicates across the network * it touches the file system * it can’t run at the same time as any of your other unit tests * you have to do special things to your environment (such as editing config files) to run it Tests that do these things aren’t bad. Often they are worth writing, and they can be written in a unit test harness. However, it is important to keep them separate from true unit tests so that we can run the unit tests quickly whenever we make changes. -- Ou um chapa disse em português: Um teste não é um teste unitário se: - Comunica com o banco de dados - Comunica pela rede - “Toca” no sistema de arquivos - Se não pode ser rodado ao mesmo tempo de outros testes unitários - Se você tem que configurar determinadas coisas como arquivos de configuração sábado, 20 de julho de 13
  18. 18. Testar unitariamente é sábado, 20 de julho de 13
  19. 19. Testar a menor porção de código sábado, 20 de julho de 13
  20. 20. Devem rodar rapidamente, em poucos segundos sábado, 20 de julho de 13
  21. 21. Devem rodar rapidamente, em poucos segundos Feedback rápido! sábado, 20 de julho de 13
  22. 22. Seu código vai sofrer um impacto grande a partir do momento que começar a escrever testes e refatorar sábado, 20 de julho de 13
  23. 23. Seu código vai sofrer um impacto grande a partir do momento que começar a escrever testes e refatorar Como assim? sábado, 20 de julho de 13
  24. 24. Red - Green - Refactor sábado, 20 de julho de 13
  25. 25. Exemplo :-D (Java) (Camada de modelo) sábado, 20 de julho de 13
  26. 26. O que estou testando? sábado, 20 de julho de 13
  27. 27. Se esse método reflete o Enum sábado, 20 de julho de 13
  28. 28. Menor unidade, lembra? sábado, 20 de julho de 13
  29. 29. Testes de integração sábado, 20 de julho de 13
  30. 30. Rodam mais lentamente sábado, 20 de julho de 13
  31. 31. Fazem operações num banco de dados Ou no sistema de arquivos Existe I/O Ou em rede sábado, 20 de julho de 13
  32. 32. Para que? Meus dados estão vindo de forma correta? Meus dados estão sendo gravados de forma correta? Minha camada de modelo está se comunicando corretamente com o ORM? sábado, 20 de julho de 13
  33. 33. Que ferramentas posso usar? RubyJava sábado, 20 de julho de 13
  34. 34. Testes de aceitação sábado, 20 de julho de 13
  35. 35. Pra que? sábado, 20 de julho de 13
  36. 36. Minha aplicação está com a camada de serviços bem testada sábado, 20 de julho de 13
  37. 37. E a integração com a camada de visão? sábado, 20 de julho de 13
  38. 38. TextTextText JavaScript não funciona! sábado, 20 de julho de 13
  39. 39. Que ferramentas uso? sábado, 20 de julho de 13
  40. 40. Que ferramentas uso? sábado, 20 de julho de 13
  41. 41. Eu testo toda a aplicação? sábado, 20 de julho de 13
  42. 42. Eu testo toda a aplicação? Depende. sábado, 20 de julho de 13
  43. 43. Porque? sábado, 20 de julho de 13
  44. 44. Porque? Testes de aceitação demoram mais a rodar sábado, 20 de julho de 13
  45. 45. Porque? Testes de aceitação demoram mais a rodar Tem feedback demorado sábado, 20 de julho de 13
  46. 46. Porque? Testes de aceitação demoram mais a rodar Tem feedback demorado Escrever os testes também demora sábado, 20 de julho de 13
  47. 47. Porque? Testes de aceitação demoram mais a rodar Tem feedback demorado Escrever os testes também demora sábado, 20 de julho de 13
  48. 48. Porque? Testes de aceitação demoram mais a rodar Tem feedback demorado Escrever os testes também demora Ou seja... sábado, 20 de julho de 13
  49. 49. Demora! sábado, 20 de julho de 13
  50. 50. Por isso... sábado, 20 de julho de 13
  51. 51. Por isso... É aconselhável testar apenas as telas mais importantes sábado, 20 de julho de 13
  52. 52. Por isso... É aconselhável testar apenas as telas mais importantes Telas mais utilizadas ou com nível de complexidade maior sábado, 20 de julho de 13
  53. 53. Por isso... É aconselhável testar apenas as telas mais importantes Telas mais utilizadas ou com nível de complexidade maior Contanto que faça! sábado, 20 de julho de 13
  54. 54. Junte tudo Testes unitários + de integração + de aceitação E coloque em um servidor de integração contínua sábado, 20 de julho de 13
  55. 55. Existem vários Jenkins TeamCity CruiseControl sábado, 20 de julho de 13
  56. 56. Feedback rápido! sábado, 20 de julho de 13
  57. 57. Feedback rápido! Via email sábado, 20 de julho de 13
  58. 58. Feedback rápido! Via email Via IDE sábado, 20 de julho de 13
  59. 59. Feedback rápido! Via email Via IDE Via IM sábado, 20 de julho de 13
  60. 60. Feedback rápido! Via email Via IDE Via IM ... sábado, 20 de julho de 13
  61. 61. Quanto antes você for avisado que algo está errado, melhor! sábado, 20 de julho de 13
  62. 62. Cobertura de testes sábado, 20 de julho de 13
  63. 63. Cobertura de testes 100% de cobertura? sábado, 20 de julho de 13
  64. 64. Cobertura de testes 100% de cobertura? É importante sábado, 20 de julho de 13
  65. 65. Cobertura de testes 100% de cobertura? É importante, mas não é tudo sábado, 20 de julho de 13
  66. 66. Como assim? sábado, 20 de julho de 13
  67. 67. Cobertura de testes 100% de cobertura garante que o código está coberto sábado, 20 de julho de 13
  68. 68. Cobertura de testes 100% de cobertura garante que o código está coberto Mas não garante que está efetivamente testado sábado, 20 de julho de 13
  69. 69. E que critério eu utilizo? sábado, 20 de julho de 13
  70. 70. E que critério eu utilizo? Bom senso sábado, 20 de julho de 13
  71. 71. E que critério eu utilizo? Bom senso sábado, 20 de julho de 13
  72. 72. E que critério eu utilizo? Teste o que pode quebrar sábado, 20 de julho de 13
  73. 73. E o que eu não testo? 1. Não precisa testar métodos da linguagem sábado, 20 de julho de 13
  74. 74. E o que eu não testo? 1. Não precisa testar métodos da linguagem 2. Não precisa testar métodos do framework sábado, 20 de julho de 13
  75. 75. E o que eu não testo? 1. Não precisa testar métodos da linguagem 2. Não precisa testar código dos frameworks 3. Não precisa testar código dos plugins sábado, 20 de julho de 13
  76. 76. E o que eu não testo? 1. Não precisa testar métodos da linguagem 2. Não precisa testar código dos frameworks 3. Não precisa testar código dos plugins Esse código já deveria estar testado, né? sábado, 20 de julho de 13
  77. 77. Para concluir... sábado, 20 de julho de 13
  78. 78. Para concluir... Teste suas aplicações sábado, 20 de julho de 13
  79. 79. Para concluir... Teste suas aplicações Todo mundo agradece, lembra? sábado, 20 de julho de 13
  80. 80. Você Cliente sábado, 20 de julho de 13
  81. 81. Todos felizes :-D sábado, 20 de julho de 13
  82. 82. Sugestão http://www.infoq.com/br/presentations/o-que-nao-testar http://www.infoq.com/br/news/2010/06/cobertura-testes-falsa-impressao sábado, 20 de julho de 13
  83. 83. Perguntas? sábado, 20 de julho de 13
  84. 84. Obrigado! @rodrigodealer sábado, 20 de julho de 13

×